active_hash 0.8.4 → 0.8.5

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 CHANGED
@@ -1,3 +1,6 @@
1
+ 2010-10-20
2
+ - Allow find_by_* methods to accept an options hash, so rails associations don't blow up
3
+
1
4
  2010-10-07
2
5
  - Add conditions to ActiveHash#all (Ryan Garver)
3
6
  - Add #cache_key to ActiveHash::Base (Tom Stuart)
data/Rakefile CHANGED
@@ -8,7 +8,20 @@ begin
8
8
  gem.summary = %Q{An ActiveRecord-like model that uses a hash or file as a datasource}
9
9
  gem.email = "jeff@zilkey.com"
10
10
  gem.homepage = "http://github.com/zilkey/active_hash"
11
- gem.authors = ["Jeff Dean", "Mike Dalessio", "Corey Innis", "Peter Jaros", "Brandon Keene", "Brian Takita", "Pat Nakajima", "John Pignata", "Michael Schubert", "Jeremy Weiskotten"]
11
+ gem.authors = [
12
+ "Jeff Dean",
13
+ "Mike Dalessio",
14
+ "Corey Innis",
15
+ "Peter Jaros",
16
+ "Brandon Keene",
17
+ "Brian Takita",
18
+ "Pat Nakajima",
19
+ "John Pignata",
20
+ "Michael Schubert",
21
+ "Jeremy Weiskotten",
22
+ "Ryan Garver",
23
+ "Tom Stuart",
24
+ ]
12
25
  gem.add_dependency('activesupport', [">= 2.2.2"])
13
26
  gem.post_install_message = "NOTE: Enums have changed to use underscores.\n\nYou may have to do a search and replace to get your suite green."
14
27
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.4
1
+ 0.8.5
data/active_hash.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{active_hash}
8
- s.version = "0.8.4"
8
+ s.version = "0.8.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Jeff Dean", "Mike Dalessio", "Corey Innis", "Peter Jaros", "Brandon Keene", "Brian Takita", "Pat Nakajima", "John Pignata", "Michael Schubert", "Jeremy Weiskotten"]
12
- s.date = %q{2010-10-07}
11
+ s.authors = ["Jeff Dean", "Mike Dalessio", "Corey Innis", "Peter Jaros", "Brandon Keene", "Brian Takita", "Pat Nakajima", "John Pignata", "Michael Schubert", "Jeremy Weiskotten", "Ryan Garver", "Tom Stuart"]
12
+ s.date = %q{2010-10-20}
13
13
  s.email = %q{jeff@zilkey.com}
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE",
@@ -131,7 +131,7 @@ module ActiveHash
131
131
  end
132
132
  end
133
133
 
134
- def method_missing(method_name, * args)
134
+ def method_missing(method_name, *args)
135
135
  return super unless respond_to? method_name
136
136
 
137
137
  config = configuration_for_custom_finder(method_name)
@@ -198,8 +198,10 @@ module ActiveHash
198
198
  method_name = "find_by_#{field_name}"
199
199
  unless singleton_methods.include?(method_name)
200
200
  the_meta_class.instance_eval do
201
- define_method(method_name) do |name|
202
- all.detect { |record| record.send(field_name) == name }
201
+ define_method(method_name) do |*args|
202
+ options = args.extract_options!
203
+ identifier = args[0]
204
+ all.detect { |record| record.send(field_name) == identifier }
203
205
  end
204
206
  end
205
207
  end
@@ -212,8 +214,10 @@ module ActiveHash
212
214
  unless singleton_methods.include?(method_name)
213
215
  the_meta_class.instance_eval do
214
216
  unless singleton_methods.include?(method_name)
215
- define_method(method_name) do |name|
216
- all.select { |record| record.send(field_name) == name }
217
+ define_method(method_name) do |*args|
218
+ options = args.extract_options!
219
+ identifier = args[0]
220
+ all.select { |record| record.send(field_name) == identifier }
217
221
  end
218
222
  end
219
223
  end
@@ -65,6 +65,16 @@ describe ActiveHash, "Base" do
65
65
  Country.should_not respond_to(:find_all_by_name_and_iso_name!)
66
66
  Country.should_not respond_to(:find_all_by_iso_name_and_name!)
67
67
  end
68
+
69
+ it "allows you to pass options to the built-in find_by_* methods (but ignores the hash for now)" do
70
+ Country.find_by_name("Canada", :select => nil).should be_nil
71
+ Country.find_all_by_name("Canada", :select => nil).should == []
72
+ end
73
+
74
+ it "allows you to pass options to the custom find_by_* methods (but ignores the hash for now)" do
75
+ Country.find_by_name_and_iso_name("Canada", "CA", :select => nil).should be_nil
76
+ Country.find_all_by_name_and_iso_name("Canada", "CA", :select => nil).should == []
77
+ end
68
78
  end
69
79
 
70
80
  describe ".data=" 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: 55
4
+ hash: 53
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 8
9
- - 4
10
- version: 0.8.4
9
+ - 5
10
+ version: 0.8.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jeff Dean
@@ -20,11 +20,13 @@ authors:
20
20
  - John Pignata
21
21
  - Michael Schubert
22
22
  - Jeremy Weiskotten
23
+ - Ryan Garver
24
+ - Tom Stuart
23
25
  autorequire:
24
26
  bindir: bin
25
27
  cert_chain: []
26
28
 
27
- date: 2010-10-07 00:00:00 -06:00
29
+ date: 2010-10-20 00:00:00 -06:00
28
30
  default_executable:
29
31
  dependencies:
30
32
  - !ruby/object:Gem::Dependency