hot_or_not 0.1.6 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -14,7 +14,7 @@ group :development do
14
14
  end
15
15
 
16
16
  gem 'rest-client', '~> 1.6.1'
17
- gem 'diffy', '~> 2.0.1'
17
+ gem 'diffy', '~> 2.0.3'
18
18
  gem 'facets', '~> 2.9.1'
19
19
  gem 'json', '~> 1.5.2'
20
20
  gem 'hpricot', '~> 0.8.4'
data/Gemfile.lock CHANGED
@@ -1,10 +1,11 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- diffy (2.0.1)
4
+ diffy (2.0.3)
5
5
  facets (2.9.1)
6
6
  git (1.2.5)
7
7
  hpricot (0.8.4)
8
+ hpricot (0.8.4-java)
8
9
  jeweler (1.6.0)
9
10
  bundler (~> 1.0.0)
10
11
  git (>= 1.2.5)
@@ -26,7 +27,7 @@ PLATFORMS
26
27
 
27
28
  DEPENDENCIES
28
29
  bundler (~> 1.0.0)
29
- diffy (~> 2.0.1)
30
+ diffy (~> 2.0.3)
30
31
  facets (~> 2.9.1)
31
32
  hpricot (~> 0.8.4)
32
33
  jeweler (~> 1.6.0)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.6
1
+ 0.1.8
@@ -25,14 +25,15 @@ module HotOrNot
25
25
  end
26
26
 
27
27
  def self.load_from(filename)
28
- contents = YAML.load run_erb filename
29
- side_a, side_b, comparisons = contents['side_a'], contents['side_b'], contents['comparisons']
28
+ contents = YAML.load(run_erb(filename)).symbolize_keys!
29
+ side_a, side_b, comparisons = contents.delete(:side_a), contents.delete(:side_b), contents.delete(:comparisons)
30
30
  raise "You're file is not of the proper format" unless side_a && side_b && comparisons
31
31
  comparisons.map do |h|
32
32
  h.symbolize_keys!
33
33
  name = h.delete :name
34
34
  url = h.delete :url
35
- CompareUrl.new name, url, side_a, side_b, h
35
+ options = contents.merge h
36
+ CompareUrl.new name, url, side_a, side_b, options
36
37
  end
37
38
  end
38
39
 
@@ -41,7 +41,7 @@ module HotOrNot
41
41
 
42
42
  def different?
43
43
  return side_a_body != side_b_body if @diff.nil?
44
- @diff.count > side_a_body.lines.count || @diff.count > side_b_body.lines.count
44
+ @diff.diff != side_a_body.gsub(/^/, ' ')
45
45
  end
46
46
 
47
47
  def output_to_files_in(directory)
@@ -58,8 +58,8 @@ module HotOrNot
58
58
  message += "#{$/} #{@compare_url.base_b} => #{@side_b_results.error_message}" if @side_b_results.error?
59
59
  message
60
60
  else
61
- diff_options = '-U 3'
62
- diff_options += ' ' + @compare_url.options[:diff] if @compare_url.options[:diff]
61
+ diff_options = ['-U 3']
62
+ diff_options << @compare_url.options[:diff] if @compare_url.options[:diff]
63
63
  @diff = Diffy::Diff.new(side_a_body, side_b_body, :diff => diff_options)
64
64
  "#{@compare_url.full_name}: #{@compare_url.url}: Body from #{@compare_url.base_a} did not match body from #{@compare_url.base_b}"
65
65
  end
@@ -17,7 +17,12 @@ module HotOrNot
17
17
  end
18
18
 
19
19
  should "load options from file" do
20
- expected_options = { :headers => { 'authorization' => 'foo123bar' } }
20
+ expected_headers = { 'authorization' => 'foo123bar' }
21
+ assert_equal expected_headers, @urls[1].options[:headers]
22
+ end
23
+
24
+ should "merge global options in" do
25
+ expected_options = { :diff => '-w', :headers => { 'authorization' => 'foo123bar' } }
21
26
  assert_equal expected_options, @urls[1].options
22
27
  end
23
28
  end
@@ -106,6 +106,23 @@ module HotOrNot
106
106
  should "provide a diff" do
107
107
  assert_present @result.diff
108
108
  end
109
+
110
+ context "ignoring whitespace" do
111
+ setup do
112
+ compare_url = CompareUrl.new 'Test People', '/api/people', 'http://side_a', 'http://side_b', :diff => '-w'
113
+ body_a = "foo\nbar"
114
+ body_b = " foo\nbaz"
115
+ response_a = FakeResponse.new body_a, 200
116
+ response_b = FakeResponse.new body_b, 200
117
+ side_a_results = UrlResult.new compare_url.side_a, response_a, nil
118
+ side_b_results = UrlResult.new compare_url.side_b, response_b, nil
119
+ @result = ComparisonResult.new compare_url, side_a_results, side_b_results
120
+ end
121
+
122
+ should "return failure" do
123
+ assert_not @result.success?
124
+ end
125
+ end
109
126
  end
110
127
 
111
128
  context "when one result has an error" do
