object_attorney 2.9.0 → 2.9.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NTk2ZjBiODdlOGJlOGRjZDRkYTZkMjViZjllOThhYjgxMTBjYzYyMQ==
4
+ OTNmNTI5YThjYjcxYThjNmM2YWFmZjY5NjJlNjlkYTYzNGM1MWUwMw==
5
5
  data.tar.gz: !binary |-
6
- NjdhYzlhNjJiZjYyZTkzZWI3MjkzMjViYzVjZGRkNDVmYTkxN2JlMg==
6
+ MjY5YWNhNmI1ODUwZDUxNzExNzRiMWJhNDE0N2VjZDlkNzlkYzQ2OQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NWE0YTk0N2FhNDZjOWJiYmU5ZDE0Mjg0ZWQwZWZkNDQ1ZTE5ZWQyMDRhM2E0
10
- M2VhMWM2ODU2ZjI2ZWY3MTkxOWE3OWViOGNiM2ViNmQ4YTY5OTYyNjBmNDRj
11
- NTQzYmNhMTcxOGY2YjZlNDc4ZDI5M2U1N2JiNTQwNmRhNmMwMDM=
9
+ ODA1NzdlY2U2NmY0Mzc2YTA1NDk1NGY1ZWQ3ZDhjOTY5Zjg0ZTk1YmZjOTM1
10
+ MTU5NDMxODAyMmJjYjVhY2ZhZTZlYWFmY2ViOTVjNzI0NjQ1ZTk2ZWQwNGQ5
11
+ MmM1MzJjMjYyMTRmYWU5YjI5YTRkZDFkYzhjZTViNzBjYmU2NGQ=
12
12
  data.tar.gz: !binary |-
13
- MTNlZDEzMTUwMmViMjE4OTY3YzU3MjBjYTliM2Q1N2VjM2I3MTVmMzNiN2Fj
14
- NTQwZDY2N2NiMjcwYmJlMDY1Y2JhNWJlOTk2ZDIxOThiYjY3MzIzZjJiMWQy
15
- ZGJmZGVjNmVlMWYxMTkxNTUyMGY2YjhhN2M5M2IwYTU5NTBmMGE=
13
+ NjY2YmM2NzNkZWQ0YjZlMTQyOTVmMDNlMTUyZDVjY2FmMjUxNzBhNzMxYzc0
14
+ ZmZjZjMwNGVlMGFkM2Y1Y2U5NGQ2YWQzMGUxMTI5MmFmNDUwNGQ1OTc5M2E1
15
+ ZjM4MGMyYTk3MzBkYmQ1ODhlN2YwZjY2ODIwODk3NjgyMTg1OWI=
@@ -36,7 +36,7 @@ module ObjectAttorney
36
36
 
37
37
  def delegate_getter(getter)
38
38
  delegate getter, to: :represented_object
39
- add_exposed_data getter
39
+ add_attribute_key getter
40
40
  end
41
41
 
42
42
  def delegate_setter(setter)
@@ -0,0 +1,43 @@
1
+ module ObjectAttorney
2
+
3
+ module Serialization
4
+
5
+ def attributes
6
+ self.class.attributes_keys.reduce({}) do |data, getter|
7
+ data[getter.to_s] = send(getter)
8
+ data
9
+ end
10
+ end
11
+
12
+ def to_hash(options = {})
13
+ serializable_hash(options)
14
+ end
15
+
16
+ def to_json(options = {})
17
+ serializable_hash(options).to_json
18
+ end
19
+
20
+ def self.included(base)
21
+ base.class_eval { include ActiveModel::Serialization }
22
+ base.extend(ClassMethods)
23
+ end
24
+
25
+ module ClassMethods
26
+
27
+ def attributes_keys
28
+ return @attributes_keys if defined?(@attributes_keys)
29
+
30
+ @attributes_keys = zuper_method(:attributes_keys)
31
+
32
+ @attributes_keys ||= represented_object_class.present? && represented_object_class.method_defined?(:id) ? [:id] : []
33
+ end
34
+
35
+ def add_attribute_key(*getters)
36
+ attributes_keys.push(*getters) unless attributes_keys.include?(getters)
37
+ end
38
+
39
+ end
40
+
41
+ end
42
+
43
+ end
@@ -1,3 +1,3 @@
1
1
  module ObjectAttorney
2
- VERSION = "2.9.0"
2
+ VERSION = "2.9.2"
3
3
  end
@@ -1,7 +1,6 @@
1
1
 
2
2
  require "object_attorney/attribute_assignment"
3
3
  require "object_attorney/delegation"
4
- require "object_attorney/exposed_data"
5
4
  require "object_attorney/helpers"
6
5
  require "object_attorney/naming"
7
6
  require "object_attorney/reflection"
@@ -10,6 +9,7 @@ require "object_attorney/nested_objects"
10
9
  require "object_attorney/record"
11
10
  require "object_attorney/translation"
12
11
  require "object_attorney/representation"
12
+ require "object_attorney/serialization"
13
13
  require 'active_record'
14
14
 
15
15
  require "object_attorney/version"
@@ -49,7 +49,7 @@ module ObjectAttorney
49
49
  include NestedObjects
50
50
  include Record
51
51
  include Representation
52
- include ExposedData
52
+ include Serialization
53
53
 
54
54
  validate :validate_represented_object
55
55
  end
@@ -14,7 +14,6 @@ describe PostForm::GrandSon do
14
14
  post_form = described_class.new(params[:post], post)
