sniff 0.11.10 → 0.11.11

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.
@@ -33,20 +33,20 @@ module Sniff
33
33
 
34
34
  # Connect to the database and set up an ActiveRecord logger
35
35
  def db_init(options)
36
- options[:db_adapter] ||= 'sqlite3'
37
- options[:db_name] ||= ':memory:'
36
+ options = options.symbolize_keys
37
+ options[:adapter] ||= options.delete(:db_adapter) || 'sqlite3'
38
+ options[:database] ||= options.delete(:db_name) || ':memory:'
38
39
  ActiveRecord::Base.logger = Sniff.logger
39
- ActiveRecord::Base.establish_connection :adapter => options[:db_adapter],
40
- :database => options[:db_name]
40
+ ActiveRecord::Base.establish_connection options
41
41
  end
42
42
 
43
- # Initialize Earth, tell it to load schemas defined by each domain model's
44
- # data_miner definition
43
+ # Initialize Earth, but don't load schemas - otherwise get blank tables
44
+ # for any resources in a loaded domain that don't have a fixture
45
45
  def earth_init(domains)
46
46
  domains ||= :none
47
47
  domains = [domains] unless domains.is_a? Array
48
48
  args = domains
49
- args << {:apply_schemas => true}
49
+ args << {:apply_schemas => false}
50
50
 
51
51
  Earth.init *args
52
52
  end
data/lib/sniff/fixture.rb CHANGED
@@ -11,7 +11,8 @@ module Sniff
11
11
  next unless Object.const_defined?(model_name)
12
12
 
13
13
  model = model_name.constantize
14
- model.auto_upgrade! unless model.table_exists?
14
+ model.auto_upgrade!
15
+ model.delete_all # always import from scratch
15
16
  ActiveRecord::Base.logger.info "Loading fixture #{fixture_file}"
16
17
  CSV.foreach(fixture_file, :headers => true) do |row|
17
18
  ActiveRecord::Base.connection.insert_fixture(row, model.table_name) rescue ActiveRecord::RecordNotUnique
data/lib/sniff/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Sniff
2
- VERSION = "0.11.10"
2
+ VERSION = "0.11.11"
3
3
  end
@@ -25,17 +25,17 @@ Given /^(a )?characteristic "(.*)" of "([^\"]*)"(, converted with "(.*)")?$/ do
25
25
  association.klass
26
26
  end
27
27
  value = model.send "find_by_#{attribute}", value
28
- @characteristics[model_name.to_sym] = value
28
+ @characteristics[model_name.to_sym] = value unless value.nil?
29
29
  elsif name == 'timeframe'
30
30
  @timeframe = (value.present?) ? Timeframe.interval(value) : nil
31
31
  elsif name == 'active_subtimeframe'
32
32
  @characteristics[:active_subtimeframe] = (value.present?) ? Timeframe.interval(value) : nil
33
33
  elsif converter
34
34
  value = value.send converter
35
- @characteristics[name.to_sym] = value
35
+ @characteristics[name.to_sym] = value unless value.nil?
36
36
  else
37
37
  value = coerce_value(value)
38
- @characteristics[name.to_sym] = value
38
+ @characteristics[name.to_sym] = value unless value.nil?
39
39
  end
40
40
  end
41
41
 
@@ -13,15 +13,15 @@ module CucumberValueParser
13
13
  false
14
14
  elsif value =~ /\d+.*,.*\d/ # ???
15
15
  value
16
- elsif value =~ /^\d+\.\d+$/ # float
16
+ elsif value =~ /^-?\d+\.\d+$/ # float
17
17
  value.to_f
18
- elsif value =~ /^\d+(\.\d+)?\.\.\d+(\.\d+)?$/ # range
18
+ elsif value =~ /^-?\d+(\.\d+)?\.\.-?\d+(\.\d+)?$/ # range
19
19
  (value.split('..')[0].to_i)..(value.split('..')[1].to_i)
20
20
  elsif value =~ /^0+$/ # all zeros => 0
21
21
  0
22
- elsif value =~ /^0/ # zero preceding stuff => the input as a string
22
+ elsif value =~ /^0/ # zero preceding anything but a float or range => the input as a string
23
23
  value
24
- elsif value =~ /^\d+$/ # integer
24
+ elsif value =~ /^-?\d+$/ # integer
25
25
  value.to_i
26
26
  elsif value =~ /Address:/
27
27
  value.sub(/Address:\s*/,'')
@@ -17,15 +17,27 @@ describe CucumberValueParser do
17
17
  it 'should parse a float' do
18
18
  coerce_value('2.3').should == 2.3
19
19
  end
20
+ it 'should parse a negative float' do
21
+ coerce_value('-2.3').should == -2.3
22
+ end
20
23
  it 'should parse a zero-prefixed float' do
21
- coerce_value('2.0').should == 2.0
24
+ coerce_value('02.0').should == 2.0
25
+ end
26
+ it 'should parse a zero-prefixed integer' do
27
+ coerce_value('05753').should == '05753'
22
28
  end
23
29
  it 'should parse a range' do
24
30
  coerce_value('12..42').should == (12..42)
25
31
  end
32
+ it 'should parse negative ranges' do
33
+ coerce_value('-42..-12').should == (-42..-12)
34
+ end
26
35
  it 'should parse an integer' do
27
36
  coerce_value('2').should == 2
28
37
  end
38
+ it 'should parse a negative integer' do
39
+ coerce_value('-2').should == -2
40
+ end
29
41
  it 'should parse a date' do
30
42
  coerce_value('today').should be_an_instance_of(Time)
31
43
  coerce_value('2010-01-20').should be_an_instance_of(Time)
metadata CHANGED
@@ -1,222 +1,224 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: sniff
3
- version: !ruby/object:Gem::Version
4
- version: 0.11.10
3
+ version: !ruby/object:Gem::Version
5
4
  prerelease:
5
+ version: 0.11.11
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Derek Kastner
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-01 00:00:00.000000000Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
12
+
13
+ date: 2012-03-05 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
15
16
  name: activesupport
16
- requirement: &2154013700 !ruby/object:Gem::Requirement
17
+ requirement: &id001 !ruby/object:Gem::Requirement
17
18
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '3'
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "3"
22
23
  type: :runtime
23
24
  prerelease: false
24
- version_requirements: *2154013700
25
- - !ruby/object:Gem::Dependency
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
26
27
  name: aaronh-chronic
27
- requirement: &2154013040 !ruby/object:Gem::Requirement
28
+ requirement: &id002 !ruby/object:Gem::Requirement
28
29
  none: false
29
- requirements:
30
- - - ! '>='
31
- - !ruby/object:Gem::Version
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
32
33
  version: 0.3.9
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *2154013040
36
- - !ruby/object:Gem::Dependency
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
37
38
  name: bueller
38
- requirement: &2154012340 !ruby/object:Gem::Requirement
39
+ requirement: &id003 !ruby/object:Gem::Requirement
39
40
  none: false
40
- requirements:
41
- - - ! '>='
42
- - !ruby/object:Gem::Version
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
43
44
  version: 0.0.5
44
45
  type: :runtime
45
46
  prerelease: false
46
- version_requirements: *2154012340
47
- - !ruby/object:Gem::Dependency
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
48
49
  name: mini_record-compat
49
- requirement: &2154011720 !ruby/object:Gem::Requirement
50
+ requirement: &id004 !ruby/object:Gem::Requirement
50
51
  none: false
51
- requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: "0"
55
56
  type: :runtime
56
57
  prerelease: false
57
- version_requirements: *2154011720
58
- - !ruby/object:Gem::Dependency
58
+ version_requirements: *id004
59
+ - !ruby/object:Gem::Dependency
59
60
  name: cucumber
60
- requirement: &2154011140 !ruby/object:Gem::Requirement
61
+ requirement: &id005 !ruby/object:Gem::Requirement
61
62
  none: false
62
- requirements:
63
- - - ! '>='
64
- - !ruby/object:Gem::Version
65
- version: '0'
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: "0"
66
67
  type: :runtime
67
68
  prerelease: false
68
- version_requirements: *2154011140
69
- - !ruby/object:Gem::Dependency
69
+ version_requirements: *id005
70
+ - !ruby/object:Gem::Dependency
70
71
  name: earth
71
- requirement: &2154010500 !ruby/object:Gem::Requirement
72
+ requirement: &id006 !ruby/object:Gem::Requirement
72
73
  none: false
73
- requirements:
74
- - - ! '>='
75
- - !ruby/object:Gem::Version
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
76
77
  version: 0.4.5
77
78
  type: :runtime
78
79
  prerelease: false
79
- version_requirements: *2154010500
80
- - !ruby/object:Gem::Dependency
80
+ version_requirements: *id006
81
+ - !ruby/object:Gem::Dependency
81
82
  name: rake
82
- requirement: &2154009720 !ruby/object:Gem::Requirement
83
+ requirement: &id007 !ruby/object:Gem::Requirement
83
84
  none: false
84
- requirements:
85
- - - ! '>='
86
- - !ruby/object:Gem::Version
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
87
88
  version: 0.9.0
