embedded 0.3.0 → 0.4.0

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
  SHA256:
3
- metadata.gz: f0cb08595d317787cfd5ca6b9de7fa50e6800eeeb3607466192816e65eb99099
4
- data.tar.gz: 0e0daa41abd96d62c02316fa7a432b2af8764faf92fbf1d0b188ce480b005a7f
3
+ metadata.gz: ce4a136f75afec1cb73715b16c81c48d003c3168c7a0f1139bb9b8b94330664b
4
+ data.tar.gz: 27b47d827ebcc4b36b4326bd3fd4fc88bfa4e2a7ef32c891736351f972a892ea
5
5
  SHA512:
6
- metadata.gz: a7da9b8d21c25d77f32a3055e3218b13a59b0ce677862cc10a922e0534e1ff6f22c06ce6c4f5a5df9f10a40551837d5d01e4b1c8ee55864eff0050d60f166196
7
- data.tar.gz: f4f78dd54363b5a0fc9400e0708edc7381b74f9f6326ddaaa1b176c2b867e133eef3b36141c277b5d6e96266c2204993b2dc560cac48d6d1d5b744979658597e
6
+ metadata.gz: 10283086b249ad45f7006595e23c4c89eb6636f3294eb6825a4abe20864c51af82b1907c0ce6849da4b336c041a181076b156f4407aa5195705d5c304c7446ec
7
+ data.tar.gz: 4166f1a1ce6ccfdf6d210e578aefd2b6644523a9c03e9b73cfc85eff800981409b29921ec3c82c61b66a453ce2b791eca6e9af1d7627c98f8cbb08d669709c32
data/README.md CHANGED
@@ -162,6 +162,20 @@ Also you can persist the reservation, and when fetching it back from the db its
162
162
  # => 3
163
163
  ```
164
164
 
165
+ Embedded also supports passing a hash to the setter, so you can still use ```fields_for``` in form views and also use request params to create activerecord model objects.
166
+
167
+ ```ruby
168
+ reservation = Reservation.create(scheduled_time: {
169
+ start_time: Time.now,
170
+ end_time: 3.hours.ago
171
+ })
172
+
173
+ reservation.reload
174
+
175
+ reservation.scheduled_time.hours
176
+ # => 3
177
+ ```
178
+
165
179
  ### Database Mapping
166
180
 
167
181
  The default convention column mapping is the value object name as prefix and the value object attribute as suffix.
@@ -37,8 +37,16 @@ module Embedded
37
37
  end
38
38
 
39
39
  self.send(:define_method, :"#{embeddable_attr}=") do |v|
40
- columns.each do |k,a|
41
- write_attribute(k, v.send(a))
40
+ if v.is_a?(clazz)
41
+ columns.each do |k,a|
42
+ write_attribute(k, v.send(a))
43
+ end
44
+ elsif v.is_a?(Hash)
45
+ columns.each do |k,a|
46
+ write_attribute(k, v[a])
47
+ end
48
+ else
49
+ raise ArgumentError.new("invalid class. #{clazz.to_s} or Hash was expected")
42
50
  end
43
51
  end
44
52
  end
@@ -1,3 +1,3 @@
1
1
  module Embedded
2
- VERSION = '0.3.0'
2
+ VERSION = '0.4.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embedded
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - jvillarejo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-14 00:00:00.000000000 Z
11
+ date: 2018-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord