active_hash 0.9.6 → 0.9.7
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/CHANGELOG +3 -0
- data/README.md +1 -1
- data/active_hash.gemspec +1 -1
- data/lib/active_hash/version.rb +1 -1
- data/lib/associations/associations.rb +1 -1
- data/spec/associations/associations_spec.rb +28 -12
- metadata +9 -9
data/CHANGELOG
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
2011-09-18 (v0.9.7)
|
|
2
|
+
- Fixing the setting of a belongs_to_active_hash association by association (not id).
|
|
3
|
+
|
|
1
4
|
2011-08-31
|
|
2
5
|
- added a module which adds a .belongs_to_active_hash method to ActiveRecord, since it was broken for Rails 3.1 (thanks to felixclack for pointing this issue out)
|
|
3
6
|
|
data/README.md
CHANGED
|
@@ -4,7 +4,7 @@ ActiveHash is a simple base class that allows you to use a ruby hash as a readon
|
|
|
4
4
|
|
|
5
5
|
ActiveHash assumes that every hash has an :id key, which is what you would probably store in a database. This allows you to seemlessly upgrade from ActiveHash objects to full ActiveRecord objects without having to change any code in your app, or any foreign keys in your database.
|
|
6
6
|
|
|
7
|
-
It also allows you to use #has_many and #belongs_to in your AR objects.
|
|
7
|
+
It also allows you to use #has_many and #belongs_to (via belongs_to_active_hash) in your AR objects.
|
|
8
8
|
|
|
9
9
|
ActiveHash can also be useful to create simple test classes that run without a database - ideal for testing plugins or gems that rely on simple AR behavior, but don't want to deal with databases or migrations for the spec suite.
|
|
10
10
|
|
data/active_hash.gemspec
CHANGED
data/lib/active_hash/version.rb
CHANGED
|
@@ -97,20 +97,36 @@ describe ActiveHash::Base, "associations" do
|
|
|
97
97
|
describe ActiveHash::Associations::ActiveRecordExtensions do
|
|
98
98
|
|
|
99
99
|
describe "#belongs_to_active_hash" do
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
100
|
+
context "setting by id" do
|
|
101
|
+
it "finds the correct records" do
|
|
102
|
+
School.belongs_to_active_hash :city
|
|
103
|
+
city = City.create
|
|
104
|
+
school = School.create :city_id => city.id
|
|
105
|
+
school.city.should == city
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
it "returns nil when the record does not exist" do
|
|
109
|
+
School.belongs_to_active_hash :city
|
|
110
|
+
school = School.create! :city_id => nil
|
|
111
|
+
school.city.should be_nil
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
context "setting by association" do
|
|
116
|
+
it "finds the correct records" do
|
|
117
|
+
School.belongs_to_active_hash :city
|
|
118
|
+
city = City.create
|
|
119
|
+
school = School.create :city => city
|
|
120
|
+
school.city.should == city
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
it "returns nil when the record does not exist" do
|
|
124
|
+
School.belongs_to_active_hash :city
|
|
125
|
+
school = School.create! :city => nil
|
|
126
|
+
school.city.should be_nil
|
|
127
|
+
end
|
|
111
128
|
end
|
|
112
129
|
end
|
|
113
|
-
|
|
114
130
|
end
|
|
115
131
|
|
|
116
132
|
describe "#belongs_to" do
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: active_hash
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 53
|
|
5
5
|
prerelease:
|
|
6
6
|
segments:
|
|
7
7
|
- 0
|
|
8
8
|
- 9
|
|
9
|
-
-
|
|
10
|
-
version: 0.9.
|
|
9
|
+
- 7
|
|
10
|
+
version: 0.9.7
|
|
11
11
|
platform: ruby
|
|
12
12
|
authors:
|
|
13
13
|
- Jeff Dean
|
|
@@ -30,7 +30,7 @@ autorequire:
|
|
|
30
30
|
bindir: bin
|
|
31
31
|
cert_chain: []
|
|
32
32
|
|
|
33
|
-
date: 2011-
|
|
33
|
+
date: 2011-09-18 00:00:00 -04:00
|
|
34
34
|
default_executable:
|
|
35
35
|
dependencies:
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
@@ -63,13 +63,13 @@ files:
|
|
|
63
63
|
- LICENSE
|
|
64
64
|
- README.md
|
|
65
65
|
- active_hash.gemspec
|
|
66
|
-
- lib/
|
|
67
|
-
- lib/active_hash/base.rb
|
|
68
|
-
- lib/active_hash/version.rb
|
|
66
|
+
- lib/enum/enum.rb
|
|
69
67
|
- lib/active_hash.rb
|
|
70
68
|
- lib/active_yaml/base.rb
|
|
69
|
+
- lib/active_file/base.rb
|
|
70
|
+
- lib/active_hash/version.rb
|
|
71
|
+
- lib/active_hash/base.rb
|
|
71
72
|
- lib/associations/associations.rb
|
|
72
|
-
- lib/enum/enum.rb
|
|
73
73
|
- Gemfile
|
|
74
74
|
- spec/active_file/base_spec.rb
|
|
75
75
|
- spec/active_hash/base_spec.rb
|
|
@@ -108,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
108
108
|
requirements: []
|
|
109
109
|
|
|
110
110
|
rubyforge_project:
|
|
111
|
-
rubygems_version: 1.6.
|
|
111
|
+
rubygems_version: 1.6.0
|
|
112
112
|
signing_key:
|
|
113
113
|
specification_version: 3
|
|
114
114
|
summary: An ActiveRecord-like model that uses a hash or file as a datasource
|