88
89
  type: :runtime
89
90
  prerelease: false
90
- version_requirements: *2154009720
91
- - !ruby/object:Gem::Dependency
91
+ version_requirements: *id007
92
+ - !ruby/object:Gem::Dependency
92
93
  name: simplecov
93
- requirement: &2154008920 !ruby/object:Gem::Requirement
94
+ requirement: &id008 !ruby/object:Gem::Requirement
94
95
  none: false
95
- requirements:
96
- - - ! '>='
97
- - !ruby/object:Gem::Version
98
- version: '0'
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: "0"
99
100
  type: :runtime
100
101
  prerelease: false
101
- version_requirements: *2154008920
102
- - !ruby/object:Gem::Dependency
102
+ version_requirements: *id008
103
+ - !ruby/object:Gem::Dependency
103
104
  name: rdoc
104
- requirement: &2154007900 !ruby/object:Gem::Requirement
105
+ requirement: &id009 !ruby/object:Gem::Requirement
105
106
  none: false
106
- requirements:
107
- - - ! '>='
108
- - !ruby/object:Gem::Version
109
- version: '0'
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: "0"
110
111
  type: :runtime
111
112
  prerelease: false
112
- version_requirements: *2154007900
113
- - !ruby/object:Gem::Dependency
113
+ version_requirements: *id009
114
+ - !ruby/object:Gem::Dependency
114
115
  name: dkastner-rocco
115
- requirement: &2154007180 !ruby/object:Gem::Requirement
116
+ requirement: &id010 !ruby/object:Gem::Requirement
116
117
  none: false
117
- requirements:
118
- - - ! '>='
119
- - !ruby/object:Gem::Version
120
- version: '0'
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: "0"
121
122
  type: :runtime
122
123
  prerelease: false
123
- version_requirements: *2154007180
124
- - !ruby/object:Gem::Dependency
124
+ version_requirements: *id010
125
+ - !ruby/object:Gem::Dependency
125
126
  name: rspec
126
- requirement: &2153990300 !ruby/object:Gem::Requirement
127
+ requirement: &id011 !ruby/object:Gem::Requirement
127
128
  none: false
128
- requirements:
129
+ requirements:
129
130
  - - ~>
130
- - !ruby/object:Gem::Version
131
- version: '2'
131
+ - !ruby/object:Gem::Version
132
+ version: "2"
132
133
  type: :runtime
133
134
  prerelease: false
134
- version_requirements: *2153990300
135
- - !ruby/object:Gem::Dependency
135
+ version_requirements: *id011
136
+ - !ruby/object:Gem::Dependency
136
137
  name: simplecov
137
- requirement: &2153988820 !ruby/object:Gem::Requirement
138
+ requirement: &id012 !ruby/object:Gem::Requirement
138
139
  none: false
139
- requirements:
140
- - - ! '>='
141
- - !ruby/object:Gem::Version
142
- version: '0'
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: "0"
143
144
  type: :runtime
144
145
  prerelease: false
145
- version_requirements: *2153988820
146
- - !ruby/object:Gem::Dependency
146
+ version_requirements: *id012
147
+ - !ruby/object:Gem::Dependency
147
148
  name: timecop
148
- requirement: &2153986880 !ruby/object:Gem::Requirement
149
+ requirement: &id013 !ruby/object:Gem::Requirement
149
150
  none: false
150
- requirements:
151
- - - ! '>='
152
- - !ruby/object:Gem::Version
153
- version: '0'
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: "0"
154
155
  type: :runtime
155
156
  prerelease: false
156
- version_requirements: *2153986880
157
- - !ruby/object:Gem::Dependency
157
+ version_requirements: *id013
158
+ - !ruby/object:Gem::Dependency
158
159
  name: timeframe
159
- requirement: &2153984780 !ruby/object:Gem::Requirement
160
+ requirement: &id014 !ruby/object:Gem::Requirement
160
161
  none: false
161
- requirements:
162
- - - ! '>='
163
- - !ruby/object:Gem::Version
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
164
165
  version: 0.0.8
165
166
  type: :runtime
166
167
  prerelease: false
167
- version_requirements: *2153984780
168
- - !ruby/object:Gem::Dependency
168
+ version_requirements: *id014
169
+ - !ruby/object:Gem::Dependency
169
170
  name: watchr
170
- requirement: &2153983540 !ruby/object:Gem::Requirement
171
+ requirement: &id015 !ruby/object:Gem::Requirement
171
172
  none: false
