smooth_operator 1.20.9 → 1.20.10

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZDBhM2U5NjlkNjVmMzk4MGQxNTVkNTBiZDBhODI5NDlkMjRkZGQ2OQ==
4
+ NWVmZWM5OGI3M2I3NmM1MDA1NmQ4ODIzYTRlYzU1NjIzZDBiZDI1ZQ==
5
5
  data.tar.gz: !binary |-
6
- ZTg1N2IwOTY0ZDlmMmVjMTVjNGFmMzNjM2YxZjE5MGFlMTNiMDk3Mg==
6
+ ZjUxMTRlMDk0NDE1ZWI1ZWUwYTZhZWJhYWE3NzFmMmY0ZWEzYmQ2ZA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MWQzYjFkMGNmNDY2NmU2MzFjOThjMWQzYWZjMjNiNjNjYTQwZDZkNGVlYzdm
10
- YzIxODAyNWI4YTZiNjVhYjk2NzgzMGNjYjc1MGVhNWY0ZGRiNWNiZDQ5MGFl
11
- Y2E3NGM2ZDNiNWFiYTg2YjMzNTVhMmNkODM0MTYxZTg2YzBmMTU=
9
+ YTFlYWU5MzJhMzZjZjk1MDdiOTlmNGYxNTkxMTJiOWJlYjg4MmZlMjVlYjU5
10
+ MDdhMGVjYjU2NDVjNWNkOTgzMjIwYzZhYzQ0ZGM2ZTQyYTY4ZDhmNmJmMTNm
11
+ MmFkNTBlMWM5MTBmZDU2Mjc2M2U1MWI0OTBhYmZmOTY2MWFkM2Q=
12
12
  data.tar.gz: !binary |-
13
- OGYwYjBiY2U2NWUzMThhZGIwOTZiOWMzOWZkYzM2NDZiODE4NmFkYWJmNzhj
14
- NTI3MWU4NDVjOTU0ZTdkNTU1MWRiOTk3NzRmYmFjOGJkNjgyNzhlOTFjMzMx
15
- NTgxNzUzZjQ1MDQ3MzNkNTJiYzNlM2E2NjUyN2ZiZWI3YjRmMmQ=
13
+ YWI0ZTIxYjY5NjJhYThhYWEyZmJmZTQ1ZmQyMDJhMDY0NTUxNDc3ODkyMGI3
14
+ MzZiY2I2YjMzNGFjMzZmMDdkYmM2YTY0NWE1Mjg2ODYyY2RiMDc4YjY0ODM3
15
+ YjY1MTM1OGQ1MWE0OTA5NzBjMjA3OWRjMmQ1YmM5OTQyOTkwOWY=
@@ -1,6 +1,24 @@
1
1
  module SmoothOperator
2
2
  module AttributeMethods
3
3
 
4
+ module ClassMethods
5
+ def known_attributes
6
+ Helpers.get_instance_variable(self, :known_attributes, Set.new)
7
+ end
8
+ end
9
+
10
+ def self.included(base)
11
+ base.extend(ClassMethods)
12
+ end
13
+
14
+ def known_attribute?(attribute)
15
+ known_attributes.include?(attribute.to_s)
16
+ end
17
+
18
+ def known_attributes
19
+ @known_attributes ||= self.class.known_attributes.dup
20
+ end
21
+
4
22
  def internal_data
5
23
  @internal_data ||= {}
6
24
  end
@@ -17,10 +35,6 @@ module SmoothOperator
17
35
  end
18
36
  end
19
37
 
20
- def get_attribute_type(attribute)
21
- self.class.internal_structure[attribute.to_s]
22
- end
23
-
24
38
  def push_to_internal_data(attribute_name, attribute_value)
25
39
  attribute_name = attribute_name.to_s
26
40
 
