json_test_data 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 306ab6f88a3f6c60a507b20309812f540e776045
4
- data.tar.gz: 44a6b328ae37a6d5e558885e181cd266e0645fee
3
+ metadata.gz: 7c078a6dd18c986157977531ebe53160ea6fa183
4
+ data.tar.gz: 7a8f4a79a68f25e98e96bc5da42b8efe051dd4fa
5
5
  SHA512:
6
- metadata.gz: 4b83eb5a2b1e4427c5d55d291e724b2fcafd83004f85856efe56314f7fa0c450023a6798113074c900f7d32cd9e0d8026a913b181e1d217d42b4341af9fb1ec6
7
- data.tar.gz: dcd3e5929908d9ce54ae1379425a769c0f127dc4ebbf85ca97855ee9bfd6887cff1ad29516da6f68e2292d6ca1986928d13c6929374e1fd9749963738e8b435d
6
+ metadata.gz: 57ea05eca83d6adc75abad3ff3a7c2ee9d7c9271b1ade8c9043ee81f354506cd6db1e91230bb3853c1be38b44e900fe3f2c5885a5c1c8848b7fec19ddfd1ecb5
7
+ data.tar.gz: 121f3e65f8f1e1656f893abd0f36628c3dc80bb91018385fc06181912d1893c551403791d93adc009470db9a792d3a7d2ce1d69bc9f81f2089c98f4e2023a622
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- json_test_data (0.0.1.beta)
4
+ json_test_data (0.0.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -0,0 +1,19 @@
1
+ Feature: Array constraints
2
+ Scenario: Minimum number of items
3
+ Given the following JSON schema:
4
+ """json
5
+ {
6
+ "$schema": "http://json-schema.org/draft-04/schema#",
7
+ "type": "array",
8
+ "minItems": 4,
9
+ "items": {
10
+ "type": "string",
11
+ "minLength": 3
12
+ }
13
+ }
14
+ """
15
+ When I run the JSON data generator
16
+ Then the JSON output should be:
17
+ """json
18
+ ["aaa","aaa","aaa","aaa"]
19
+ """
@@ -1,4 +1,3 @@
1
- @wip
2
1
  Feature: Handling data types
3
2
 
4
3
  The data generated needs to have the correct properties or items, including
@@ -20,7 +19,7 @@ Feature: Handling data types
20
19
  When I run the JSON data generator
21
20
  Then the JSON output should be:
22
21
  """json
23
- {"name":"string"}
22
+ {"name":"a"}
24
23
  """
25
24
 
26
25
  Scenario: Numbers
@@ -15,7 +15,7 @@ Feature: Generate test data
15
15
  When I run the JSON data generator
16
16
  Then the JSON output should be:
17
17
  """json
18
- {"name":"string"}
18
+ {"name":"a"}
19
19
  """
20
20
 
21
21
  Scenario: Simple array
@@ -32,5 +32,5 @@ Feature: Generate test data
32
32
  When I run the JSON data generator
33
33
  Then the JSON output should be:
34
34
  """json
35
- ["string"]
35
+ ["a"]
36
36
  """
@@ -14,7 +14,7 @@ Feature: Generating empty objects
14
14
  {}
15
15
  """
16
16
 
17
- Scenario: Empty array
17
+ Scenario: Array with null
18
18
  Given the following JSON schema:
19
19
  """json
20
20
  {
@@ -26,5 +26,5 @@ Feature: Generating empty objects
26
26
  When I run the JSON data generator
27
27
  Then the JSON output should be:
28
28
  """json
29
- []
29
+ [null]
30
30
  """
@@ -1,4 +1,3 @@
1
- @wip
2
1
  Feature: Support nested objects and arrays
3
2
 
4
3
  Scenario: Object in an array
@@ -26,7 +25,7 @@ Feature: Support nested objects and arrays
26
25
  When I run the JSON data generator
27
26
  Then the JSON output should be:
28
27
  """json
29
- [{"name":"string","id":1,"admin":true}]
28
+ [{"name":"a","id":1,"admin":true}]
30
29
  """
31
30
 
32
31
  Scenario: Array in an object
@@ -48,7 +47,7 @@ Feature: Support nested objects and arrays
48
47
  When I run the JSON data generator
49
48
  Then the JSON output should be:
50
49
  """json
51
- {"users":["string"]}
50
+ {"users":["a"]}
52
51
  """
53
52
 
54
53
  Scenario: Array in an array
@@ -68,7 +67,7 @@ Feature: Support nested objects and arrays
68
67
  When I run the JSON data generator
69
68
  Then the JSON output should be:
70
69
  """json
71
- [["string"]]
70
+ [["a"]]
72
71
  """
73
72
 
74
73
  Scenario: More complex nested object
@@ -107,5 +106,5 @@ Feature: Support nested objects and arrays
107
106
  When I run the JSON data generator
108
107
  Then the JSON output should be:
109
108
  """json
110
- [{"name":"string","dossier":{"height_in_feet":1,"favorite_foods":["string"]},"admin":true}]
109
+ [{"name":"a","dossier":{"height_in_feet":1,"favorite_foods":["a"]},"admin":true}]
111
110
  """
@@ -0,0 +1,103 @@
1
+ Feature: Numeric constraints
2
+ Scenario: Number must be divisible by some factor
3
+ Given the following JSON schema:
4
+ """json
5
+ {
6
+ "$schema": "http://json-schema.org/draft-04/schema#",
7
+ "type": "object",
8
+ "properties": {
9
+ "widgets": {
10
+ "type": "integer",
11
+ "multipleOf": 2
12
+ }
13
+ }
14
+ }
15
+ """
16
+ When I run the JSON data generator
17
+ Then the JSON output should be:
18
+ """json
19
+ {"widgets":2}
20
+ """
21
+
22
+ Scenario: Number has a maximum value
23
+ Given the following JSON schema:
24
+ """json
25
+ {
26
+ "$schema": "http://json-schema.org/draft-04/schema#",
27
+ "type": "object",
28
+ "properties": {
29
+ "proportion": {
30
+ "type": "number",
31
+ "maximum": 0.25
32
+ }
33
+ }
34
+ }
35
+ """
36
+ When I run the JSON data generator
37
+ Then the JSON output should be:
38
+ """json
39
+ {"proportion":0.0}
40
+ """
41
+
42
+ Scenario: Number has a minimum value
43
+ Given the following JSON schema:
44
+ """json
45
+ {
46
+ "$schema": "http://json-schema.org/draft-04/schema#",
47
+ "type": "object",
48
+ "properties": {
49
+ "quantity": {
50
+ "type": "integer",
51
+ "minimum": 2
52
+ }
53
+ }
54
+ }
55
+ """
56
+ When I run the JSON data generator
57
+ Then the JSON output should be:
58
+ """json
59
+ {"quantity":3}
60
+ """
61
+
62
+ Scenario: Maximum and minimum
63
+ Given the following JSON schema:
64
+ """json
65
+ {
66
+ "$schema": "http://json-schema.org/draft-04/schema#",
67
+ "type": "object",
68
+ "properties": {
69
+ "proportion": {
70
+ "type": "number",
71
+ "maximum": 1,
72
+ "minimum": 0,
73
+ "exclusiveMinimum": true
74
+ }
75
+ }
76
+ }
77
+ """
78
+ When I run the JSON data generator
79
+ Then the JSON output should be:
80
+ """json
81
+ {"proportion":0.5}
82
+ """
83
+
84
+ Scenario: Multiple with minimum
85
+ Given the following JSON schema:
86
+ """json
87
+ {
88
+ "$schema": "http://json-schema.org/draft-04/schema#",
89
+ "type": "object",
90
+ "properties": {
91
+ "wheels": {
92
+ "type": "number",
93
+ "multipleOf": 4,
94
+ "minimum": 5
95
+ }
96
+ }
97
+ }
98
+ """
99
+ When I run the JSON data generator
100
+ Then the JSON output should be:
101
+ """json
102
+ {"wheels":8}
103
+ """
@@ -0,0 +1,40 @@
1
+ Feature: String constraints
2
+ Scenario: Maximum length is short
3
+ Given the following JSON schema:
4
+ """json
5
+ {
6
+ "$schema": "http://json-schema.org/draft-04/schema#",
7
+ "type": "object",
8
+ "properties": {
9
+ "name": {
10
+ "type": "string",
11
+ "maxLength": 2
12
+ }
13
+ }
14
+ }
15
+ """
16
+ When I run the JSON data generator
17
+ Then the JSON output should be:
18
+ """json
19
+ {"name":"aa"}
20
+ """
21
+
22
+ Scenario: Minimum length is long
23
+ Given the following JSON schema:
24
+ """json
25
+ {
26
+ "$schema": "http://json-schema.org/draft-04/schema#",
27
+ "type": "object",
28
+ "properties": {
29
+ "name": {
30
+ "type": "string",
31
+ "minLength": 8
32
+ }
33
+ }
34
+ }
35
+ """
36
+ When I run the JSON data generator
37
+ Then the JSON output should be:
38
+ """json
39
+ {"name":"aaaaaaaa"}
40
+ """
@@ -0,0 +1,29 @@
1
+ module JsonTestData
2
+ module NumberHelper
3
+ def adjust_for_maximum(number:, maximum: nil, step_size: nil)
4
+ return number unless (maximum && number >= maximum)
5
+
6
+ num = !!step_size ? number - step_size : maximum - 1
7
+ adjust_for_maximum(number: num, maximum: maximum, step_size: step_size)
8
+ end
9
+
10
+ def adjust_for_minimum(number:, minimum:, step_size: nil)
11
+ return number unless minimum && minimum >= number
12
+
13
+ num = !!step_size ? number + step_size : minimum + 1
14
+ adjust_for_minimum(number: num, minimum: minimum, step_size: step_size)
15
+ end
16
+
17
+ def between(min:, max:, integer: false)
18
+ return integer ? mean(min, max).to_i : mean(min, max)
19
+ end
20
+
21
+ def mean(*numbers)
22
+ numbers.inject(:+).to_f.quo(numbers.length)
23
+ end
24
+
25
+ def infinity
26
+ Math.atanh(1)
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,25 @@
1
+ require_relative "./helpers/number_helper"
2
+
3
+ module JsonTestData
4
+ class Number
5
+ extend NumberHelper
6
+
7
+ class << self
8
+ def create(schema)
9
+ factor = schema.fetch(:multipleOf, nil)
10
+ minimum, maximum = schema.fetch(:minimum, nil), schema.fetch(:maximum, nil)
11
+
12
+ num = if maximum && minimum
13
+ between(min: minimum, max: maximum, integer: schema.fetch(:type) == "")
14
+ else
15
+ factor || 1
16
+ end
17
+
18
+ step_size = schema.fetch(:type) == "integer" ? 1 : 0.5
19
+
20
+ num = adjust_for_maximum(number: num, maximum: maximum, step_size: factor || step_size)
21
+ adjust_for_minimum(number: num, minimum: minimum, step_size: factor || step_size)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,10 @@
1
+ module JsonTestData
2
+ class String
3
+ class << self
4
+ def create(schema)
5
+ len = schema.fetch(:maxLength, nil) || schema.fetch(:minLength, nil) || 1
6
+ "a" * len
7
+ end
8
+ end
9
+ end
10
+ end
@@ -1,3 +1,6 @@
1
+ require_relative "./data_structures/string"
2
+ require_relative "./data_structures/number"
3
+
1
4
  module JsonTestData
2
5
  class JsonSchema
3
6
  attr_accessor :schema
@@ -7,53 +10,61 @@ module JsonTestData
7
10
  end
8
11
 
9
12
  def generate_example
10
- @schema.fetch(:type) == "object" ? generate_object(schema).to_json : generate_array(schema).to_json
13
+ generate(schema).to_json
11
14
  end
12
15
 
13
16
  private
14
- def object_of_type(type)
15
- case type
17
+ def generate_data(obj)
18
+ case obj.fetch(:type)
16
19
  when "number"
17
- 1
20
+ JsonTestData::Number.create(obj)
18
21
  when "integer"
19
- 1
22
+ JsonTestData::Number.create(obj)
20
23
  when "boolean"
21
24
  true
22
25
  when "string"
23
- "string"
26
+ JsonTestData::String.create(obj)
24
27
  end
25
28
  end
26
29
 
30
+ def generate(obj)
31
+ if is_object?(obj)
32
+ generate_object(obj)
33
+ elsif is_array?(obj)
34
+ generate_array(obj)
35
+ else
36
+ generate_data(obj)
37
+ end
38
+ end
39
+
40
+ def is_object?(property)
41
+ property.fetch(:type, nil) == "object"
42
+ end
43
+
44
+ def is_array?(property)
45
+ property.fetch(:type, nil) == "array"
46
+ end
47
+
27
48
  def generate_object(object)
28
49
  obj = {}
29
50
 
30
51
  object.fetch(:properties).each do |k, v|
31
52
  obj[k] = nil unless v.has_key?(:type)
32
53
 
33
- obj[k] = if v.fetch(:type) == "object"
34
- generate_object(v)
35
- elsif v.fetch(:type) == "array"
36
- generate_array(v)
37
- else
38
- object_of_type(v.fetch(:type))
39
- end
54
+ obj[k] = generate(v)
40
55
  end
41
56
 
42
57
  obj
43
58
  end
44
59
 
45
60
  def generate_array(object)
46
- return [] unless object.fetch(:items).has_key?(:type)
61
+ object.fetch(:minItems, nil) || object[:minItems] = 1
47
62
 
48
- val = if object.fetch(:items).fetch(:type) == "object"
49
- generate_object(object.fetch(:items))
50
- elsif object.fetch(:items).fetch(:type) == "array"
51
- generate_array(object.fetch(:items))
52
- else
53
- object_of_type(object.fetch(:items).fetch(:type))
54
- end
55
-
56
- [val].compact
63
+ if object.fetch(:items, nil) && object.fetch(:items).has_key?(:type)
64
+ Array.new(object.fetch(:minItems), generate(object.fetch(:items))).compact
65
+ else
66
+ Array.new(object.fetch(:minItems))
67
+ end
57
68
  end
58
69
  end
59
70
  end
@@ -0,0 +1,98 @@
1
+ describe JsonTestData::Number do
2
+ describe ".create" do
3
+ context "normal" do
4
+ let(:object) do
5
+ {
6
+ type: "number"
7
+ }
8
+ end
9
+
10
+ it "returns 1" do
11
+ expect(described_class.create(object)).to eql 1
12
+ end
13
+ end
14
+
15
+ context "multipleOf constraint" do
16
+ let(:factor) { 2 }
17
+ let(:object) do
18
+ {
19
+ type: "number",
20
+ multipleOf: factor
21
+ }
22
+ end
23
+
24
+ it "returns a multiple of the given number" do
25
+ expect(described_class.create(object)).to be_a_multiple_of(factor)
26
+ end
27
+ end
28
+
29
+ context "maximum constraint" do
30
+ let(:maximum) { 0.5 }
31
+ let(:object) do
32
+ {
33
+ type: "number",
34
+ maximum: maximum
35
+ }
36
+ end
37
+
38
+ it "returns a value less than the maximum" do
39
+ expect(described_class.create(object)).to be_less_than_or_equal_to(maximum)
40
+ end
41
+ end
42
+
43
+ context "minimum constraint" do
44
+ let(:minimum) { 2 }
45
+ let(:object) do
46
+ {
47
+ type: "number",
48
+ minimum: minimum
49
+ }
50
+ end
51
+
52
+ it "returns a value greater than the minimum" do
53
+ expect(described_class.create(object)).to be_greater_than_or_equal_to(minimum)
54
+ end
55
+ end
56
+
57
+ context "multiple constraints" do
58
+ context "maximum and minimum" do
59
+ let(:maximum) { 1 }
60
+ let(:minimum) { 0 }
61
+ let(:object) do
62
+ {
63
+ type: "number",
64
+ minimum: minimum,
65
+ maximum: maximum,
66
+ exclusiveMinimum: true
67
+ }
68
+ end
69
+
70
+ it "returns a value between the maximum and the minimum" do
71
+ aggregate_failures do
72
+ expect(described_class.create(object)).to be_greater_than(minimum)
73
+ expect(described_class.create(object)).to be_less_than_or_equal_to(maximum)
74
+ end
75
+ end
76
+ end
77
+
78
+ context "minimum and multiple" do
79
+ let(:factor) { 2 }
80
+ let(:minimum) { 3 }
81
+ let(:object) do
82
+ {
83
+ type: "number",
84
+ multipleOf: factor,
85
+ minimum: minimum
86
+ }
87
+ end
88
+
89
+ it "returns the next lowest multiple" do
90
+ aggregate_failures do
91
+ expect(described_class.create(object)).to be_a_multiple_of(factor)
92
+ expect(described_class.create(object)).to be_greater_than(minimum)
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,41 @@
1
+ describe JsonTestData::String do
2
+ describe ".create" do
3
+ context "normal" do
4
+ let(:object) do
5
+ {
6
+ type: "string"
7
+ }
8
+ end
9
+
10
+ it "returns 'a'" do
11
+ expect(described_class.create(object)).to eq "a"
12
+ end
13
+ end
14
+
15
+ context "with maximum length" do
16
+ let(:object) do
17
+ {
18
+ type: "string",
19
+ maxLength: 2
20
+ }
21
+ end
22
+
23
+ it "returns 'aa'" do
24
+ expect(described_class.create(object)).to eq "aa"
25
+ end
26
+ end
27
+
28
+ context "with minimum length" do
29
+ let(:object) do
30
+ {
31
+ type: "string",
32
+ minLength: 8
33
+ }
34
+ end
35
+
36
+ it "returns 'aaaaaaaa'" do
37
+ expect(described_class.create(object)).to eq "aaaaaaaa"
38
+ end
39
+ end
40
+ end
41
+ end
@@ -18,7 +18,6 @@ describe JsonTestData::JsonSchema do
18
18
  describe "#generate_example" do
19
19
  describe "trivial examples" do
20
20
  context "when schema describes an object" do
21
-
22
21
  let(:schema) do
23
22
  JsonTestData::JsonSchema.new(
24
23
  {
@@ -39,7 +38,6 @@ describe JsonTestData::JsonSchema do
39
38
  end
40
39
 
41
40
  context "when schema describes an array" do
42
-
43
41
  let(:schema) do
44
42
  JsonTestData::JsonSchema.new(
45
43
  {
@@ -51,10 +49,10 @@ describe JsonTestData::JsonSchema do
51
49
  end
52
50
 
53
51
  let(:output) do
54
- [].to_json
52
+ [nil].to_json
55
53
  end
56
54
 
57
- it "generates an object" do
55
+ it "generates an array" do
58
56
  expect(schema.generate_example).to eql output
59
57
  end
60
58
  end
@@ -76,7 +74,7 @@ describe JsonTestData::JsonSchema do
76
74
  end
77
75
 
78
76
  let(:output) do
79
- { "name" => "string" }.to_json
77
+ { :name => "a" }.to_json
80
78
  end
81
79
 
82
80
  it "generates the right object" do
@@ -97,7 +95,7 @@ describe JsonTestData::JsonSchema do
97
95
  end
98
96
 
99
97
  let(:output) do
100
- ["string"].to_json
98
+ ["a"].to_json
101
99
  end
102
100
 
103
101
  it "generates the right object" do
@@ -199,7 +197,7 @@ describe JsonTestData::JsonSchema do
199
197
  end
200
198
 
201
199
  let(:output) do
202
- {:users => ["string"]}.to_json
200
+ {:users => ["a"]}.to_json
203
201
  end
204
202
 
205
203
  it "nests the object" do
@@ -209,7 +207,6 @@ describe JsonTestData::JsonSchema do
209
207
  end
210
208
 
211
209
  context "arrays in arrays" do
212
-
213
210
  let(:schema) do
214
211
  {
215
212
  :"$schema" => "http://json-schema.org/draft-04/schema#",
@@ -224,7 +221,7 @@ describe JsonTestData::JsonSchema do
224
221
  end
225
222
 
226
223
  let(:output) do
227
- [["string"]].to_json
224
+ [["a"]].to_json
228
225
  end
229
226
 
230
227
  it "returns a nested array" do
@@ -233,5 +230,22 @@ describe JsonTestData::JsonSchema do
233
230
  end
234
231
  end
235
232
  end
233
+
234
+ describe "arrays with constraints" do
235
+ context "array with minimum number of items" do
236
+ let(:schema) do
237
+ {
238
+ :"$schema" => "http://json-schema.org/draft-04/schema#",
239
+ :type => "array",
240
+ :minItems => 3
241
+ }.to_json
242
+ end
243
+
244
+ it "returns an array of the correct length" do
245
+ json_schema = JsonTestData::JsonSchema.new(schema)
246
+ expect(json_schema.generate_example).to eql [nil, nil, nil].to_json
247
+ end
248
+ end
249
+ end
236
250
  end
237
251
  end
@@ -0,0 +1,25 @@
1
+ require "rspec/expectations"
2
+
3
+ RSpec::Matchers.define :be_a_multiple_of do |expected|
4
+ match do |actual|
5
+ actual % expected == 0
6
+ end
7
+ end
8
+
9
+ RSpec::Matchers.define :be_greater_than do |expected|
10
+ match do |actual|
11
+ actual > expected
12
+ end
13
+ end
14
+
15
+ RSpec::Matchers.define :be_less_than_or_equal_to do |expected|
16
+ match do |actual|
17
+ actual <= expected
18
+ end
19
+ end
20
+
21
+ RSpec::Matchers.define :be_greater_than_or_equal_to do |expected|
22
+ match do |actual|
23
+ actual >= expected
24
+ end
25
+ end
data/spec/spec_helper.rb CHANGED
@@ -6,6 +6,9 @@ require "pry"
6
6
 
7
7
  require_relative "../lib/json_test_data"
8
8
  require_relative "../lib/json_test_data/json_schema"
9
+ require_relative "../lib/json_test_data/data_structures/string"
10
+ require_relative "../lib/json_test_data/data_structures/number"
11
+ require_relative "./matchers/number_matchers"
9
12
 
10
13
  RSpec.configure do |config|
11
14
  config.expect_with :rspec do |expectations|
data/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module JsonTestData
2
- VERSION = '0.0.1'
2
+ VERSION = '0.1.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_test_data
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dana Scheider
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-08 00:00:00.000000000 Z
11
+ date: 2016-04-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cucumber
@@ -121,16 +121,25 @@ files:
121
121
  - LICENSE
122
122
  - README.md
123
123
  - Rakefile
124
+ - features/array_constraints.feature
124
125
  - features/data_types.feature
125
126
  - features/generate_data.feature
126
127
  - features/generate_empty_objects.feature
127
128
  - features/nested_objects_and_arrays.feature
129
+ - features/numeric_constraints.feature
128
130
  - features/step_definitions/json_test_data_steps.rb
131
+ - features/string_constraints.feature
129
132
  - features/support/env.rb
130
133
  - json_test_data.gemspec
131
134
  - lib/json_test_data.rb
135
+ - lib/json_test_data/data_structures/helpers/number_helper.rb
136
+ - lib/json_test_data/data_structures/number.rb
137
+ - lib/json_test_data/data_structures/string.rb
132
138
  - lib/json_test_data/json_schema.rb
139
+ - spec/json_test_data/data_structures/number_spec.rb
140
+ - spec/json_test_data/data_structures/string_spec.rb
133
141
  - spec/json_test_data/json_schema_spec.rb
142
+ - spec/matchers/number_matchers.rb
134
143
  - spec/spec_helper.rb
135
144
  - version.rb
136
145
  homepage:
@@ -157,14 +166,20 @@ rubyforge_project:
157
166
  rubygems_version: 2.4.6
158
167
  signing_key:
159
168
  specification_version: 4
160
- summary: rambo-0.0.1
169
+ summary: rambo-0.1.0
161
170
  test_files:
171
+ - features/array_constraints.feature
162
172
  - features/data_types.feature
163
173
  - features/generate_data.feature
164
174
  - features/generate_empty_objects.feature
165
175
  - features/nested_objects_and_arrays.feature
176
+ - features/numeric_constraints.feature
166
177
  - features/step_definitions/json_test_data_steps.rb
178
+ - features/string_constraints.feature
167
179
  - features/support/env.rb
180
+ - spec/json_test_data/data_structures/number_spec.rb
181
+ - spec/json_test_data/data_structures/string_spec.rb
168
182
  - spec/json_test_data/json_schema_spec.rb
183
+ - spec/matchers/number_matchers.rb
169
184
  - spec/spec_helper.rb
170
185
  has_rdoc: