embedded 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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