172
- requirements:
173
- - - ! '>='
174
- - !ruby/object:Gem::Version
175
- version: '0'
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: "0"
176
177
  type: :runtime
177
178
  prerelease: false
178
- version_requirements: *2153983540
179
- - !ruby/object:Gem::Dependency
179
+ version_requirements: *id015
180
+ - !ruby/object:Gem::Dependency
180
181
  name: sandbox
181
- requirement: &2153982720 !ruby/object:Gem::Requirement
182
+ requirement: &id016 !ruby/object:Gem::Requirement
182
183
  none: false
183
- requirements:
184
- - - ! '>='
185
- - !ruby/object:Gem::Version
186
- version: '0'
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: "0"
187
188
  type: :development
188
189
  prerelease: false
189
- version_requirements: *2153982720
190
- - !ruby/object:Gem::Dependency
190
+ version_requirements: *id016
191
+ - !ruby/object:Gem::Dependency
191
192
  name: emitter
192
- requirement: &2153978180 !ruby/object:Gem::Requirement
193
+ requirement: &id017 !ruby/object:Gem::Requirement
193
194
  none: false
194
- requirements:
195
- - - ! '>='
196
- - !ruby/object:Gem::Version
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
197
198
  version: 0.5.0
198
199
  type: :development
199
200
  prerelease: false
200
- version_requirements: *2153978180
201
- - !ruby/object:Gem::Dependency
201
+ version_requirements: *id017
202
+ - !ruby/object:Gem::Dependency
202
203
  name: sqlite3-ruby
203
- requirement: &2153976960 !ruby/object:Gem::Requirement
204
+ requirement: &id018 !ruby/object:Gem::Requirement
204
205
  none: false
205
- requirements:
206
- - - ! '>='
207
- - !ruby/object:Gem::Version
208
- version: '0'
206
+ requirements:
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ version: "0"
209
210
  type: :development
210
211
  prerelease: false
211
- version_requirements: *2153976960
212
- description: Provides development and test environment for Brighter Planet's impact
213
- model libraries.
212
+ version_requirements: *id018
213
+ description: Provides development and test environment for Brighter Planet's impact model libraries.
214
214
  email: derek.kastner@brighterplanet.com
215
215
  executables: []
216
+
216
217
  extensions: []
217
- extra_rdoc_files:
218
+
219
+ extra_rdoc_files:
218
220
  - README.markdown
219
- files:
221
+ files:
220
222
  - lib/sniff/database.rb
221
223
  - lib/sniff/fixture.rb
222
224
  - lib/sniff/leap_ext.rb
@@ -254,34 +256,35 @@ files:
254
256
  - spec/spec_helper.rb
255
257
  homepage: https://github.com/brighterplanet/sniff
256
258
  licenses: []
259
+
257
260
  post_install_message:
258
- rdoc_options:
261
+ rdoc_options:
259
262
  - --charset=UTF-8
260
- require_paths:
263
+ require_paths:
261
264
  - lib
262
- required_ruby_version: !ruby/object:Gem::Requirement
265
+ required_ruby_version: !ruby/object:Gem::Requirement
263
266
  none: false
264
- requirements:
265
- - - ! '>='
266
- - !ruby/object:Gem::Version
267
- version: '0'
268
- segments:
267
+ requirements:
268
+ - - ">="
269
+ - !ruby/object:Gem::Version
270
+ hash: 3037549694573789126
271
+ segments:
269
272
  - 0
270
- hash: -595814420828995385
271
- required_rubygems_version: !ruby/object:Gem::Requirement
273
+ version: "0"
274
+ required_rubygems_version: !ruby/object:Gem::Requirement
272
275
  none: false
273
- requirements:
274
- - - ! '>='
275
- - !ruby/object:Gem::Version
276
- version: '0'
276
+ requirements:
277
+ - - ">="
278
+ - !ruby/object:Gem::Version
279
+ version: "0"
277
280
  requirements: []
281
+
278
282
  rubyforge_project:
279
- rubygems_version: 1.8.11
283
+ rubygems_version: 1.8.15
280
284
  signing_key:
281
285
  specification_version: 3
282
- summary: Provides development and test environment for Brighter Planet's impact model
283
- libraries.
284
- test_files:
286
+ summary: Provides development and test environment for Brighter Planet's impact model libraries.
287
+ test_files:
285
288
  - spec/fixtures/dirigible/features/support/db/fixtures/automobile_fuel_types.csv
286
289
  - spec/fixtures/dirigible/features/support/db/fixtures/automobile_make_fleet_years.csv
287
290
  - spec/fixtures/dirigible/features/support/db/fixtures/automobile_make_years.csv