bodhi-slam 0.8.0 → 0.8.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7a728bbc653fe51f2aa54fd7fcc07874205616c8
4
- data.tar.gz: ecd5e410504d479843dfcc4ebe2823815161c6fe
3
+ metadata.gz: fb342b224cdd7e0845a8576ffda340df13b91368
4
+ data.tar.gz: 80000e6c757b7df93e627f3214c9f55a2adebbd9
5
5
  SHA512:
6
- metadata.gz: 3ca39c510350b552edbd793a8b0c42700f0c3125ca103f613fd8ee1a8c618076e2063f9630a739b7e67a99c05378f0b0d9b2a05249c2c3162fbba64c60d3d3e4
7
- data.tar.gz: 32749263d7225845eb31e8780a02b446c19ad2a559fcc295bc01767157f1f15a958f90fd32bb904346f4595bad27e3262794b696287e631ed734e1c5c2482fab
6
+ metadata.gz: b40c6c073da78ef1e048da472d1b1a0ecc26c8b8f73bd236eed22104646bc631d1c33aa4a5c91a4a9a24afa78758c9d47c976fb2f98869f9691291522cf744f7
7
+ data.tar.gz: 5366f40e16369940ff7518153e1711a241d1e4088a0fbda655f7081efcf26b56664cb6704c89af405f39e13cd57387133a40bb41844ed7d2b7bc5905ebe5bf58
@@ -171,10 +171,77 @@ module Bodhi
171
171
  end
172
172
 
173
173
  when "GeoJSON"
174
+ # define the GeoJSON coordinate types
175
+ geojson_types = ["Point", "MultiPoint", "LineString", "MultiLineString", "Polygon", "MultiPolygon"]
176
+
177
+ # define max/min longitude
178
+ min_long = -180.0
179
+ max_long = 180.0
180
+
181
+ # define max/min lattitude
182
+ min_lat = -90.0
183
+ max_lat = 90.0
184
+
174
185
  if options[:multi]
175
- generator = lambda { [*0..5].sample.times.collect{ {type: "Point", coordinates: [10,20]} } }
186
+ generator = lambda do
187
+ [*0..5].sample.times.collect do
188
+ type = geojson_types.sample
189
+
190
+ case type
191
+ when "Point"
192
+ coordinates = [rand(min_long..max_long), rand(min_lat..max_lat)]
193
+ when "MultiPoint"
194
+ coordinates = [*2..10].sample.times.collect{ [rand(min_long..max_long), rand(min_lat..max_lat)] }
195
+ when "LineString"
196
+ coordinates = [*2..10].sample.times.collect{ [rand(min_long..max_long), rand(min_lat..max_lat)] }
197
+ when "MultiLineString"
198
+ coordinates = [*2..10].sample.times.collect do
199
+ [*2..10].sample.times.collect{ [rand(min_long..max_long), rand(min_lat..max_lat)] }
200
+ end
201
+ when "Polygon"
202
+ coordinates = [*2..10].sample.times.collect do
203
+ [*2..10].sample.times.collect{ [rand(min_long..max_long), rand(min_lat..max_lat)] }
204
+ end
205
+ when "MultiPolygon"
206
+ coordinates = [*2..10].sample.times.collect do
207
+ [*2..10].sample.times.collect do
208
+ [*2..10].sample.times.collect{ [rand(min_long..max_long), rand(min_lat..max_lat)] }
209
+ end
210
+ end
211
+ end
212
+
213
+ { type: type, coordinates: coordinates }
214
+ end
215
+ end
176
216
  else
177
- generator = lambda { {type: "Point", coordinates: [10,20]} }
217
+ generator = lambda do
218
+ type = geojson_types.sample
219
+
220
+ case type
221
+ when "Point"
222
+ coordinates = [rand(min_long..max_long), rand(min_lat..max_lat)]
223
+ when "MultiPoint"
224
+ coordinates = [*2..10].sample.times.collect{ [rand(min_long..max_long), rand(min_lat..max_lat)] }
225
+ when "LineString"
226
+ coordinates = [*2..10].sample.times.collect{ [rand(min_long..max_long), rand(min_lat..max_lat)] }
227
+ when "MultiLineString"
228
+ coordinates = [*2..10].sample.times.collect do
229
+ [*2..10].sample.times.collect{ [rand(min_long..max_long), rand(min_lat..max_lat)] }
230
+ end
231
+ when "Polygon"
232
+ coordinates = [*2..10].sample.times.collect do
233
+ [*2..10].sample.times.collect{ [rand(min_long..max_long), rand(min_lat..max_lat)] }
234
+ end
235
+ when "MultiPolygon"
236
+ coordinates = [*2..10].sample.times.collect do
237
+ [*2..10].sample.times.collect do
238
+ [*2..10].sample.times.collect{ [rand(min_long..max_long), rand(min_lat..max_lat)] }
239
+ end
240
+ end
241
+ end
242
+
243
+ { type: type, coordinates: coordinates }
244
+ end
178
245
  end
