pavlov 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 13bc3cf5812e5e607d68b9609120e074dad275a4
4
- data.tar.gz: ff07d489d86b0dba8a4bc8b4f694d0d771b14f57
3
+ metadata.gz: 31594240b64696361ea5deeb4a506ba17c5cd1c8
4
+ data.tar.gz: 1e8ccb1439a90046a11496bb6fa35c68209f5752
5
5
  SHA512:
6
- metadata.gz: 56aef16927ef152a86585bb4acdfcf2a03b1463694d36d88a687216a30200e75037c3890730933cca0b4df2353ce1e75ba34016d8d5b67860b25b64dd8b3f79b
7
- data.tar.gz: 72deaa24033f719ff780a7b2e2017b59d5618bae0f01a3be24ebd4ea8297ce2b86f5b0ea49a5bc36a9882610d5031292052444254bf927a1ef8d2c6e6574df71
6
+ metadata.gz: 6ddbe50610a56b8b4d0b52c4875cd3b3b2cd1652fe535fa179143316db2ed1254edce5fa3de0ab3b0c3c3f32f19869939e129d3c7206152ba85aadc032d46307
7
+ data.tar.gz: 83bd809253f41acaa8a3c11931950a4d6585ff99151b4919a7138c1d4c92884c5616cdaead48be9c91982c4e10966eb0eea8ec9e52df12545da93d5986490192
@@ -10,22 +10,36 @@ module Pavlov
10
10
  end
11
11
 
12
12
  def self.command command_name, *args
13
- class_name = "Commands::"+string_to_classname(command_name)
14
- klass = get_class_by_string(class_name)
13
+ klass = class_for_command(command_name)
15
14
  klass.new(*args).call
16
15
  end
17
16
 
18
- def self.interactor command_name, *args
19
- class_name = "Interactors::"+string_to_classname(command_name)
20
- klass = get_class_by_string class_name
17
+ def self.interactor interactor_name, *args
18
+ klass = class_for_interactor(interactor_name)
21
19
  klass.new(*args).call
22
20
  end
23
21
 
24
- def self.query command_name, *args
25
- class_name = "Queries::"+string_to_classname(command_name)
26
- klass = get_class_by_string class_name
22
+ def self.query query_name, *args
23
+ klass = class_for_query(query_name)
27
24
  klass.new(*args).call
28
25
  end
26
+
27
+ private
28
+
29
+ def self.class_for_command command_name
30
+ class_name = 'Commands::' + string_to_classname(command_name)
31
+ get_class_by_string(class_name)
32
+ end
33
+
34
+ def self.class_for_interactor interactor_name
35
+ class_name = 'Interactors::' + string_to_classname(interactor_name)
36
+ get_class_by_string(class_name)
37
+ end
38
+
39
+ def self.class_for_query query_name
40
+ class_name = 'Queries::' + string_to_classname(query_name)
41
+ get_class_by_string(class_name)
42
+ end
29
43
  end
30
44
 
31
45
  require_relative 'pavlov/engine' if defined?(Rails)
@@ -2,35 +2,29 @@ require 'pavlov'
2
2
 
3
3
  module Pavlov
4
4
  def self.old_command command_name, *args
5
- class_name = "Commands::"+string_to_classname(command_name)
6
- klass = get_class_by_string(class_name)
7
- attributes = arguments_to_attributes(klass, args)
8
- klass.new(attributes).call
5
+ klass = class_for_command(command_name)
6
+ command command_name, arguments_to_attributes(klass, args)
9
7
  end
10
8
 
11
- def self.old_interactor command_name, *args
12
- class_name = "Interactors::"+string_to_classname(command_name)
13
- klass = get_class_by_string class_name
14
- attributes = arguments_to_attributes(klass, args)
15
- klass.new(attributes).call
9
+ def self.old_interactor interactor_name, *args
10
+ klass = class_for_interactor(interactor_name)
11
+ interactor interactor_name, arguments_to_attributes(klass, args)
16
12
  end
17
13
 
