hash_dealer 1.4.4 → 1.4.5

Sign up to get free protection for your applications and to get access to all the features.
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