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 +4 -4
- data/README.md +14 -0
- data/lib/embedded/model.rb +10 -2
- data/lib/embedded/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce4a136f75afec1cb73715b16c81c48d003c3168c7a0f1139bb9b8b94330664b
|
4
|
+
data.tar.gz: 27b47d827ebcc4b36b4326bd3fd4fc88bfa4e2a7ef32c891736351f972a892ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
data/lib/embedded/model.rb
CHANGED
@@ -37,8 +37,16 @@ module Embedded
|
|
37
37
|
end
|
38
38
|
|
39
39
|
self.send(:define_method, :"#{embeddable_attr}=") do |v|
|
40
|
-
|
41
|
-
|
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
|
data/lib/embedded/version.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2018-04-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|