@@ -1,5 +1,6 @@
1
1
  side_a: 'http://side_a'
2
2
  side_b: 'http://side_b'
3
+ diff: -w
3
4
  comparisons:
4
5
  - name: People Test
5
6
  url: /api/people
metadata CHANGED
@@ -1,8 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hot_or_not
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.1.6
4
+ hash: 11
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 8
10
+ version: 0.1.8
6
11
  platform: ruby
7
12
  authors:
8
13
  - Joel Friedman
@@ -10,7 +15,7 @@ autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
17
 
13
- date: 2011-07-18 00:00:00 -05:00
18
+ date: 2011-07-20 00:00:00 -05:00
14
19
  default_executable: hot_or_not
15
20
  dependencies:
16
21
  - !ruby/object:Gem::Dependency
@@ -20,6 +25,11 @@ dependencies:
20
25
  requirements:
21
26
  - - ~>
22
27
  - !ruby/object:Gem::Version
28
+ hash: 13
29
+ segments:
30
+ - 1
31
+ - 6
32
+ - 1
23
33
  version: 1.6.1
24
34
  type: :runtime
25
35
  prerelease: false
@@ -31,7 +41,12 @@ dependencies:
31
41
  requirements:
32
42
  - - ~>
33
43
  - !ruby/object:Gem::Version
34
- version: 2.0.1
44
+ hash: 9
45
+ segments:
46
+ - 2
47
+ - 0
48
+ - 3
49
+ version: 2.0.3
35
50
  type: :runtime
36
51
  prerelease: false
37
52
  version_requirements: *id002
@@ -42,6 +57,11 @@ dependencies:
42
57
  requirements:
43
58
  - - ~>
44
59
  - !ruby/object:Gem::Version
60
+ hash: 41
61
+ segments:
62
+ - 2
63
+ - 9
64
+ - 1
45
65
  version: 2.9.1
46
66
  type: :runtime
47
67
  prerelease: false
@@ -53,6 +73,11 @@ dependencies:
53
73
  requirements:
54
74
  - - ~>
55
75
  - !ruby/object:Gem::Version
76
+ hash: 7
77
+ segments:
78
+ - 1
79
+ - 5
80
+ - 2
56
81
  version: 1.5.2
57
82
  type: :runtime
58
83
  prerelease: false
@@ -64,6 +89,11 @@ dependencies:
64
89
  requirements:
65
90
  - - ~>
66
91
  - !ruby/object:Gem::Version
92
+ hash: 55
93
+ segments:
94
+ - 0
95
+ - 8
96
+ - 4
67
97
  version: 0.8.4
68
98
  type: :runtime
69
99
  prerelease: false
@@ -75,6 +105,9 @@ dependencies:
75
105
  requirements:
76
106
  - - ">="
77
107
  - !ruby/object:Gem::Version
108
+ hash: 3
109
+ segments:
110
+ - 0
78
111
  version: "0"
79
112
  type: :development
80
113
  prerelease: false
@@ -86,6 +119,11 @@ dependencies:
86
119
  requirements:
87
120
  - - ~>
88
121
  - !ruby/object:Gem::Version
122
+ hash: 23
123
+ segments:
124
+ - 1
125
+ - 0
126
+ - 0
89
127
  version: 1.0.0
90
128
  type: :development
91
129
  prerelease: false
@@ -97,6 +135,11 @@ dependencies:
97
135
  requirements:
98
136
  - - ~>
99
137
  - !ruby/object:Gem::Version
138
+ hash: 15
139
+ segments:
140
+ - 1
141
+ - 6
142
+ - 0
100
143
  version: 1.6.0
101
144
  type: :development
102
145
  prerelease: false
@@ -108,6 +151,9 @@ dependencies:
108
151
  requirements:
109
152
  - - ">="
110
153
  - !ruby/object:Gem::Version
154
+ hash: 3
155
+ segments:
156
+ - 0
111
157
  version: "0"
112
158
  type: :development
113
159
  prerelease: false
@@ -119,6 +165,9 @@ dependencies:
119
165
  requirements:
120
166
  - - ">="
121
167
  - !ruby/object:Gem::Version
168
+ hash: 3
169
+ segments:
170
+ - 0
122
171
  version: "0"
123
172
  type: :development
124
173
  prerelease: false
@@ -171,7 +220,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
171
220
  requirements:
172
221
  - - ">="
173
222
  - !ruby/object:Gem::Version
174
- hash: -4115142112659835342
223
+ hash: 3
175
224
  segments:
176
225
  - 0
177
226
  version: "0"
@@ -180,11 +229,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
180
229
  requirements:
181
230
  - - ">="
182
231
  - !ruby/object:Gem::Version
232
+ hash: 3
233
+ segments:
234
+ - 0
183
235
  version: "0"
184
236
  requirements: []
185
237
 
186
238
  rubyforge_project:
187
- rubygems_version: 1.6.2
239
+ rubygems_version: 1.3.7
188
240
  signing_key:
189
241
  specification_version: 3
190
242
  summary: A tool for side-by-side comparsion of web apis