@@ -0,0 +1,50 @@
1
+ module SmoothOperator
2
+ module ModelName
3
+
4
+ def resources_name(default_bypass = nil)
5
+ return @resources_name if defined?(@resources_name)
6
+
7
+ (Helpers.super_method(self, :resources_name, true) || (default_bypass ? nil : self.resource_name.pluralize))
8
+ end
9
+
10
+ attr_writer :resources_name
11
+
12
+ def resource_name(default_bypass = nil)
13
+ return @resource_name if defined?(@resource_name)
14
+
15
+ (Helpers.super_method(self, :resource_name, true) || (default_bypass ? nil : self.model_name.to_s.underscore))
16
+ end
17
+
18
+ attr_writer :resource_name
19
+
20
+ def model_name
21
+ return '' if @_model_name == :none
22
+
23
+ if defined? ActiveModel
24
+ rails_model_name_method
25
+ else
26
+ @_model_name ||= name.split('::').last.underscore.capitalize
27
+ end
28
+ end
29
+
30
+ def model_name=(name)
31
+ @_model_name = name
32
+ end
33
+
34
+ protected ############## PROTECTED #############
35
+
36
+ def rails_model_name_method
37
+ @model_name ||= begin
38
+ namespace ||= self.parents.detect do |n|
39
+ n.respond_to?(:use_relative_model_naming?) && n.use_relative_model_naming?
40
+ end
41
+
42
+ ActiveModel::Name.new(self, namespace, @_model_name).tap do |model_name|
43
+ def model_name.human(options = {}); @klass.send(:_translate, "models.#{i18n_key}", options); end
44
+ end
45
+ end
46
+ end
47
+
48
+ end
49
+
50
+ end
@@ -1,6 +1,6 @@
1
+ require "smooth_operator/model_name"
1
2
  require "smooth_operator/delegation"
2
3
  require "smooth_operator/validations"
3
- require "smooth_operator/model_schema"
4
4
  require "smooth_operator/serialization"
5
5
  require "smooth_operator/attribute_methods"
6
6
  require "smooth_operator/attribute_assignment"
@@ -10,9 +10,10 @@ module SmoothOperator
10
10
 
11
11
  class Base
12
12
 
13
+ extend ModelName
14
+
13
15
  include Delegation
14
16
  include Validations
15
- include ModelSchema
16
17
  include Serialization
17
18
  include AttributeMethods
18
19
  include AttributeAssignment
@@ -0,0 +1,33 @@
1
+ module SmoothOperator
2
+ module Schema
3
+
4
+ def known_by_schema?(attribute)
5
+ self.class.internal_structure.include?(attribute.to_s)
6
+ end
7
+
8
+ def get_attribute_type(attribute)
9
+ self.class.internal_structure[attribute.to_s]
10
+ end
11
+
12
+ def self.included(base)
13
+ base.extend(ClassMethods)
14
+ end
15
+
16
+ module ClassMethods
17
+
18
+ attr_writer :resource_name
19
+
20
+ def schema(structure)
21
+ internal_structure.merge! Helpers.stringify_keys(structure)
22
+
23
+ known_attributes.merge internal_structure.keys
24
+ end
25
+
26
+ def internal_structure
27
+ Helpers.get_instance_variable(self, :internal_structure, { "errors" => nil, primary_key => nil, destroy_key => nil })
28
+ end
29
+
30
+ end
31
+
32
+ end
33
+ end
@@ -1,3 +1,3 @@
1
1
  module SmoothOperator
2
- VERSION = "1.20.9"
2
+ VERSION = "1.20.10"
3
3
  end
@@ -1,3 +1,4 @@
1
+ require "smooth_operator/schema"
1
2
  require "smooth_operator/version"
2
3
  require "smooth_operator/helpers"
3
4
  require "smooth_operator/operator"
@@ -14,6 +15,7 @@ module SmoothOperator
14
15
  extend Relation::Associations
15
16
  extend Translation if defined? I18n
16
17
 
18
+ include Schema
17
19
  include Operator
18
20
  include Persistence
19
21
  include FinderMethods
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
- describe SmoothOperator::ModelSchema do
3
+ describe SmoothOperator::ModelName do
4
4
 
5
5
  describe "#known_attributes" do
6
6
  let(:initial_attributes_keys) { attributes_for(:user).keys.map(&:to_s) }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smooth_operator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.20.9
4
+ version: 1.20.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - João Gonçalves
@@ -91,7 +91,7 @@ files:
91
91
  - lib/smooth_operator/delegation.rb
92
92
  - lib/smooth_operator/finder_methods.rb
93
93
  - lib/smooth_operator/helpers.rb
94
- - lib/smooth_operator/model_schema.rb
94
+ - lib/smooth_operator/model_name.rb
95
95
  - lib/smooth_operator/open_struct.rb
