babl-json 0.2.3 → 0.2.4
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 +4 -4
- data/lib/babl.rb +2 -2
- data/lib/babl/builder.rb +2 -0
- data/lib/babl/builder/chain_builder.rb +1 -2
- data/lib/babl/builder/template_base.rb +3 -4
- data/lib/babl/nodes.rb +15 -0
- data/lib/babl/nodes/create_pin.rb +1 -2
- data/lib/babl/nodes/dep.rb +1 -2
- data/lib/babl/nodes/each.rb +2 -2
- data/lib/babl/nodes/fixed_array.rb +2 -3
- data/lib/babl/nodes/goto_pin.rb +1 -2
- data/lib/babl/nodes/internal_value.rb +1 -1
- data/lib/babl/nodes/merge.rb +14 -35
- data/lib/babl/nodes/nav.rb +1 -1
- data/lib/babl/nodes/object.rb +5 -4
- data/lib/babl/nodes/parent.rb +1 -2
- data/lib/babl/nodes/static.rb +2 -3
- data/lib/babl/nodes/switch.rb +2 -3
- data/lib/babl/nodes/terminal_value.rb +17 -12
- data/lib/babl/nodes/typed.rb +2 -2
- data/lib/babl/nodes/with.rb +1 -2
- data/lib/babl/operators.rb +21 -0
- data/lib/babl/operators/array.rb +1 -2
- data/lib/babl/operators/dep.rb +1 -1
- data/lib/babl/operators/each.rb +1 -1
- data/lib/babl/operators/enter.rb +1 -0
- data/lib/babl/operators/merge.rb +1 -2
- data/lib/babl/operators/nav.rb +1 -1
- data/lib/babl/operators/object.rb +1 -2
- data/lib/babl/operators/parent.rb +1 -1
- data/lib/babl/operators/partial.rb +1 -1
- data/lib/babl/operators/pin.rb +2 -3
- data/lib/babl/operators/static.rb +3 -3
- data/lib/babl/operators/switch.rb +1 -3
- data/lib/babl/operators/typed.rb +1 -1
- data/lib/babl/operators/with.rb +1 -2
- data/lib/babl/rendering.rb +3 -0
- data/lib/babl/rendering/compiled_template.rb +2 -2
- data/lib/babl/schema.rb +7 -0
- data/lib/babl/schema/any_of.rb +43 -38
- data/lib/babl/schema/dyn_array.rb +1 -1
- data/lib/babl/schema/fixed_array.rb +1 -1
- data/lib/babl/schema/object.rb +1 -1
- data/lib/babl/schema/static.rb +1 -1
- data/lib/babl/schema/typed.rb +1 -1
- data/lib/babl/template.rb +2 -23
- data/lib/babl/utils.rb +3 -0
- data/lib/babl/version.rb +1 -1
- metadata +9 -63
- data/.gitignore +0 -3
- data/.rubocop.yml +0 -201
- data/.ruby-version +0 -1
- data/.travis.yml +0 -4
- data/CHANGELOG.md +0 -36
- data/Gemfile +0 -5
- data/LICENSE +0 -7
- data/README.md +0 -89
- data/babl.gemspec +0 -24
- data/logo-babl.png +0 -0
- data/spec/operators/array_spec.rb +0 -37
- data/spec/operators/call_spec.rb +0 -64
- data/spec/operators/continue_spec.rb +0 -25
- data/spec/operators/default_spec.rb +0 -15
- data/spec/operators/dep_spec.rb +0 -15
- data/spec/operators/each_spec.rb +0 -42
- data/spec/operators/enter_spec.rb +0 -28
- data/spec/operators/extends_spec.rb +0 -30
- data/spec/operators/merge_spec.rb +0 -124
- data/spec/operators/nav_spec.rb +0 -71
- data/spec/operators/null_spec.rb +0 -15
- data/spec/operators/nullable_spec.rb +0 -29
- data/spec/operators/object_spec.rb +0 -30
- data/spec/operators/parent_spec.rb +0 -50
- data/spec/operators/partial_spec.rb +0 -36
- data/spec/operators/pin_spec.rb +0 -172
- data/spec/operators/source_spec.rb +0 -33
- data/spec/operators/static_spec.rb +0 -27
- data/spec/operators/switch_spec.rb +0 -151
- data/spec/operators/typed_spec.rb +0 -84
- data/spec/operators/with_spec.rb +0 -31
- data/spec/spec_helper.rb +0 -2
- data/spec/spec_helper/operator_testing.rb +0 -46
- data/spec/spec_helper/schema_utils.rb +0 -53
- data/spec/utils/value_spec.rb +0 -54
@@ -1,33 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Babl::Operators::Source do
|
4
|
-
extend SpecHelper::OperatorTesting
|
5
|
-
|
6
|
-
describe '#source' do
|
7
|
-
let(:object) { { abc: { def: 12 } } }
|
8
|
-
|
9
|
-
context 'block returning primitive' do
|
10
|
-
template { source { true } }
|
11
|
-
|
12
|
-
it { expect(json).to eq(true) }
|
13
|
-
end
|
14
|
-
|
15
|
-
context 'block using operators' do
|
16
|
-
template { source { static(3) } }
|
17
|
-
|
18
|
-
it { expect(json).to eq(3) }
|
19
|
-
end
|
20
|
-
|
21
|
-
context 'two level sourcing' do
|
22
|
-
template { source { nav(:abc).source { nav(:def) } } }
|
23
|
-
|
24
|
-
it { expect(json).to eq(12) }
|
25
|
-
end
|
26
|
-
|
27
|
-
context 'string template' do
|
28
|
-
template { source('object(a: static(true))') }
|
29
|
-
|
30
|
-
it { expect(json).to eq('a' => true) }
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Babl::Operators::Static do
|
4
|
-
extend SpecHelper::OperatorTesting
|
5
|
-
|
6
|
-
describe '#static' do
|
7
|
-
context 'static object' do
|
8
|
-
template { static('1': 'cava') }
|
9
|
-
|
10
|
-
it { expect(json).to eq('1' => 'cava') }
|
11
|
-
it { expect(dependencies).to eq({}) }
|
12
|
-
it { expect(schema).to eq s_object(s_property(:'1', s_static('cava'))) }
|
13
|
-
end
|
14
|
-
|
15
|
-
context 'static primitive' do
|
16
|
-
template { static('ok') }
|
17
|
-
|
18
|
-
it { expect(schema).to eq s_static('ok') }
|
19
|
-
end
|
20
|
-
|
21
|
-
context 'invalid' do
|
22
|
-
template { static(test: Object.new) }
|
23
|
-
|
24
|
-
it { expect { compiled }.to raise_error Babl::Errors::InvalidTemplate }
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,151 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Babl::Operators::Switch do
|
4
|
-
extend SpecHelper::OperatorTesting
|
5
|
-
|
6
|
-
describe '#switch' do
|
7
|
-
context 'realistic use case' do
|
8
|
-
template {
|
9
|
-
even = nullable.nav(:even?)
|
10
|
-
odd = nullable.nav(:odd?)
|
11
|
-
|
12
|
-
each.switch(
|
13
|
-
even => nav { |x| "#{x} is even" },
|
14
|
-
odd => nav { |x| "#{x} is odd" },
|
15
|
-
default => continue
|
16
|
-
).static('WTF')
|
17
|
-
}
|
18
|
-
|
19
|
-
let(:object) { [1, 2, nil, 5] }
|
20
|
-
|
21
|
-
it { expect(json).to eq ['1 is odd', '2 is even', 'WTF', '5 is odd'] }
|
22
|
-
it { expect(dependencies).to eq(__each__: { even?: {}, odd?: {} }) }
|
23
|
-
it { expect(schema).to eq s_dyn_array(s_any_of(s_static('WTF'), s_anything)) }
|
24
|
-
end
|
25
|
-
|
26
|
-
context 'static condition' do
|
27
|
-
template { switch(true => 42) }
|
28
|
-
|
29
|
-
let(:object) { {} }
|
30
|
-
|
31
|
-
it { expect(json).to eq 42 }
|
32
|
-
end
|
33
|
-
|
34
|
-
context 'only one output possible' do
|
35
|
-
template { switch(false => 2, true => 2) }
|
36
|
-
|
37
|
-
it { expect(schema).to eq s_static(2) }
|
38
|
-
end
|
39
|
-
|
40
|
-
context 'no branch taken' do
|
41
|
-
template { switch(false => 1) }
|
42
|
-
|
43
|
-
let(:object) { { abc: { lol: { ok: 42 } } } }
|
44
|
-
|
45
|
-
it { expect(dependencies).to eq({}) }
|
46
|
-
it { expect { json }.to raise_error Babl::Errors::RenderingError }
|
47
|
-
end
|
48
|
-
|
49
|
-
context 'non serializable objects are allowed internally' do
|
50
|
-
template { switch(test: 42) }
|
51
|
-
|
52
|
-
let(:object) { { test: Object.new } }
|
53
|
-
|
54
|
-
it { expect(json).to eq 42 }
|
55
|
-
end
|
56
|
-
|
57
|
-
context 'switch between empty array and a dyn array' do
|
58
|
-
template { switch(1 => each.object(a: 1), 2 => []) }
|
59
|
-
|
60
|
-
let(:object) { [nil] }
|
61
|
-
|
62
|
-
it { expect(json).to eq(['a' => 1]) }
|
63
|
-
it { expect(schema).to eq s_dyn_array(s_object(s_property(:a, s_static(1)))) }
|
64
|
-
end
|
65
|
-
|
66
|
-
context 'switch between fixed array and a dyn array producing different output' do
|
67
|
-
template { switch(1 => each.static(1), 2 => [2]) }
|
68
|
-
|
69
|
-
it {
|
70
|
-
expect(schema).to eq s_any_of(
|
71
|
-
s_dyn_array(s_static(1)), s_fixed_array(s_static(2))
|
72
|
-
)
|
73
|
-
}
|
74
|
-
end
|
75
|
-
|
76
|
-
context 'switch between fixed array and a dyn array producing identical output' do
|
77
|
-
template { switch(1 => nullable.each.static(1), 2 => [1]) }
|
78
|
-
|
79
|
-
it { expect(schema).to eq s_any_of(s_null, s_dyn_array(s_static(1))) }
|
80
|
-
end
|
81
|
-
|
82
|
-
context 'switch between similar objects having only one different property' do
|
83
|
-
template { switch(1 => { a: 34, b: 3 }, 2 => { a: 34, b: 1 }, 3 => { b: 2, a: 34 }) }
|
84
|
-
|
85
|
-
it {
|
86
|
-
expect(schema).to eq s_object(
|
87
|
-
s_property(:a, s_static(34)),
|
88
|
-
s_property(:b, s_any_of(s_static(1), s_static(2), s_static(3)))
|
89
|
-
)
|
90
|
-
}
|
91
|
-
end
|
92
|
-
|
93
|
-
context 'switch between similar objects having more than one different property' do
|
94
|
-
template { switch(1 => { a: 35, b: 1 }, 2 => { a: 34, b: 2 }) }
|
95
|
-
|
96
|
-
it {
|
97
|
-
expect(schema).to eq s_any_of(
|
98
|
-
s_object(
|
99
|
-
s_property(:a, s_static(35)),
|
100
|
-
s_property(:b, s_static(1))
|
101
|
-
),
|
102
|
-
s_object(
|
103
|
-
s_property(:a, s_static(34)),
|
104
|
-
s_property(:b, s_static(2))
|
105
|
-
)
|
106
|
-
)
|
107
|
-
}
|
108
|
-
end
|
109
|
-
|
110
|
-
context 'switch between two possible dyn arrays' do
|
111
|
-
template { switch(1 => each.static('a'), 2 => each.static('b'), 3 => nullable.each.static('c')) }
|
112
|
-
|
113
|
-
it { expect(schema).to eq s_any_of(s_null, s_dyn_array(s_any_of(s_static('a'), s_static('c'), s_static('b')))) }
|
114
|
-
end
|
115
|
-
|
116
|
-
context 'switch between true and false' do
|
117
|
-
template { switch(1 => true, 2 => false) }
|
118
|
-
it { expect(schema).to eq s_boolean }
|
119
|
-
end
|
120
|
-
|
121
|
-
context 'switch between true and a string' do
|
122
|
-
template { switch(1 => true, 3 => string) }
|
123
|
-
it { expect(schema).to eq s_any_of(s_static(true), s_string) }
|
124
|
-
end
|
125
|
-
|
126
|
-
context 'switch between any string and a specific string' do
|
127
|
-
template { switch(1 => string, 3 => 'lol') }
|
128
|
-
it { expect(schema).to eq s_string }
|
129
|
-
end
|
130
|
-
|
131
|
-
context 'switch between any boolean and a specific boolean' do
|
132
|
-
template { switch(1 => boolean, 3 => true) }
|
133
|
-
it { expect(schema).to eq s_boolean }
|
134
|
-
end
|
135
|
-
|
136
|
-
context 'switch between a specific float, specific integer and any number' do
|
137
|
-
template { switch(1 => 1.2, 2 => 2, 3 => number) }
|
138
|
-
it { expect(schema).to eq s_number }
|
139
|
-
end
|
140
|
-
|
141
|
-
context 'switch between a specific float, specific integer and any integer' do
|
142
|
-
template { switch(1 => 1.2, 2 => 2, 3 => integer) }
|
143
|
-
it { expect(schema).to eq s_any_of(s_integer, s_static(1.2)) }
|
144
|
-
end
|
145
|
-
|
146
|
-
context 'with dependencies' do
|
147
|
-
template { nav(:test).switch(nav(:keke) => parent.nav(:lol)) }
|
148
|
-
it { expect(dependencies).to eq(test: { keke: {} }, lol: {}) }
|
149
|
-
end
|
150
|
-
end
|
151
|
-
end
|
@@ -1,84 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Babl::Operators::Typed do
|
4
|
-
extend SpecHelper::OperatorTesting
|
5
|
-
|
6
|
-
describe '#integer' do
|
7
|
-
template { [integer] }
|
8
|
-
|
9
|
-
it { expect(schema).to eq s_fixed_array(s_integer) }
|
10
|
-
|
11
|
-
context do
|
12
|
-
let(:object) { 12 }
|
13
|
-
it { expect(json).to eq [12] }
|
14
|
-
end
|
15
|
-
|
16
|
-
context do
|
17
|
-
let(:object) { 12.5 }
|
18
|
-
it { expect { json }.to raise_error Babl::Errors::RenderingError }
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
describe '#number' do
|
23
|
-
template { [number] }
|
24
|
-
|
25
|
-
it { expect(schema).to eq s_fixed_array(s_number) }
|
26
|
-
|
27
|
-
context do
|
28
|
-
let(:object) { 12 }
|
29
|
-
it { expect(json).to eq [12] }
|
30
|
-
end
|
31
|
-
|
32
|
-
context do
|
33
|
-
let(:object) { 12.5 }
|
34
|
-
it { expect(json).to eq [12.5] }
|
35
|
-
end
|
36
|
-
|
37
|
-
context do
|
38
|
-
let(:object) { '12' }
|
39
|
-
it { expect { json }.to raise_error Babl::Errors::RenderingError }
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
describe '#string' do
|
44
|
-
template { [string] }
|
45
|
-
|
46
|
-
it { expect(schema).to eq s_fixed_array(s_string) }
|
47
|
-
|
48
|
-
context do
|
49
|
-
let(:object) { [12] }
|
50
|
-
it { expect { json }.to raise_error Babl::Errors::RenderingError }
|
51
|
-
end
|
52
|
-
|
53
|
-
context do
|
54
|
-
let(:object) { '12' }
|
55
|
-
it { expect(json).to eq ['12'] }
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
describe '#boolean' do
|
60
|
-
template { [boolean] }
|
61
|
-
|
62
|
-
it { expect(schema).to eq s_fixed_array(s_boolean) }
|
63
|
-
|
64
|
-
context do
|
65
|
-
let(:object) { true }
|
66
|
-
it { expect(json).to eq [true] }
|
67
|
-
end
|
68
|
-
|
69
|
-
context do
|
70
|
-
let(:object) { false }
|
71
|
-
it { expect(json).to eq [false] }
|
72
|
-
end
|
73
|
-
|
74
|
-
context do
|
75
|
-
let(:object) { 'true' }
|
76
|
-
it { expect { json }.to raise_error Babl::Errors::RenderingError }
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
context 'obviously invalid template' do
|
81
|
-
template { integer.string }
|
82
|
-
it { expect { schema }.to raise_error Babl::Errors::InvalidTemplate }
|
83
|
-
end
|
84
|
-
end
|
data/spec/operators/with_spec.rb
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Babl::Operators::With do
|
4
|
-
extend SpecHelper::OperatorTesting
|
5
|
-
|
6
|
-
describe '#with' do
|
7
|
-
context 'everything is fine' do
|
8
|
-
template {
|
9
|
-
object(
|
10
|
-
result: with(
|
11
|
-
unscoped,
|
12
|
-
:msg,
|
13
|
-
_.parent.nav(:msg).dep(:lol)
|
14
|
-
) { |obj, a, b| "#{a} #{b} #{obj[:msg]}" }
|
15
|
-
)
|
16
|
-
}
|
17
|
-
|
18
|
-
let(:object) { { result: 42, msg: 'Hello C' } }
|
19
|
-
|
20
|
-
it { expect(json).to eq('result' => 'Hello C Hello C Hello C') }
|
21
|
-
it { expect(dependencies).to eq(result: {}, msg: { lol: {} }) }
|
22
|
-
it { expect(schema).to eq s_object(s_property(:result, s_anything)) }
|
23
|
-
end
|
24
|
-
|
25
|
-
context 'when the block raise an exception' do
|
26
|
-
template { with { raise 'lol' } }
|
27
|
-
|
28
|
-
it { expect { json }.to raise_error(/\__root__\.__block__/) }
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
data/spec/spec_helper.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
require 'babl'
|
2
|
-
require 'oj'
|
3
|
-
require 'json-schema'
|
4
|
-
require 'spec_helper/schema_utils'
|
5
|
-
|
6
|
-
module SpecHelper
|
7
|
-
module OperatorTesting
|
8
|
-
def template(*args, &block)
|
9
|
-
let(:template) { dsl.source(*args, &block) }
|
10
|
-
end
|
11
|
-
|
12
|
-
def self.extended(base)
|
13
|
-
base.include SchemaUtils
|
14
|
-
|
15
|
-
base.let(:dsl) { Babl::Template.new }
|
16
|
-
base.let(:compiled) { template.compile }
|
17
|
-
base.let(:unchecked_json) { ::Oj.load(compiled.json(object)) }
|
18
|
-
base.let(:dependencies) { compiled.send(:dependencies) }
|
19
|
-
base.let(:schema) { compiled.send(:node).schema }
|
20
|
-
base.let(:json_schema) { compiled.json_schema }
|
21
|
-
base.let(:object) { nil }
|
22
|
-
|
23
|
-
base.let(:json) {
|
24
|
-
JSON::Validator.validate!(json_schema, unchecked_json, validate_schema: true)
|
25
|
-
unchecked_json
|
26
|
-
}
|
27
|
-
|
28
|
-
base.before {
|
29
|
-
stub_const('TestLookupContext', Class.new {
|
30
|
-
attr_reader :code, :childs
|
31
|
-
|
32
|
-
def initialize(code = nil, **childs)
|
33
|
-
@code = code
|
34
|
-
@childs = childs
|
35
|
-
end
|
36
|
-
|
37
|
-
def find(name)
|
38
|
-
name = name.to_sym
|
39
|
-
return unless childs[name]
|
40
|
-
[name.to_s, childs[name].code, childs[name]]
|
41
|
-
end
|
42
|
-
})
|
43
|
-
}
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
@@ -1,53 +0,0 @@
|
|
1
|
-
require 'babl'
|
2
|
-
|
3
|
-
module SpecHelper
|
4
|
-
module SchemaUtils
|
5
|
-
def s_any_of(*args)
|
6
|
-
Babl::Schema::AnyOf.canonicalized(args)
|
7
|
-
end
|
8
|
-
|
9
|
-
def s_anything
|
10
|
-
Babl::Schema::Anything.instance
|
11
|
-
end
|
12
|
-
|
13
|
-
def s_dyn_array(schema)
|
14
|
-
Babl::Schema::DynArray.new(schema)
|
15
|
-
end
|
16
|
-
|
17
|
-
def s_null
|
18
|
-
Babl::Schema::Static::NULL
|
19
|
-
end
|
20
|
-
|
21
|
-
def s_integer
|
22
|
-
Babl::Schema::Typed::INTEGER
|
23
|
-
end
|
24
|
-
|
25
|
-
def s_string
|
26
|
-
Babl::Schema::Typed::STRING
|
27
|
-
end
|
28
|
-
|
29
|
-
def s_boolean
|
30
|
-
Babl::Schema::Typed::BOOLEAN
|
31
|
-
end
|
32
|
-
|
33
|
-
def s_number
|
34
|
-
Babl::Schema::Typed::NUMBER
|
35
|
-
end
|
36
|
-
|
37
|
-
def s_fixed_array(*schemas)
|
38
|
-
Babl::Schema::FixedArray.new(schemas)
|
39
|
-
end
|
40
|
-
|
41
|
-
def s_object(*properties, additional: false)
|
42
|
-
Babl::Schema::Object.new(properties, additional)
|
43
|
-
end
|
44
|
-
|
45
|
-
def s_static(value)
|
46
|
-
Babl::Schema::Static.new(value)
|
47
|
-
end
|
48
|
-
|
49
|
-
def s_property(name, value, required: true)
|
50
|
-
Babl::Schema::Object::Property.new(name, value, required)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
data/spec/utils/value_spec.rb
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
require 'babl/utils/value'
|
2
|
-
|
3
|
-
describe Babl::Utils::Value do
|
4
|
-
let(:clazz) { described_class.new(:val1) }
|
5
|
-
let(:inst1) { clazz.new([1]) }
|
6
|
-
let(:inst2) { clazz.new([1]) }
|
7
|
-
|
8
|
-
it { expect(inst1).to eq inst2 }
|
9
|
-
it { expect(inst1).to eql inst2 }
|
10
|
-
it { expect(inst1.hash).to eq inst2.hash }
|
11
|
-
|
12
|
-
describe 'immutability' do
|
13
|
-
it { expect { inst1.val1 = 2 }.to raise_error ::RuntimeError }
|
14
|
-
end
|
15
|
-
|
16
|
-
describe 'test when not equal' do
|
17
|
-
before { inst2.val1 << 3 }
|
18
|
-
|
19
|
-
it { expect(inst1).not_to eq inst2 }
|
20
|
-
it { expect(inst1.hash).to eq inst2.hash }
|
21
|
-
end
|
22
|
-
|
23
|
-
describe 'use hash for equality test' do
|
24
|
-
let(:inst1dup) { inst1.dup }
|
25
|
-
|
26
|
-
it { expect(inst1dup).to eq inst1 }
|
27
|
-
|
28
|
-
context do
|
29
|
-
before { inst1dup._cached_hash = 42 }
|
30
|
-
it { expect(inst1dup).not_to eq inst1 }
|
31
|
-
it { expect(inst1dup).not_to eq inst2 }
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
describe 'ensure eql? behavior' do
|
36
|
-
let(:inst1) { clazz.new(1.0) }
|
37
|
-
let(:inst2) { clazz.new(1) }
|
38
|
-
|
39
|
-
it { expect(inst1).not_to eql inst2 }
|
40
|
-
it { expect(inst1).not_to eq inst2 }
|
41
|
-
end
|
42
|
-
|
43
|
-
describe 'no property' do
|
44
|
-
let(:clazz1) { described_class.new }
|
45
|
-
let(:clazz2) { described_class.new }
|
46
|
-
|
47
|
-
let(:clazz1_inst1) { clazz1.new }
|
48
|
-
let(:clazz1_inst2) { clazz1.new }
|
49
|
-
let(:clazz2_inst1) { clazz2.new }
|
50
|
-
|
51
|
-
it { expect(clazz1_inst1).to eq clazz1_inst2 }
|
52
|
-
it { expect(clazz1_inst1).not_to eq clazz2_inst1 }
|
53
|
-
end
|
54
|
-
end
|