179
246
 
180
247
  when "Object"
@@ -186,9 +253,33 @@ module Bodhi
186
253
 
187
254
  when "Link"
188
255
  if options[:multi]
189
- generator = lambda { [*0..5].sample.times.collect{ Hash.new } }
256
+ generator = lambda do
257
+ [*0..5].sample.times.collect do
258
+ result = Hash.new
259
+ result[:href] = Regexp.new(/^https?:\/\/([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/).random_example
260
+ result[:name] = Regexp.new(/^.{10,20}$/).random_example if [true, false].sample == true
261
+ result[:title] = Regexp.new(/^.{10,20}$/).random_example if [true, false].sample == true
262
+ result[:templated] = [true, false].sample if [true, false].sample == true
263
+ result[:type] = ["application/json", "text/css", "application/exe", "zip"].sample if [true, false].sample == true
264
+ result[:deprecation] = Regexp.new(/^https?:\/\/([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/).random_example if [true, false].sample == true
265
+ result[:profile] = Regexp.new(/^https?:\/\/([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/).random_example if [true, false].sample == true
266
+ result[:hreflang] = ["en-us", "fr", "de"].sample if [true, false].sample == true
267
+ result
268
+ end
269
+ end
190
270
  else
191
- generator = lambda { Hash.new }
271
+ generator = lambda do
272
+ result = Hash.new
273
+ result[:href] = Regexp.new(/^https?:\/\/([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/).random_example
274
+ result[:name] = Regexp.new(/^.{10,20}$/).random_example if [true, false].sample == true
275
+ result[:title] = Regexp.new(/^.{10,20}$/).random_example if [true, false].sample == true
276
+ result[:templated] = [true, false].sample if [true, false].sample == true
277
+ result[:type] = ["application/json", "text/css", "application/exe", "zip"].sample if [true, false].sample == true
278
+ result[:deprecation] = Regexp.new(/^https?:\/\/([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/).random_example if [true, false].sample == true
279
+ result[:profile] = Regexp.new(/^https?:\/\/([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/).random_example if [true, false].sample == true
280
+ result[:hreflang] = ["en-us", "fr", "de"].sample if [true, false].sample == true
281
+ result
282
+ end
192
283
  end
193
284
 
194
285
  when "Enumerated"
@@ -38,6 +38,7 @@ module Bodhi
38
38
  options = JSON.parse(options)
39
39
  end
40
40
 
41
+ # Set properties defined by the +options+ parameter
41
42
  options = Bodhi::Support.symbolize_keys(options)
42
43
  options.each do |property, value|
43
44
  property_options = self.class.properties[property]
@@ -47,6 +48,11 @@ module Bodhi
47
48
  send("#{property}=", Bodhi::Support.coerce(value, property_options))
48
49
  end
49
50
  end
51
+
52
+ # Set any default values
53
+ self.class.properties.select{ |k,v| !v[:default].nil? }.each do |property, property_options|
54
+ send("#{property}=", property_options[:default]) if send("#{property}").nil?
55
+ end
50
56
  end
51
57
 
52
58
  # Returns a Hash of the class properties and their values.
@@ -140,7 +140,7 @@ module Bodhi
140
140
  records << result.body
141
141
  end while records.size == 100
142
142
 
143
- records.flatten.collect{ |record| Object.const_get(name).new(record) }
143
+ records.flatten.collect{ |record| Object.const_get(name).new(record.merge(bodhi_context: context)) }
144
144
  end
145
145
  alias :all :find_all
146
146
 
@@ -55,7 +55,7 @@ module Bodhi
55
55
  end
56
56
 
57
57
  if simulation.current_frame.nil?
58
- simulation.current_frame = Bodhi::SimulationFrame.new(iteration: 0, time: simulation.starts_at)
58
+ simulation.current_frame = Bodhi::SimulationFrame.new(time: simulation.starts_at)
59
59
  else
60
60
  simulation.current_frame.iteration = 0
61
61
  simulation.current_frame.time = simulation.starts_at
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bodhi-slam
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - willdavis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-17 00:00:00.000000000 Z
11
+ date: 2016-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -225,7 +225,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
225
225
  version: '0'
226
226
  requirements: []
227
227
  rubyforge_project:
228
- rubygems_version: 2.5.1
228
+ rubygems_version: 2.4.5
229
229
  signing_key:
230
230
  specification_version: 4
231
231
  summary: Ruby bindings for the Bodhi API & factories for random data generation