Skip to content
This repository has been archived by the owner on Feb 7, 2018. It is now read-only.

Add backwards-compatibility and deprecate stuff #31

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,13 @@ This release brings forth lots and lots of incompatibilities. Where possible, we

If you want to retain deprecated functionality, you can `require 'pavlov/alpha_compatibility'`.

* Deprecated `Pavlov.query` etc.
* Deprecated `Pavlov::Helpers`.
* Deprecated `arguments` in operations.
* Deprecated `pavlov_options` that were used by the helpers.
* Deprecated `Pavlov::Interactor` in favor of the pre-generated `Interactor` class
* Deprecated `Pavlov::Command` in favor of the pre-generated `Command` class
* Deprecated `Pavlov::Query` in favor of the pre-generated `Query` class

#### Completely removed:

Expand Down
4 changes: 0 additions & 4 deletions lib/pavlov.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,9 @@ def self.query command_name, *args
end

require_relative 'pavlov/engine' if defined?(Rails)
require_relative 'pavlov/helpers'
require_relative 'pavlov/access_denied'
require_relative 'pavlov/validation_error'
require_relative 'pavlov/validations'
require_relative 'pavlov/operation'
require_relative 'pavlov/command'
require_relative 'pavlov/query'
require_relative 'pavlov/interactor'
require_relative 'pavlov/version'
require_relative 'pavlov/alpha_compatibility'
72 changes: 71 additions & 1 deletion lib/pavlov/alpha_compatibility.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
require 'active_support/concern'
require 'active_support/inflector'
require 'pavlov'

# Everything in this file should be considered deprecated. It will go away
# sometime before 1.0

module Pavlov
def self.old_command command_name, *args
class_name = "Commands::"+string_to_classname(command_name)
Expand Down Expand Up @@ -61,7 +66,41 @@ def add_compatablity_pavlov_options args
end
end

module Helpers
def interactor name, *args
args = add_pavlov_options args
Pavlov.interactor name, *args
end

def query name, *args
args = add_pavlov_options args
Pavlov.query name, *args
end

def command name, *args
args = add_pavlov_options args
Pavlov.command name, *args
end

def pavlov_options
{}
end

private
def add_pavlov_options args
# TODO: we should do this at a point where we know how many arguments we need
# so we can decide if we need to merge with another options object or
# just add it.
if pavlov_options != {}
args << pavlov_options
end
args
end
end

module Operation
include Pavlov::Helpers

module ClassMethods
def arguments(*args)
# Add generic attribute for each argument
Expand All @@ -71,4 +110,35 @@ def arguments(*args)
end
end
end
end

module Command
extend ActiveSupport::Concern
include Pavlov::Operation
end

module Query
extend ActiveSupport::Concern
include Pavlov::Operation
end

module Interactor
extend ActiveSupport::Concern
include Pavlov::Operation

module ClassMethods
# make our interactors behave as Resque jobs
def perform(*args)
new(*args).call
end

def queue
@queue ||= :interactor_operations
end
end

def authorized?
raise NotImplementedError
end
end

end
9 changes: 0 additions & 9 deletions lib/pavlov/command.rb

This file was deleted.

36 changes: 0 additions & 36 deletions lib/pavlov/helpers.rb

This file was deleted.

25 changes: 0 additions & 25 deletions lib/pavlov/interactor.rb

This file was deleted.

2 changes: 0 additions & 2 deletions lib/pavlov/operation.rb
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
require 'active_support/concern'
require 'pavlov/validations'
require 'pavlov/helpers'
require 'virtus'
require_relative 'access_denied'

module Pavlov
module Operation
extend ActiveSupport::Concern
include Pavlov::Helpers
include Pavlov::Validations
include Virtus

Expand Down
9 changes: 0 additions & 9 deletions lib/pavlov/query.rb

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
require_relative '../spec_helper'
require 'pavlov.rb'
require 'pavlov'
require 'pavlov/alpha_compatibility'

describe Pavlov::Helpers do
describe 'interactor' do
Expand Down
21 changes: 0 additions & 21 deletions spec/pavlov/command_spec.rb

This file was deleted.

33 changes: 0 additions & 33 deletions spec/pavlov/interactor_spec.rb

This file was deleted.

21 changes: 0 additions & 21 deletions spec/pavlov/query_spec.rb

This file was deleted.