necromancer 0.3.0 → 0.7.0
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 +5 -5
- data/CHANGELOG.md +70 -3
- data/README.md +204 -86
- data/lib/necromancer.rb +17 -18
- data/lib/necromancer/configuration.rb +1 -1
- data/lib/necromancer/context.rb +16 -3
- data/lib/necromancer/conversion_target.rb +31 -14
- data/lib/necromancer/conversions.rb +39 -16
- data/lib/necromancer/converter.rb +10 -8
- data/lib/necromancer/converters/array.rb +143 -45
- data/lib/necromancer/converters/boolean.rb +21 -19
- data/lib/necromancer/converters/date_time.rb +58 -13
- data/lib/necromancer/converters/hash.rb +119 -0
- data/lib/necromancer/converters/numeric.rb +32 -28
- data/lib/necromancer/converters/range.rb +44 -18
- data/lib/necromancer/null_converter.rb +4 -2
- data/lib/necromancer/version.rb +2 -2
- metadata +39 -72
- data/.gitignore +0 -14
- data/.rspec +0 -3
- data/.ruby-version +0 -1
- data/.travis.yml +0 -19
- data/Gemfile +0 -16
- data/Rakefile +0 -8
- data/necromancer.gemspec +0 -21
- data/spec/spec_helper.rb +0 -53
- data/spec/unit/can_spec.rb +0 -11
- data/spec/unit/config_spec.rb +0 -32
- data/spec/unit/configuration/new_spec.rb +0 -30
- data/spec/unit/conversions/register_spec.rb +0 -49
- data/spec/unit/convert_spec.rb +0 -104
- data/spec/unit/converters/array/array_to_boolean_spec.rb +0 -22
- data/spec/unit/converters/array/array_to_numeric_spec.rb +0 -22
- data/spec/unit/converters/array/array_to_set_spec.rb +0 -18
- data/spec/unit/converters/array/object_to_array_spec.rb +0 -21
- data/spec/unit/converters/array/string_to_array_spec.rb +0 -33
- data/spec/unit/converters/boolean/boolean_to_integer_spec.rb +0 -26
- data/spec/unit/converters/boolean/integer_to_boolean_spec.rb +0 -22
- data/spec/unit/converters/boolean/string_to_boolean_spec.rb +0 -36
- data/spec/unit/converters/date_time/string_to_date_spec.rb +0 -22
- data/spec/unit/converters/date_time/string_to_datetime_spec.rb +0 -32
- data/spec/unit/converters/numeric/string_to_float_spec.rb +0 -48
- data/spec/unit/converters/numeric/string_to_integer_spec.rb +0 -62
- data/spec/unit/converters/numeric/string_to_numeric_spec.rb +0 -32
- data/spec/unit/converters/range/string_to_range_spec.rb +0 -35
- data/spec/unit/new_spec.rb +0 -12
- data/spec/unit/register_spec.rb +0 -17
- data/tasks/console.rake +0 -10
- data/tasks/coverage.rake +0 -11
- data/tasks/spec.rake +0 -29
data/spec/unit/convert_spec.rb
DELETED
@@ -1,104 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
RSpec.describe Necromancer, '.convert' do
|
6
|
-
|
7
|
-
subject(:converter) { described_class.new }
|
8
|
-
|
9
|
-
context 'when array' do
|
10
|
-
it "converts string to array" do
|
11
|
-
expect(converter.convert("1,2,3").to(:array)).to eq([1,2,3])
|
12
|
-
end
|
13
|
-
|
14
|
-
it "converts array to numeric " do
|
15
|
-
expect(converter.convert(['1','2.3','3.0']).to(:numeric)).to eq([1,2.3,3.0])
|
16
|
-
end
|
17
|
-
|
18
|
-
it "converts array to boolean" do
|
19
|
-
expect(converter.convert(['t', 'no']).to(:boolean)).to eq([true, false])
|
20
|
-
end
|
21
|
-
|
22
|
-
it "converts object to array" do
|
23
|
-
expect(converter.convert({x: 1}).to(:array)).to eq([[:x, 1]])
|
24
|
-
end
|
25
|
-
|
26
|
-
it "fails to convert in strict mode" do
|
27
|
-
expect {
|
28
|
-
converter.convert(['1', '2.3', false]).to(:numeric, strict: true)
|
29
|
-
}.to raise_error(Necromancer::ConversionTypeError)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
context 'when numeric' do
|
34
|
-
it "converts string to integer" do
|
35
|
-
expect(converter.convert('1').to(:integer)).to eq(1)
|
36
|
-
end
|
37
|
-
|
38
|
-
it "allows for block for conversion method" do
|
39
|
-
expect(converter.convert { '1' }.to(:integer)).to eq(1)
|
40
|
-
end
|
41
|
-
|
42
|
-
it "convers integer to string" do
|
43
|
-
expect(converter.convert(1).to(:string)).to eq('1')
|
44
|
-
end
|
45
|
-
|
46
|
-
it "allows for null type conversion" do
|
47
|
-
expect(converter.convert(1).to(:integer)).to eq(1)
|
48
|
-
end
|
49
|
-
|
50
|
-
it "raises error when in strict mode" do
|
51
|
-
expect {
|
52
|
-
converter.convert('1a').to(:integer, strict: true)
|
53
|
-
}.to raise_error(Necromancer::ConversionTypeError)
|
54
|
-
end
|
55
|
-
|
56
|
-
it "doesn't raise error when in non-strict mode" do
|
57
|
-
expect(converter.convert('1').to(:integer, strict: false)).to eql(1)
|
58
|
-
end
|
59
|
-
|
60
|
-
it "converts string to float" do
|
61
|
-
expect(converter.convert('1.0').to(:float)).to eql(1.0)
|
62
|
-
end
|
63
|
-
|
64
|
-
it "converts string to numeric" do
|
65
|
-
expect(converter.convert('1.0').to(:numeric)).to eql(1.0)
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
context 'when boolean' do
|
70
|
-
it "converts boolean to boolean" do
|
71
|
-
expect(converter.convert(true).to(:boolean)).to eq(true)
|
72
|
-
end
|
73
|
-
|
74
|
-
it "converts string to boolean" do
|
75
|
-
expect(converter.convert('yes').to(:boolean)).to eq(true)
|
76
|
-
end
|
77
|
-
|
78
|
-
it "converts integer to boolean" do
|
79
|
-
expect(converter.convert(0).to(:boolean)).to eq(false)
|
80
|
-
end
|
81
|
-
|
82
|
-
it "converts boolean to integer" do
|
83
|
-
expect(converter.convert(true).to(:integer)).to eq(1)
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
context 'when range' do
|
88
|
-
it "converts string to range" do
|
89
|
-
expect(converter.convert('1-10').to(:range)).to eq(1..10)
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
context 'when datetime' do
|
94
|
-
it "converts string to date" do
|
95
|
-
expect(converter.convert('2014-12-07').to(:date)).
|
96
|
-
to eq(Date.parse('2014-12-07'))
|
97
|
-
end
|
98
|
-
|
99
|
-
it "converts string to datetime" do
|
100
|
-
expect(converter.convert('2014-12-07 17:35:44').to(:datetime)).
|
101
|
-
to eq(DateTime.parse('2014-12-07 17:35:44'))
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
RSpec.describe Necromancer::ArrayConverters::ArrayToBooleanConverter, '.call' do
|
6
|
-
|
7
|
-
subject(:converter) { described_class.new(:array, :boolean) }
|
8
|
-
|
9
|
-
it "converts `['t', 'f', 'yes', 'no']` to boolean array" do
|
10
|
-
expect(converter.call(['t', 'f', 'yes', 'no'])).to eq([true, false, true, false])
|
11
|
-
end
|
12
|
-
|
13
|
-
it "fails to convert `['t', 'no', 5]` to boolean array in strict mode" do
|
14
|
-
expect {
|
15
|
-
converter.call(['t', 'no', 5], strict: true)
|
16
|
-
}.to raise_error(Necromancer::ConversionTypeError)
|
17
|
-
end
|
18
|
-
|
19
|
-
it "converts `['t', 'no', 5]` to boolean array in non-strict mode" do
|
20
|
-
expect(converter.call(['t', 'no', 5], strict: false)).to eql([true, false, 5])
|
21
|
-
end
|
22
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
RSpec.describe Necromancer::ArrayConverters::ArrayToNumericConverter, '.call' do
|
6
|
-
|
7
|
-
subject(:converter) { described_class.new(:array, :numeric) }
|
8
|
-
|
9
|
-
it "converts `['1','2.3','3.0']` to numeric array" do
|
10
|
-
expect(converter.call(['1', '2.3', '3.0'])).to eq([1, 2.3, 3.0])
|
11
|
-
end
|
12
|
-
|
13
|
-
it "fails to convert `['1','2.3',false]` to numeric array in strict mode" do
|
14
|
-
expect {
|
15
|
-
converter.call(['1', '2.3', false], strict: true)
|
16
|
-
}.to raise_error(Necromancer::ConversionTypeError)
|
17
|
-
end
|
18
|
-
|
19
|
-
it "converts `['1','2.3',false]` to numeric array in non-strict mode" do
|
20
|
-
expect(converter.call(['1', '2.3', false], strict: false)).to eq([1, 2.3, false])
|
21
|
-
end
|
22
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
RSpec.describe Necromancer::ArrayConverters::ArrayToSetConverter, '.call' do
|
6
|
-
|
7
|
-
subject(:converter) { described_class.new(:array, :set) }
|
8
|
-
|
9
|
-
it "converts `[:x,:y,:x,1,2,1]` to set" do
|
10
|
-
expect(converter.call([:x,:y,:x,1,2,1])).to eql(Set[:x,:y,1,2])
|
11
|
-
end
|
12
|
-
|
13
|
-
it "fails to convert `1` to set" do
|
14
|
-
expect {
|
15
|
-
converter.call(1, strict: true)
|
16
|
-
}.to raise_error(Necromancer::ConversionTypeError)
|
17
|
-
end
|
18
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
RSpec.describe Necromancer::ArrayConverters::ObjectToArrayConverter, '.call' do
|
6
|
-
subject(:converter) { described_class.new(:object, :array) }
|
7
|
-
|
8
|
-
it "converts nil to array" do
|
9
|
-
expect(converter.call(nil)).to eq([])
|
10
|
-
end
|
11
|
-
|
12
|
-
it "converts custom object to array" do
|
13
|
-
Custom = Class.new do
|
14
|
-
def to_ary
|
15
|
-
[:x, :y]
|
16
|
-
end
|
17
|
-
end
|
18
|
-
custom = Custom.new
|
19
|
-
expect(converter.call(custom)).to eq([:x, :y])
|
20
|
-
end
|
21
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
RSpec.describe Necromancer::ArrayConverters::StringToArrayConverter, '.call' do
|
6
|
-
subject(:converter) { described_class.new(:string, :array) }
|
7
|
-
|
8
|
-
it "converts empty string to array" do
|
9
|
-
expect(converter.call('', strict: false)).to eq([''])
|
10
|
-
end
|
11
|
-
|
12
|
-
it "fails to convert empty string to array in strict mode" do
|
13
|
-
expect {
|
14
|
-
converter.call('', strict: true)
|
15
|
-
}.to raise_error(Necromancer::ConversionTypeError)
|
16
|
-
end
|
17
|
-
|
18
|
-
it "converts `1,2,3` to array" do
|
19
|
-
expect(converter.call('1,2,3')).to eq([1,2,3])
|
20
|
-
end
|
21
|
-
|
22
|
-
it "converts `a,b,c` to array" do
|
23
|
-
expect(converter.call('a,b,c')).to eq(['a','b','c'])
|
24
|
-
end
|
25
|
-
|
26
|
-
it "converts '1-2-3' to array" do
|
27
|
-
expect(converter.call('1-2-3')).to eq([1,2,3])
|
28
|
-
end
|
29
|
-
|
30
|
-
it "converts ' 1 - 2 - 3 ' to array" do
|
31
|
-
expect(converter.call(' 1 - 2 - 3 ')).to eq([1,2,3])
|
32
|
-
end
|
33
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
RSpec.describe Necromancer::BooleanConverters::BooleanToIntegerConverter, '.call' do
|
6
|
-
|
7
|
-
subject(:converter) { described_class.new }
|
8
|
-
|
9
|
-
it "converts true to 1 value" do
|
10
|
-
expect(converter.call(true)).to eq(1)
|
11
|
-
end
|
12
|
-
|
13
|
-
it "converts false to 0 value" do
|
14
|
-
expect(converter.call(false)).to eq(0)
|
15
|
-
end
|
16
|
-
|
17
|
-
it "fails to convert in strict mode" do
|
18
|
-
expect {
|
19
|
-
converter.call('unknown', strict: true)
|
20
|
-
}.to raise_error(Necromancer::ConversionTypeError)
|
21
|
-
end
|
22
|
-
|
23
|
-
it "returns value in non-strict mode" do
|
24
|
-
expect(converter.call('unknown', strict: false)).to eq('unknown')
|
25
|
-
end
|
26
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
RSpec.describe Necromancer::BooleanConverters::IntegerToBooleanConverter, '.call' do
|
6
|
-
|
7
|
-
subject(:converter) { described_class.new }
|
8
|
-
|
9
|
-
it "converts 1 to true value" do
|
10
|
-
expect(converter.call(1)).to eq(true)
|
11
|
-
end
|
12
|
-
|
13
|
-
it "converts 0 to false value" do
|
14
|
-
expect(converter.call(0)).to eq(false)
|
15
|
-
end
|
16
|
-
|
17
|
-
it "fails to convert in strict mode" do
|
18
|
-
expect {
|
19
|
-
converter.call('1', strict: true)
|
20
|
-
}.to raise_error(Necromancer::ConversionTypeError)
|
21
|
-
end
|
22
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
RSpec.describe Necromancer::BooleanConverters::StringToBooleanConverter, '.call' do
|
6
|
-
|
7
|
-
subject(:converter) { described_class.new(:string, :boolean) }
|
8
|
-
|
9
|
-
it "raises error for empty string strict mode" do
|
10
|
-
expect {
|
11
|
-
converter.call('', strict: true)
|
12
|
-
}.to raise_error(Necromancer::ConversionTypeError)
|
13
|
-
end
|
14
|
-
|
15
|
-
it "fails to convert unkonwn value FOO" do
|
16
|
-
expect {
|
17
|
-
converter.call('FOO', strict: true)
|
18
|
-
}.to raise_error(Necromancer::ConversionTypeError)
|
19
|
-
end
|
20
|
-
|
21
|
-
it "passes through boolean value" do
|
22
|
-
expect(converter.call(true)).to eq(true)
|
23
|
-
end
|
24
|
-
|
25
|
-
%w[true TRUE t T 1 y Y YES yes on ON].each do |value|
|
26
|
-
it "converts '#{value}' to true value" do
|
27
|
-
expect(converter.call(value)).to eq(true)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
%w[false FALSE f F 0 n N NO No no off OFF].each do |value|
|
32
|
-
it "converts '#{value}' to false value" do
|
33
|
-
expect(converter.call(value)).to eq(false)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
RSpec.describe Necromancer::DateTimeConverters::StringToDateConverter, '.call' do
|
6
|
-
|
7
|
-
subject(:converter) { described_class.new(:string, :date) }
|
8
|
-
|
9
|
-
it "converts '2014/12/07' to date value" do
|
10
|
-
expect(converter.call('2014/12/07')).to eq(Date.parse('2014/12/07'))
|
11
|
-
end
|
12
|
-
|
13
|
-
it "converts '2014-12-07' to date value" do
|
14
|
-
expect(converter.call('2014-12-07')).to eq(Date.parse('2014/12/07'))
|
15
|
-
end
|
16
|
-
|
17
|
-
it "fails to convert in strict mode" do
|
18
|
-
expect {
|
19
|
-
converter.call('2014 - 12 - 07', strict: true)
|
20
|
-
}.to raise_error(Necromancer::ConversionTypeError)
|
21
|
-
end
|
22
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
RSpec.describe Necromancer::DateTimeConverters::StringToDateTimeConverter, '.call' do
|
6
|
-
|
7
|
-
subject(:converter) { described_class.new(:string, :datetime) }
|
8
|
-
|
9
|
-
it "converts '2014/12/07' to date value" do
|
10
|
-
expect(converter.call('2014/12/07')).to eq(DateTime.parse('2014/12/07'))
|
11
|
-
end
|
12
|
-
|
13
|
-
it "converts '2014-12-07' to date value" do
|
14
|
-
expect(converter.call('2014-12-07')).to eq(DateTime.parse('2014-12-07'))
|
15
|
-
end
|
16
|
-
|
17
|
-
it "converts '7th December 2014' to datetime value" do
|
18
|
-
expect(converter.call('7th December 2014')).
|
19
|
-
to eq(DateTime.parse('2014-12-07'))
|
20
|
-
end
|
21
|
-
|
22
|
-
it "converts '7th December 2014 17:19:44' to datetime value" do
|
23
|
-
expect(converter.call('7th December 2014 17:19:44')).
|
24
|
-
to eq(DateTime.parse('2014-12-07 17:19:44'))
|
25
|
-
end
|
26
|
-
|
27
|
-
it "fails to convert in strict mode" do
|
28
|
-
expect {
|
29
|
-
converter.call('2014 - 12 - 07', strict: true)
|
30
|
-
}.to raise_error(Necromancer::ConversionTypeError)
|
31
|
-
end
|
32
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
RSpec.describe Necromancer::NumericConverters::StringToFloatConverter, '.call' do
|
6
|
-
|
7
|
-
subject(:converter) { described_class.new(:string, :float) }
|
8
|
-
|
9
|
-
it "raises error for empty string in strict mode" do
|
10
|
-
expect {
|
11
|
-
converter.call('', strict: true)
|
12
|
-
}.to raise_error(Necromancer::ConversionTypeError)
|
13
|
-
end
|
14
|
-
|
15
|
-
{
|
16
|
-
'1' => 1.0,
|
17
|
-
'+1' => 1.0,
|
18
|
-
'-1' => -1.0,
|
19
|
-
'1e1' => 10.0,
|
20
|
-
'1e-1' => 0.1,
|
21
|
-
'-1e1' => -10.0,
|
22
|
-
'-1e-1' => -0.1,
|
23
|
-
'1.0' => 1.0,
|
24
|
-
'1.0e+1' => 10.0,
|
25
|
-
'1.0e-1' => 0.1,
|
26
|
-
'-1.0e+1' => -10.0,
|
27
|
-
'-1.0e-1' => -0.1,
|
28
|
-
'.1' => 0.1,
|
29
|
-
'.1e+1' => 1.0,
|
30
|
-
'.1e-1' => 0.01,
|
31
|
-
'-.1e+1' => -1.0,
|
32
|
-
'-.1e-1' => -0.01
|
33
|
-
}.each do |actual, expected|
|
34
|
-
it "converts '#{actual}' to float value" do
|
35
|
-
expect(converter.call(actual)).to eql(expected)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
it "failse to convert '1.2a' in strict mode" do
|
40
|
-
expect {
|
41
|
-
converter.call('1.2a', strict: true)
|
42
|
-
}.to raise_error(Necromancer::ConversionTypeError)
|
43
|
-
end
|
44
|
-
|
45
|
-
it "converts '1.2a' in non-strict mode" do
|
46
|
-
expect(converter.call('1.2a', strict: false)).to eq(1.2)
|
47
|
-
end
|
48
|
-
end
|
@@ -1,62 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
RSpec.describe Necromancer::NumericConverters::StringToIntegerConverter, '.call' do
|
6
|
-
|
7
|
-
subject(:converter) { described_class.new(:string, :integer) }
|
8
|
-
|
9
|
-
{
|
10
|
-
'1' => 1,
|
11
|
-
'+1' => 1,
|
12
|
-
'-1' => -1,
|
13
|
-
'1e+1' => 1,
|
14
|
-
'+1e-1' => 1,
|
15
|
-
'-1e1' => -1,
|
16
|
-
'-1e-1' => -1,
|
17
|
-
'1.0' => 1,
|
18
|
-
'1.0e+1' => 1,
|
19
|
-
'1.0e-1' => 1,
|
20
|
-
'-1.0e+1' => -1,
|
21
|
-
'-1.0e-1' => -1,
|
22
|
-
'.1' => 0,
|
23
|
-
'.1e+1' => 0,
|
24
|
-
'.1e-1' => 0,
|
25
|
-
'-.1e+1' => 0,
|
26
|
-
'-.1e-1' => 0
|
27
|
-
}.each do |actual, expected|
|
28
|
-
it "converts '#{actual}' to float value" do
|
29
|
-
expect(converter.call(actual)).to eql(expected)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
it "raises error for empty string in strict mode" do
|
34
|
-
expect {
|
35
|
-
converter.call('', strict: true)
|
36
|
-
}.to raise_error(Necromancer::ConversionTypeError)
|
37
|
-
end
|
38
|
-
|
39
|
-
it "converts empty string to 0 in non-strict mode" do
|
40
|
-
expect(converter.call('', strict: false)).to eq(0)
|
41
|
-
end
|
42
|
-
|
43
|
-
it "raises error for float in strict mode" do
|
44
|
-
expect {
|
45
|
-
converter.call('1.2', strict: true)
|
46
|
-
}.to raise_error(Necromancer::ConversionTypeError)
|
47
|
-
end
|
48
|
-
|
49
|
-
it "converts float to integer in non-strict mode" do
|
50
|
-
expect(converter.call(1.2)).to eq(1)
|
51
|
-
end
|
52
|
-
|
53
|
-
it "converts mixed string to integer in non-strict mode" do
|
54
|
-
expect(converter.call('1abc')).to eq(1)
|
55
|
-
end
|
56
|
-
|
57
|
-
it "raises error for mixed string in strict mode" do
|
58
|
-
expect {
|
59
|
-
converter.call('1abc', strict: true)
|
60
|
-
}.to raise_error(Necromancer::ConversionTypeError)
|
61
|
-
end
|
62
|
-
end
|