15
15
 
16
16
  post_form.save.should == true
17
- described_class.exposed_data.should == [:id, :title, :email, :author, :body, :date]
18
17
 
19
18
  Post.all.count.should == 1
20
19
  post = Post.first
@@ -34,7 +33,7 @@ describe PostForm::GrandSon do
34
33
 
35
34
  data = { id:1, title: "altered title", email: "test@gmail.com", author: "test", body: "post body", date: "20-10-2010" }
36
35
 
37
- post_form.to_hash.should == data
36
+ post_form.serializable_hash.symbolize_keys.should == data
38
37
  post_form.to_json.should == data.to_json
39
38
  end
40
39
 
@@ -100,7 +100,7 @@ module PostForm
100
100
  class Father < GrandFather
101
101
  properties :title
102
102
 
103
- add_exposed_data :email, :author
103
+ add_attribute_key :email, :author
104
104
 
105
105
  attr_accessor :email, :author
106
106
  end
@@ -112,7 +112,7 @@ module PostForm
112
112
  class GrandSon < Son
113
113
  setters :user_id
114
114
 
115
- add_exposed_data :date
115
+ add_attribute_key :date
116
116
 
117
117
  attr_accessor :date
118
118
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: object_attorney
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.0
4
+ version: 2.9.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - João Gonçalves
@@ -76,7 +76,6 @@ files:
76
76
  - lib/object_attorney/association_reflection.rb
77
77
  - lib/object_attorney/attribute_assignment.rb
78
78
  - lib/object_attorney/delegation.rb
79
- - lib/object_attorney/exposed_data.rb
80
79
  - lib/object_attorney/helpers.rb
81
80
  - lib/object_attorney/naming.rb
82
81
  - lib/object_attorney/nested_objects.rb
@@ -84,6 +83,7 @@ files:
84
83
  - lib/object_attorney/record.rb
85
84
  - lib/object_attorney/reflection.rb
86
85
  - lib/object_attorney/representation.rb
86
+ - lib/object_attorney/serialization.rb
87
87
  - lib/object_attorney/translation.rb
88
88
  - lib/object_attorney/validations.rb
89
89
  - lib/object_attorney/version.rb
@@ -94,7 +94,6 @@ files:
94
94
  - spec/object_attorney/bulk_posts_allow_only_new_form_spec.rb
95
95
  - spec/object_attorney/bulk_posts_with_form_objects_form_spec.rb
96
96
  - spec/object_attorney/delegation_spec.rb
97
- - spec/object_attorney/exposed_data_spec.rb
98
97
  - spec/object_attorney/post_form_spec.rb
99
98
  - spec/object_attorney/post_validations_form_spec.rb
100
99
  - spec/object_attorney/post_with_comment_form_spec.rb
@@ -102,6 +101,7 @@ files:
102
101
  - spec/object_attorney/post_with_comments_and_address_form_spec.rb
103
102
  - spec/object_attorney/post_with_only_existing_comments_form_spec.rb
104
103
  - spec/object_attorney/post_with_only_new_comments_form_spec.rb
104
+ - spec/object_attorney/serialization_spec.rb
105
105
  - spec/object_attorney/user_form_spec.rb
106
106
  - spec/spec_helper.rb
107
107
  - spec/support/active_model/validations.rb
@@ -155,7 +155,6 @@ test_files:
155
155
  - spec/object_attorney/bulk_posts_allow_only_new_form_spec.rb
156
156
  - spec/object_attorney/bulk_posts_with_form_objects_form_spec.rb
157
157
  - spec/object_attorney/delegation_spec.rb
158
- - spec/object_attorney/exposed_data_spec.rb
159
158
  - spec/object_attorney/post_form_spec.rb
160
159
  - spec/object_attorney/post_validations_form_spec.rb
161
160
  - spec/object_attorney/post_with_comment_form_spec.rb
@@ -163,6 +162,7 @@ test_files:
163
162
  - spec/object_attorney/post_with_comments_and_address_form_spec.rb
164
163
  - spec/object_attorney/post_with_only_existing_comments_form_spec.rb
165
164
  - spec/object_attorney/post_with_only_new_comments_form_spec.rb
165
+ - spec/object_attorney/serialization_spec.rb
166
166
  - spec/object_attorney/user_form_spec.rb
167
167
  - spec/spec_helper.rb
168
168
  - spec/support/active_model/validations.rb
@@ -1,38 +0,0 @@
1
- module ObjectAttorney
2
-
3
- module ExposedData
4
-
5
- def to_hash
6
- self.class.exposed_data.reduce({}) do |data, getter|
7
- data[getter] = send(getter)
8
- data
9
- end
10
- end
11
-
12
- def to_json(options = {})
13
- to_hash.to_json
14
- end
15
-
16
- def self.included(base)
17
- base.extend(ClassMethods)
18
- end
19
-
20
- module ClassMethods
21
-
22
- def exposed_data
23
- return @exposed_data if defined?(@exposed_data)
24
-
25
- @exposed_data = zuper_method(:exposed_data)
26
-
27
- @exposed_data ||= represented_object_class.present? && represented_object_class.method_defined?(:id) ? [:id] : []
28
- end
29
-
30
- def add_exposed_data(*getters)
31
- exposed_data.push(*getters) unless exposed_data.include?(getters)
32
- end
33
-
34
- end
35
-
36
- end
37
-
38
- end