96
96
  - lib/smooth_operator/operator.rb
97
97
  - lib/smooth_operator/operators/faraday.rb
@@ -106,6 +106,7 @@ files:
106
106
  - lib/smooth_operator/remote_call/errors/timeout.rb
107
107
  - lib/smooth_operator/remote_call/faraday.rb
108
108
  - lib/smooth_operator/remote_call/typhoeus.rb
109
+ - lib/smooth_operator/schema.rb
109
110
  - lib/smooth_operator/serialization.rb
110
111
  - lib/smooth_operator/translation.rb
111
112
  - lib/smooth_operator/validations.rb
@@ -117,7 +118,7 @@ files:
117
118
  - spec/smooth_operator/attributes_dirty_spec.rb
118
119
  - spec/smooth_operator/delegation_spec.rb
119
120
  - spec/smooth_operator/finder_methods_spec.rb
120
- - spec/smooth_operator/model_schema_spec.rb
121
+ - spec/smooth_operator/model_name_spec.rb
121
122
  - spec/smooth_operator/operator_spec.rb
122
123
  - spec/smooth_operator/persistence_spec.rb
123
124
  - spec/smooth_operator/remote_call_spec.rb
@@ -164,7 +165,7 @@ test_files:
164
165
  - spec/smooth_operator/attributes_dirty_spec.rb
165
166
  - spec/smooth_operator/delegation_spec.rb
166
167
  - spec/smooth_operator/finder_methods_spec.rb
167
- - spec/smooth_operator/model_schema_spec.rb
168
+ - spec/smooth_operator/model_name_spec.rb
168
169
  - spec/smooth_operator/operator_spec.rb
169
170
  - spec/smooth_operator/persistence_spec.rb
170
171
  - spec/smooth_operator/remote_call_spec.rb
@@ -1,81 +0,0 @@
1
- module SmoothOperator
2
- module ModelSchema
3
-
4
- def self.included(base)
5
- base.extend(ClassMethods)
6
- end
7
-
8
- def known_attribute?(attribute)
9
- known_attributes.include?(attribute.to_s)
10
- end
11
-
12
- def known_by_schema?(attribute)
13
- self.class.internal_structure.include?(attribute.to_s)
14
- end
15
-
16
- def known_attributes
17
- @known_attributes ||= self.class.known_attributes.dup
18
- end
19
-
20
- module ClassMethods
21
-
22
- def resources_name(default_bypass = nil)
23
- return @resources_name if defined?(@resources_name)
24
-
25
- (Helpers.super_method(self, :resources_name, true) || (default_bypass ? nil : self.resource_name.pluralize))
26
- end
27
- attr_writer :resources_name
28
-
29
- def resource_name(default_bypass = nil)
30
- return @resource_name if defined?(@resource_name)
31
-
32
- (Helpers.super_method(self, :resource_name, true) || (default_bypass ? nil : self.model_name.to_s.underscore))
33
- end
34
- attr_writer :resource_name
35
-
36
- def schema(structure)
37
- internal_structure.merge! Helpers.stringify_keys(structure)
38
-
39
- known_attributes.merge internal_structure.keys
40
- end
41
-
42
- def internal_structure
43
- Helpers.get_instance_variable(self, :internal_structure, { "errors" => nil })
44
- end
45
-
46
- def known_attributes
47
- Helpers.get_instance_variable(self, :known_attributes, Set.new)
48
- end
49
-
50
- def model_name
51
- return '' if @_model_name == :none
52
-
53
- if defined? ActiveModel
54
- rails_model_name_method
55
- else
56
- @_model_name ||= name.split('::').last.underscore.capitalize
57
- end
58
- end
59
-
60
- def model_name=(name)
61
- @_model_name = name
62
- end
63
-
64
- protected ############## PROTECTED #############
65
-
66
- def rails_model_name_method
67
- @model_name ||= begin
68
- namespace ||= self.parents.detect do |n|
69
- n.respond_to?(:use_relative_model_naming?) && n.use_relative_model_naming?
70
- end
71
-
72
- ActiveModel::Name.new(self, namespace, @_model_name).tap do |model_name|
73
- def model_name.human(options = {}); @klass.send(:_translate, "models.#{i18n_key}", options); end
74
- end
75
- end
76
- end
77
-
78
- end
79
-
80
- end
81
- end