activefacts-api 0.9.1 → 0.9.2
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.
- data/VERSION +1 -1
- data/activefacts-api.gemspec +1 -1
- data/lib/activefacts/api/entity.rb +1 -2
- data/lib/activefacts/api/numeric.rb +5 -0
- data/spec/constellation/constellation_spec.rb +7 -1
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.2
|
data/activefacts-api.gemspec
CHANGED
@@ -217,7 +217,7 @@ module ActiveFacts
|
|
217
217
|
# Find and return an existing instance matching this key
|
218
218
|
instances = constellation.instances[self] # All instances of this class in this constellation
|
219
219
|
instance = instances[key]
|
220
|
-
|
220
|
+
@created_instances ||= []
|
221
221
|
if instance
|
222
222
|
# raise "Additional role values are ignored when asserting an existing instance" if args[-1].is_a? Hash and !args[-1].empty?
|
223
223
|
assign_additional_roles(instance, args[-1]) if args[-1].is_a? Hash and !args[-1].empty?
|
@@ -226,7 +226,6 @@ module ActiveFacts
|
|
226
226
|
|
227
227
|
# Now construct each of this object's identifying roles
|
228
228
|
irns = identifying_role_names
|
229
|
-
@created_instances ||= []
|
230
229
|
|
231
230
|
has_hash = args[-1].is_a?(Hash)
|
232
231
|
if args.size == 1+(has_hash ? 1 : 0) and args[0].is_a?(self)
|
@@ -161,6 +161,11 @@ class AutoCounter
|
|
161
161
|
end
|
162
162
|
end
|
163
163
|
|
164
|
+
# if the value is unassigned, it equal?(:new).
|
165
|
+
def equal? value
|
166
|
+
value == :new ? @value == nil : super
|
167
|
+
end
|
168
|
+
|
164
169
|
# An AutoCounter may only be used in numeric expressions after a definite value has been assigned
|
165
170
|
def to_i
|
166
171
|
raise ArgumentError, "Illegal attempt to get integer value of an uncommitted AutoCounter" unless @value
|
@@ -147,10 +147,16 @@ describe "A Constellation instance" do
|
|
147
147
|
name1 = @constellation.Name("foo")
|
148
148
|
foo1 = @constellation.LegalEntity("foo")
|
149
149
|
acme1 = @constellation.Company("Acme, Inc", :auto_counter_val => :new)
|
150
|
+
acme1_id = acme1.auto_counter_val.to_s
|
150
151
|
|
151
152
|
name2 = @constellation.Name("foo")
|
152
153
|
foo2 = @constellation.LegalEntity("foo")
|
153
|
-
|
154
|
+
acme2 = nil
|
155
|
+
lambda { acme2 = @constellation.Company("Acme, Inc", :auto_counter_val => :new) }.should_not raise_error
|
156
|
+
acme2.auto_counter_val = :new
|
157
|
+
acme2.should == acme1
|
158
|
+
acme2.auto_counter_val.should_not be_defined
|
159
|
+
acme2.auto_counter_val.to_s.should == acme1_id
|
154
160
|
end
|
155
161
|
|
156
162
|
it "should support methods to assert instances via the class for that type" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activefacts-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -202,7 +202,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
202
202
|
version: '0'
|
203
203
|
segments:
|
204
204
|
- 0
|
205
|
-
hash: -
|
205
|
+
hash: -2189448494771312824
|
206
206
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
207
207
|
none: false
|
208
208
|
requirements:
|