son_jay 0.5.1 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/CHANGELOG.md +5 -0
- data/lib/son_jay/object_model.rb +11 -1
- data/lib/son_jay/version.rb +1 -1
- data/spec/object_model_spec.rb +14 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
Y2JiYTQyYzQ2YTY0ZjE0ZGU2Y2Q2ZGU0M2QyMDcxNGFjZGExMDdjZA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YWQzMzA5YTlhNzdkYmQxYWExM2E0ZTRhZWVkNTQ3ZjgxMDcwY2EwZQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
M2JlNTE5NTRmOTVlZThkZGM2NDBiYTEzY2I5NmVhM2E0MWQxNTZkNmZjMzVh
|
10
|
+
NGNiM2NiNDA5YjFlOTg5ZDU3MmZkYjZlYjM3MTFjNDU4YTZmNjJhMzFhOTVk
|
11
|
+
OGEwNTk3ODJiNzVhMDRlZTRiMTM0NmQ0YzQ4ZWQwNDliOTYxNmY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MjcxNTRkYjllYWI1M2Q3ZjNiMDVmYmQ1ZjE0ODlmOGEwOTFjN2FhOWRmNDU1
|
14
|
+
YWZhZWNjODE1ODQ3ODlkYjEyMzU1NWYyNDY4MmU3YzI0ZjE3M2EwODA5OWM5
|
15
|
+
MmZjMWQ2ZTBjZGUwOGZiM2FjMDQ4MTdmNGE2NmQ3NjhjZWM0MmM=
|
data/CHANGELOG.md
CHANGED
data/lib/son_jay/object_model.rb
CHANGED
@@ -107,13 +107,23 @@ module SonJay
|
|
107
107
|
def _apply_property_definitions(definitions)
|
108
108
|
definitions.each do |d|
|
109
109
|
name = d.name
|
110
|
-
|
110
|
+
property_defs_module.module_eval <<-CODE
|
111
111
|
def #{name} ; model_content[#{name.inspect}] ; end
|
112
112
|
def #{name}=(value) ; model_content[#{name.inspect}] = value ; end
|
113
113
|
CODE
|
114
114
|
end
|
115
115
|
end
|
116
116
|
|
117
|
+
def property_defs_module
|
118
|
+
@property_defs_module ||= begin
|
119
|
+
Module.new.tap do |mod|
|
120
|
+
const_set :HasPropertyAccessors, mod
|
121
|
+
include mod
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
|
117
127
|
def _validate_model_dependencies!(dependants=Set.new)
|
118
128
|
raise InfiniteRegressError if dependants.include?(self)
|
119
129
|
dependants << self
|
data/lib/son_jay/version.rb
CHANGED
data/spec/object_model_spec.rb
CHANGED
@@ -153,6 +153,20 @@ describe SonJay::ObjectModel do
|
|
153
153
|
expect( instance.detail_z.zzz ).to eq('z')
|
154
154
|
end
|
155
155
|
|
156
|
+
it "allows declared methods to be overridden in subclasses" do
|
157
|
+
subclass = Class.new(model_class) do
|
158
|
+
def aaa=(value) ; super "<#{value}>" ; end
|
159
|
+
def bbb ; "[#{super}]" ; end
|
160
|
+
end
|
161
|
+
subinst = subclass.new
|
162
|
+
|
163
|
+
subinst.aaa = 'abc'
|
164
|
+
subinst.model_content['bbb'] = 'xyz'
|
165
|
+
|
166
|
+
expect( subinst.model_content['aaa'] ).to eq('<abc>')
|
167
|
+
expect( subinst.bbb ).to eq('[xyz]')
|
168
|
+
end
|
169
|
+
|
156
170
|
context "with more properties added via an additional ::properies block" do
|
157
171
|
before do
|
158
172
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: son_jay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Jorgensen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|