hash_dealer 1.4.4 → 1.4.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/Gemfile CHANGED
@@ -5,6 +5,7 @@ source "http://rubygems.org"
5
5
 
6
6
  gem "activesupport", :require => "active_support"
7
7
  gem "i18n"
8
+ gem "colorize"
8
9
 
9
10
  # Add dependencies to develop your gem here.
10
11
  # Include everything needed to run rake, tests, features, etc.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.4.4
1
+ 1.4.5
data/hash_dealer.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "hash_dealer"
8
- s.version = "1.4.4"
8
+ s.version = "1.4.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Dan Langevin"]
12
- s.date = "2011-10-05"
12
+ s.date = "2011-11-22"
13
13
  s.description = "Like Factory Girl but for Hashes only"
14
14
  s.email = "dan.langevin@lifebooker.com"
15
15
  s.extra_rdoc_files = [
@@ -40,7 +40,7 @@ Gem::Specification.new do |s|
40
40
  s.homepage = "http://github.com/LifebookerInc/hash_dealer"
41
41
  s.licenses = ["MIT"]
42
42
  s.require_paths = ["lib"]
43
- s.rubygems_version = "1.8.10"
43
+ s.rubygems_version = "1.8.11"
44
44
  s.summary = "Hash Factory - like Factory Girl but for Hashes only"
45
45
 
46
46
  if s.respond_to? :specification_version then
@@ -49,6 +49,7 @@ Gem::Specification.new do |s|
49
49
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
50
50
  s.add_runtime_dependency(%q<activesupport>, [">= 0"])
51
51
  s.add_runtime_dependency(%q<i18n>, [">= 0"])
52
+ s.add_runtime_dependency(%q<colorize>, [">= 0"])
52
53
  s.add_development_dependency(%q<bundler>, [">= 0"])
53
54
  s.add_development_dependency(%q<jeweler>, [">= 0"])
54
55
  s.add_development_dependency(%q<rspec>, [">= 0"])
@@ -59,6 +60,7 @@ Gem::Specification.new do |s|
59
60
  else
60
61
  s.add_dependency(%q<activesupport>, [">= 0"])
61
62
  s.add_dependency(%q<i18n>, [">= 0"])
63
+ s.add_dependency(%q<colorize>, [">= 0"])
62
64
  s.add_dependency(%q<bundler>, [">= 0"])
63
65
  s.add_dependency(%q<jeweler>, [">= 0"])
64
66
  s.add_dependency(%q<rspec>, [">= 0"])
@@ -70,6 +72,7 @@ Gem::Specification.new do |s|
70
72
  else
71
73
  s.add_dependency(%q<activesupport>, [">= 0"])
72
74
  s.add_dependency(%q<i18n>, [">= 0"])
75
+ s.add_dependency(%q<colorize>, [">= 0"])
73
76
  s.add_dependency(%q<bundler>, [">= 0"])
74
77
  s.add_dependency(%q<jeweler>, [">= 0"])
75
78
  s.add_dependency(%q<rspec>, [">= 0"])
@@ -11,6 +11,9 @@ class TimeDateMatcher
11
11
  @instance = instance
12
12
  end
13
13
  def ==(other)
14
+ # allow nils to match
15
+ return true if other.nil?
16
+ # attempt to parse any strings
14
17
  if other.is_a?(String)
15
18
  begin
16
19
  other = self.instance.class.parse(other)
@@ -83,48 +83,58 @@ describe HashDealer do
83
83
  HashDealer.roll(:variable).matcher(:only => [:b])[:b].should eql(":test_b")
84
84
  end
85
85
 
86
- it "should create a wrapper for times and dates" do
87
- HashDealer.define(:variable) do
88
- time_test(Time.now)
89
- date_test(Date.today)
86
+ context "Dates and Times" do
87
+ before(:all) do
88
+ HashDealer.define(:variable) do
89
+ time_test(Time.now)
90
+ date_test(Date.today)
91
+ end
92
+ HashDealer.define(:var) do
93
+ id("1")
94
+ created_at(Time.now)
95
+ updated_at(Time.now)
96
+ end
90
97
  end
91
-
92
- time_test = HashDealer.roll(:variable).matcher[:time_test]
93
- date_test = HashDealer.roll(:variable).matcher[:date_test]
94
-
95
- time_test.should be_instance_of TimeDateMatcher
96
- date_test.should be_instance_of TimeDateMatcher
97
-
98
- time_test.should eql (Time.now - 1000)
99
- time_test.should_not eql (Date.today)
100
- date_test.should eql (Date.today)
101
- date_test.should_not eql (Time.now)
102
-
103
- # check the reverse too
104
- (Time.now - 1000).should eql(time_test)
105
- (Time.now - 1000).should == time_test
106
- (Date.today).should_not eql(time_test)
107
- (Date.today).should_not == time_test
108
-
109
- # regular behavior should be unaffected
110
- t = Time.now
111
- t.should eql t.clone
112
- t.should == t.clone
113
-
114
-
115
- end
116
-
117
- it "should match dates and times from JSON" do
118
- HashDealer.define(:var) do
119
- id("1")
120
- created_at(Time.now)
121
- updated_at(Time.now)
98
+ it "should create a wrapper for times and dates" do
99
+
100
+
101
+ time_test = HashDealer.roll(:variable).matcher[:time_test]
102
+ date_test = HashDealer.roll(:variable).matcher[:date_test]
103
+
104
+ time_test.should be_instance_of TimeDateMatcher
105
+ date_test.should be_instance_of TimeDateMatcher
106
+
107
+ time_test.should eql (Time.now - 1000)
108
+ time_test.should_not eql (Date.today)
109
+ date_test.should eql (Date.today)
110
+ date_test.should_not eql (Time.now)
111
+
112
+ # check the reverse too
113
+ (Time.now - 1000).should eql(time_test)
114
+ (Time.now - 1000).should == time_test
115
+ (Date.today).should_not eql(time_test)
116
+ (Date.today).should_not == time_test
117
+
118
+ # regular behavior should be unaffected
119
+ t = Time.now
120
+ t.should eql t.clone
121
+ t.should == t.clone
122
+
123
+
124
+ end
125
+
126
+ it "should match dates and times from JSON" do
127
+ ActiveSupport::JSON.encode({:created_at => Time.now, :updated_at => Time.now, :id => 1}).should match_response(HashDealer.roll(:var).matcher)
128
+ end
129
+
130
+ it "should allow dates and times to be null" do
131
+ ActiveSupport::JSON.encode({:created_at => nil, :updated_at => nil, :id => 1}).should match_response(HashDealer.roll(:var).matcher)
122
132
  end
123
-
124
- ActiveSupport::JSON.encode({:created_at => Time.now, :updated_at => Time.now, :id => 1}).should match_response(HashDealer.roll(:var).matcher)
125
133
 
126
134
  end
127
135
 
136
+
137
+
128
138
  it "should not modify the element when returning a matcher" do
129
139
  HashDealer.define(:array) do
130
140
  my_array([1,2,3])
@@ -52,6 +52,4 @@ describe "match_response Matcher" do
52
52
  {"a" => true}.matcher.should match_response({"a" => false})
53
53
  {"a" => {"b" => false}}.matcher.should match_response({"a" => {"b" => false}})
54
54
  end
55
-
56
-
57
55
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: hash_dealer
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.4.4
5
+ version: 1.4.5
6
6
  platform: ruby
7
7
  authors:
8
8
  - Dan Langevin
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-10-05 00:00:00 Z
13
+ date: 2011-11-22 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
@@ -35,18 +35,18 @@ dependencies:
35
35
  prerelease: false
36
36
  version_requirements: *id002
37
37
  - !ruby/object:Gem::Dependency
38
- name: bundler
38
+ name: colorize
39
39
  requirement: &id003 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ">="
43
43
  - !ruby/object:Gem::Version
44
44
  version: "0"
45
- type: :development
45
+ type: :runtime
46
46
  prerelease: false
47
47
  version_requirements: *id003
48
48
  - !ruby/object:Gem::Dependency
49
- name: jeweler
49
+ name: bundler
50
50
  requirement: &id004 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
@@ -57,7 +57,7 @@ dependencies:
57
57
  prerelease: false
58
58
  version_requirements: *id004
59
59
  - !ruby/object:Gem::Dependency
60
- name: rspec
60
+ name: jeweler
61
61
  requirement: &id005 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
@@ -68,7 +68,7 @@ dependencies:
68
68
  prerelease: false
69
69
  version_requirements: *id005
70
70
  - !ruby/object:Gem::Dependency
71
- name: rcov
71
+ name: rspec
72
72
  requirement: &id006 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
@@ -79,8 +79,19 @@ dependencies:
79
79
  prerelease: false
80
80
  version_requirements: *id006
81
81
  - !ruby/object:Gem::Dependency
82
- name: guard-rspec
82
+ name: rcov
83
83
  requirement: &id007 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: "0"
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: *id007
92
+ - !ruby/object:Gem::Dependency
93
+ name: guard-rspec
94
+ requirement: &id008 !ruby/object:Gem::Requirement
84
95
  none: false
85
96
  requirements:
86
97
  - - "="
@@ -88,10 +99,10 @@ dependencies:
88
99
  version: 0.4.0
89
100
  type: :development
90
101
  prerelease: false
91
- version_requirements: *id007
102
+ version_requirements: *id008
92
103
  - !ruby/object:Gem::Dependency
93
104
  name: ruby-debug19
94
- requirement: &id008 !ruby/object:Gem::Requirement
105
+ requirement: &id009 !ruby/object:Gem::Requirement
95
106
  none: false
96
107
  requirements:
97
108
  - - ">="
@@ -99,10 +110,10 @@ dependencies:
99
110
  version: "0"
100
111
  type: :development
101
112
  prerelease: false
102
- version_requirements: *id008
113
+ version_requirements: *id009
103
114
  - !ruby/object:Gem::Dependency
104
115
  name: simplecov
105
- requirement: &id009 !ruby/object:Gem::Requirement
116
+ requirement: &id010 !ruby/object:Gem::Requirement
106
117
  none: false
107
118
  requirements:
108
119
  - - ">="
@@ -110,7 +121,7 @@ dependencies:
110
121
  version: "0"
111
122
  type: :development
112
123
  prerelease: false
113
- version_requirements: *id009
124
+ version_requirements: *id010
114
125
  description: Like Factory Girl but for Hashes only
115
126
  email: dan.langevin@lifebooker.com
116
127
  executables: []
@@ -153,7 +164,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
153
164
  requirements:
154
165
  - - ">="
155
166
  - !ruby/object:Gem::Version
156
- hash: -1396539003165277442
167
+ hash: -4520042367006189314
157
168
  segments:
158
169
  - 0
159
170
  version: "0"
@@ -166,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
166
177
  requirements: []
167
178
 
168
179
  rubyforge_project:
169
- rubygems_version: 1.8.10
180
+ rubygems_version: 1.8.11
170
181
  signing_key:
171
182
  specification_version: 3
172
183
  summary: Hash Factory - like Factory Girl but for Hashes only