sniff 0.11.10 → 0.11.11

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