18
- def self.old_query command_name, *args
19
- class_name = "Queries::"+string_to_classname(command_name)
20
- klass = get_class_by_string class_name
21
- attributes = arguments_to_attributes(klass, args)
22
- klass.new(attributes).call
14
+ def self.old_query query_name, *args
15
+ klass = class_for_query(query_name)
16
+ query query_name, arguments_to_attributes(klass, args)
23
17
  end
24
18
 
25
19
  def self.arguments_to_attributes(operation_class, arguments)
26
20
  attribute_keys = operation_class.attribute_set.map(&:name)
27
21
 
28
22
  # TODO: this can be done so much better, but I don't know how.
29
- hash={}
23
+ hash = {}
30
24
  arguments.each_with_index do |value, index|
31
25
  hash[attribute_keys[index].to_sym] = value
32
26
  end
33
- return hash
27
+ hash
34
28
  end
35
29
 
36
30
  module Helpers
@@ -50,14 +44,13 @@ module Pavlov
50
44
  end
51
45
 
52
46
  private
47
+
53
48
  def add_compatibility_pavlov_options args
54
49
  # TODO: we should do this at a point where we know how many arguments we need
55
50
  # so we can decide if we need to merge with another options object or
56
51
  # just add it.
57
52
  new_args = Array(args)
58
- if pavlov_options != {}
59
- new_args << pavlov_options
60
- end
53
+ new_args << pavlov_options unless pavlov_options == {}
61
54
  new_args
62
55
  end
63
56
  end
@@ -67,36 +60,52 @@ module Pavlov
67
60
 
68
61
  module Validations
69
62
  def validate_hexadecimal_string param_name, param
70
- raise Pavlov::ValidationError, "#{param_name.to_s} should be an hexadecimal string." unless param.is_a? String and /\A[\da-fA-F]+\Z/.match param
63
+ return if param.is_a?(String) && /\A[\da-fA-F]+\Z/.match(param)
64
+
65
+ raise Pavlov::ValidationError, "#{param_name.to_s} should be an hexadecimal string."
71
66
  end
72
67
 
73
68
  def validate_regex param_name, param, regex, message
74
- raise Pavlov::ValidationError, "#{param_name.to_s} #{message}" unless regex.match param
69
+ return if regex.match param
70
+
71
+ raise Pavlov::ValidationError, "#{param_name.to_s} #{message}"
75
72
  end
76
73
 
77
74
  def validate_integer param_name, param, opts = {}
78
75
  return if opts[:allow_blank] && param.blank?
79
- raise Pavlov::ValidationError, "#{param_name.to_s} should be an integer." unless param.is_a? Integer
76
+ return if param.is_a?(Integer)
77
+
78
+ raise Pavlov::ValidationError, "#{param_name.to_s} should be an integer."
80
79
  end
81
80
 
82
81
  def validate_in_set param_name, param, set
83
- raise Pavlov::ValidationError, "#{param_name.to_s} should be on of these values: #{set.inspect}." unless set.include? param
82
+ return if set.include? param
83
+
84
+ raise Pavlov::ValidationError, "#{param_name.to_s} should be on of these values: #{set.inspect}."
84
85
  end
85
86
 
86
87
  def validate_string param_name, param
87
- raise Pavlov::ValidationError, "#{param_name.to_s} should be a string." unless param.is_a? String
88
+ return if param.is_a?(String)
89
+
90
+ raise Pavlov::ValidationError, "#{param_name.to_s} should be a string."
88
91
  end
89
92
 
90
93
  def validate_nonempty_string param_name, param
91
- raise Pavlov::ValidationError, "#{param_name.to_s} should be a nonempty string." unless param.is_a?(String) && not(param.nil?) && not(param.empty?)
94
+ return if param.is_a?(String) && !param.empty?
95
+
96
+ raise Pavlov::ValidationError, "#{param_name.to_s} should be a nonempty string."
92
97
  end
93
98
 
94
99
  def validate_integer_string param_name, param
95
- raise Pavlov::ValidationError, "#{param_name.to_s} should be an integer string." unless param.is_a? String and /\A\d+\Z/.match param
100
+ return if param.is_a?(String) && /\A\d+\Z/.match(param)
101
+
102
+ raise Pavlov::ValidationError, "#{param_name.to_s} should be an integer string."
96
103
  end
97
104
 
98
105
  def validate_not_nil param_name, param
99
- raise Pavlov::ValidationError, "#{param_name.to_s} should not be nil." if param.nil?
106
+ return unless param.nil?
107
+
108
+ raise Pavlov::ValidationError, "#{param_name.to_s} should not be nil."
100
109
  end
101
110
  end
102
111
 
@@ -27,19 +27,19 @@
27
27
  module Pavlov
28
28
  module Concern
29
29
  def self.extended(base)
30
- base.instance_variable_set("@_dependencies", [])
30
+ base.instance_variable_set('@_dependencies', [])
31
31
  end
32
32
 
33
33
  def append_features(base)
34
- if base.instance_variable_defined?("@_dependencies")
35
- base.instance_variable_get("@_dependencies") << self
34
+ if base.instance_variable_defined?('@_dependencies')
35
+ base.instance_variable_get('@_dependencies') << self
36
36
  return false
37
37
  else
38
38
  return false if base < self
39
39
  @_dependencies.each { |dep| base.send(:include, dep) }
40
40
  super
41
- base.extend const_get("ClassMethods") if const_defined?("ClassMethods")
42
- base.class_eval(&@_included_block) if instance_variable_defined?("@_included_block")
41
+ base.extend const_get('ClassMethods') if const_defined?('ClassMethods')
42
+ base.class_eval(&@_included_block) if instance_variable_defined?('@_included_block')
43
43
  end
44
44
  end
45
45
 
@@ -1,18 +1,15 @@
1
1
  module Pavlov
2
2
  module Helpers
3
3
  def interactor name, hash
4
- hash = add_pavlov_options hash
5
- Pavlov.interactor name, hash
4
+ Pavlov.interactor name, with_pavlov_options(hash)
6
5
  end
7
6
 
8
7
  def query name, hash
9
- hash = add_pavlov_options hash
10
- Pavlov.query name, hash
8
+ Pavlov.query name, with_pavlov_options(hash)
11
9
  end
12
10
 
13
11
  def command name, hash
14
- hash = add_pavlov_options hash
15
- Pavlov.command name, hash
12
+ Pavlov.command name, with_pavlov_options(hash)
16
13
  end
17
14
 
18
15
  def pavlov_options
@@ -20,7 +17,8 @@ module Pavlov
20
17
  end
21
18
 
22
19
  private
23
- def add_pavlov_options hash
20
+
21
+ def with_pavlov_options hash
24
22
  if pavlov_options != {}
25
23
  hash ||= {}
26
24
 
@@ -12,7 +12,7 @@ module Pavlov
12
12
  def validate
13
13
  return false unless attributes_without_defaults_have_values
14
14
  if respond_to? :valid?
15
- raise Pavlov::ValidationError, "an argument is invalid" unless valid?
15
+ raise Pavlov::ValidationError, 'an argument is invalid' unless valid?
16
16
  else
17
17
  true
18
18
  end
@@ -26,17 +26,17 @@ module Pavlov
26
26
 
27
27
  private
28
28
 
29
- def raise_unauthorized(message='Unauthorized')
29
+ def raise_unauthorized(message = 'Unauthorized')
30
30
  raise Pavlov::AccessDenied, message
31
31
  end
32
32
 
33
33
  def check_authorization
34
- raise_unauthorized if respond_to? :authorized?, true and not authorized?
34
+ raise_unauthorized if respond_to?(:authorized?, true) && !authorized?
35
35
  end
36
36
 
37
37
  def attributes_without_defaults_have_values
38
38
  attributes_without_value = attribute_set.select do |attribute|
39
- not attribute.options.has_key?(:default) and send(attribute.name).nil?
39
+ !attribute.options.has_key?(:default) && send(attribute.name).nil?
40
40
  end
41
41
  attributes_without_value.empty?
42
42
  end
@@ -2,5 +2,5 @@ module Pavlov
2
2
  # We're doing this because we might write tests that deal
3
3
  # with other versions of bundler and we are unsure how to
4
4
  # handle this better.
5
- VERSION = "0.1.4"
5
+ VERSION = '0.1.5'
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pavlov
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - marten@veldthuis.com
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2013-08-06 00:00:00.000000000 Z
16
+ date: 2013-08-07 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: virtus