ensure_it 0.1.3 → 0.1.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/.yardopts +3 -0
- data/README.md +17 -10
- data/lib/ensure_it.rb +7 -0
- data/lib/ensure_it/config.rb +9 -0
- data/lib/ensure_it/ensure_array.rb +49 -36
- data/lib/ensure_it/ensure_class.rb +52 -15
- data/lib/ensure_it/ensure_float.rb +43 -60
- data/lib/ensure_it/ensure_hash.rb +2 -2
- data/lib/ensure_it/ensure_instance_of.rb +1 -1
- data/lib/ensure_it/ensure_integer.rb +80 -100
- data/lib/ensure_it/ensure_string.rb +114 -48
- data/lib/ensure_it/ensure_symbol.rb +47 -40
- data/lib/ensure_it/errors.rb +2 -2
- data/lib/ensure_it/string_utils.rb +61 -0
- data/lib/ensure_it/version.rb +1 -1
- data/spec/lib/config_spec.rb +33 -4
- data/spec/lib/ensure_array_spec.rb +18 -14
- data/spec/lib/ensure_class_spec.rb +4 -0
- data/spec/lib/ensure_string_spec.rb +8 -1
- data/spec/lib/ensure_symbol_spec.rb +7 -0
- data/spec/lib/errors_spec.rb +10 -0
- data/spec/lib/string_utils_spec.rb +164 -0
- metadata +6 -2
@@ -4,66 +4,73 @@ module EnsureIt
|
|
4
4
|
default
|
5
5
|
end
|
6
6
|
|
7
|
-
def ensure_symbol!(
|
8
|
-
EnsureIt.raise_error(
|
9
|
-
|
10
|
-
**EnsureIt.ensure_symbol_error_options(**opts)
|
11
|
-
)
|
7
|
+
def ensure_symbol!(**opts)
|
8
|
+
EnsureIt.raise_error(:ensure_symbol!,
|
9
|
+
**EnsureIt.ensure_symbol_error(**opts))
|
12
10
|
end
|
13
11
|
end
|
14
12
|
|
15
13
|
patch String do
|
16
|
-
def ensure_symbol(default: nil,
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
else
|
21
|
-
default
|
14
|
+
def ensure_symbol(default: nil, **opts)
|
15
|
+
return to_sym if opts.empty?
|
16
|
+
catch :wrong do
|
17
|
+
return EnsureIt.ensure_symbol(to_sym, **opts)
|
22
18
|
end
|
19
|
+
default
|
23
20
|
end
|
24
21
|
|
25
|
-
def ensure_symbol!(
|
26
|
-
|
27
|
-
|
28
|
-
return
|
22
|
+
def ensure_symbol!(**opts)
|
23
|
+
return to_sym if opts.empty?
|
24
|
+
catch :wrong do
|
25
|
+
return EnsureIt.ensure_symbol(to_sym, **opts)
|
29
26
|
end
|
30
|
-
EnsureIt.raise_error(
|
31
|
-
|
32
|
-
**EnsureIt.ensure_symbol_error_options(**opts)
|
33
|
-
)
|
27
|
+
EnsureIt.raise_error(:ensure_symbol!,
|
28
|
+
**EnsureIt.ensure_symbol_error(**opts))
|
34
29
|
end
|
35
30
|
end
|
36
31
|
|
37
32
|
patch Symbol do
|
38
|
-
def ensure_symbol(default: nil,
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
else
|
43
|
-
default
|
33
|
+
def ensure_symbol(default: nil, **opts)
|
34
|
+
return self if opts.empty?
|
35
|
+
catch :wrong do
|
36
|
+
return EnsureIt.ensure_symbol(self, **opts)
|
44
37
|
end
|
38
|
+
default
|
45
39
|
end
|
46
40
|
|
47
|
-
def ensure_symbol!(default: nil,
|
48
|
-
|
49
|
-
|
50
|
-
return
|
41
|
+
def ensure_symbol!(default: nil, **opts)
|
42
|
+
return self if opts.empty?
|
43
|
+
catch :wrong do
|
44
|
+
return EnsureIt.ensure_symbol(self, **opts)
|
51
45
|
end
|
52
|
-
EnsureIt.raise_error(
|
53
|
-
|
54
|
-
|
46
|
+
EnsureIt.raise_error(:ensure_symbol!,
|
47
|
+
**EnsureIt.ensure_symbol_error(**opts))
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.ensure_symbol(sym, values: nil, downcase: nil, name_of: nil, **opts)
|
52
|
+
if name_of.nil?
|
53
|
+
value = downcase == true ? sym.to_s.downcase.to_sym : sym
|
54
|
+
else
|
55
|
+
value = EnsureIt::StringUtils.ensure_name(
|
56
|
+
sym.to_s, downcase: downcase, name_of: name_of, **opts
|
55
57
|
)
|
58
|
+
throw :wrong if value.nil?
|
59
|
+
value = value.to_sym
|
56
60
|
end
|
61
|
+
throw :wrong if values.is_a?(Array) && !values.include?(value)
|
62
|
+
value
|
57
63
|
end
|
58
64
|
|
59
|
-
def self.
|
60
|
-
unless opts.key?(
|
61
|
-
opts[:message] = '#{subject} should be'
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
65
|
+
def self.ensure_symbol_error(**opts)
|
66
|
+
unless opts.key?(:message)
|
67
|
+
opts[:message] = '#{subject} should be a Symbol or a String'
|
68
|
+
if opts.key?(:name_of)
|
69
|
+
opts[:message] << " and should be a name of #{opts[:name_of]}"
|
70
|
+
end
|
71
|
+
if opts[:values].is_a?(Array)
|
72
|
+
opts[:message] << " and should contained in #{opts[:values]}"
|
73
|
+
end
|
67
74
|
end
|
68
75
|
opts
|
69
76
|
end
|
data/lib/ensure_it/errors.rb
CHANGED
@@ -59,8 +59,8 @@ module EnsureIt
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
|
-
def self.raise_error(method_name, message: nil, error:
|
63
|
-
error =
|
62
|
+
def self.raise_error(method_name, message: nil, error: nil, **opts)
|
63
|
+
error = EnsureIt.config.error_class if error.nil? || !(error <= Exception)
|
64
64
|
error_msg = ErrorMessage.new(method_name, message, caller[1..-1])
|
65
65
|
# save message in backtrace in variables to not call getter
|
66
66
|
# methods of error_msg instance in raise call
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module EnsureIt
|
2
|
+
module StringUtils
|
3
|
+
NAME_TYPES = %i(local instance_variable class_variable setter getter
|
4
|
+
checker bang method class)
|
5
|
+
NAME_REGEXP = /\A
|
6
|
+
(?<class_access>@{1,2})?
|
7
|
+
(?<name>[a-z_][a-zA-Z_0-9]*)
|
8
|
+
(?<modifier>[?!=])?
|
9
|
+
\z/x
|
10
|
+
CLASS_NAME_REGEXP = /\A
|
11
|
+
[A-Z][a-zA-Z_0-9]*(?:::[A-Z][a-zA-Z_0-9]*)*
|
12
|
+
\z/x
|
13
|
+
CLASS_NAME_DOWNCASE_REGEXP = /\A
|
14
|
+
[a-z][a-zA-Z_0-9]*(?:\/[a-z][a-zA-Z_0-9]*)*
|
15
|
+
\z/x
|
16
|
+
|
17
|
+
using EnsureIt if ENSURE_IT_REFINED
|
18
|
+
|
19
|
+
def self.ensure_name(str, name_of: nil, **opts)
|
20
|
+
str = str.ensure_string!
|
21
|
+
name_of = name_of.ensure_symbol(
|
22
|
+
downcase: true,
|
23
|
+
values: NAME_TYPES,
|
24
|
+
default: NAME_TYPES[0]
|
25
|
+
)
|
26
|
+
if name_of == :class
|
27
|
+
m = CLASS_NAME_REGEXP.match(str)
|
28
|
+
if m.nil?
|
29
|
+
return nil if opts[:downcase] != true
|
30
|
+
m = CLASS_NAME_DOWNCASE_REGEXP.match(str)
|
31
|
+
return nil if m.nil?
|
32
|
+
str = str
|
33
|
+
.split('/')
|
34
|
+
.map { |x| x.split('_').map(&:capitalize).join }
|
35
|
+
.join('::')
|
36
|
+
end
|
37
|
+
if opts[:exist] == true
|
38
|
+
begin
|
39
|
+
Object.const_get(str)
|
40
|
+
rescue NameError
|
41
|
+
return nil
|
42
|
+
end
|
43
|
+
end
|
44
|
+
str
|
45
|
+
else
|
46
|
+
m = NAME_REGEXP.match(str)
|
47
|
+
return nil if m.nil?
|
48
|
+
case name_of
|
49
|
+
when :local, :getter then m[:name]
|
50
|
+
when :instance_variable then '@' + m[:name]
|
51
|
+
when :class_variable then '@@' + m[:name]
|
52
|
+
when :setter then m[:name] + '='
|
53
|
+
when :checker then m[:name] + '?'
|
54
|
+
when :bang then m[:name] + '!'
|
55
|
+
when :method then m[:name] + (m[:modifier] || '')
|
56
|
+
else m[:name]
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
data/lib/ensure_it/version.rb
CHANGED
data/spec/lib/config_spec.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe EnsureIt::Config do
|
4
|
-
describe '
|
4
|
+
describe '.errors' do
|
5
5
|
after { described_class.instance_variable_set(:@errors, nil) }
|
6
6
|
|
7
7
|
it 'gives :smart by default' do
|
@@ -14,7 +14,7 @@ describe EnsureIt::Config do
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
-
describe '
|
17
|
+
describe '.errors=' do
|
18
18
|
after { described_class.instance_variable_set(:@errors, nil) }
|
19
19
|
|
20
20
|
it 'allows to change value' do
|
@@ -27,16 +27,45 @@ describe EnsureIt::Config do
|
|
27
27
|
expect(described_class.errors).to eq :smart
|
28
28
|
end
|
29
29
|
end
|
30
|
+
|
31
|
+
describe '.error_class' do
|
32
|
+
after { described_class.instance_variable_set(:@error_class, nil) }
|
33
|
+
|
34
|
+
it 'gives EsnureIt::Error by default' do
|
35
|
+
expect(described_class.error_class).to eq EnsureIt::Error
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'calls setter if value given' do
|
39
|
+
expect(described_class).to receive(:error_class=).with(ArgumentError)
|
40
|
+
described_class.error_class ArgumentError
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe '.error_class=' do
|
45
|
+
after { described_class.instance_variable_set(:@error_class, nil) }
|
46
|
+
|
47
|
+
it 'allows to change value' do
|
48
|
+
described_class.error_class = ArgumentError
|
49
|
+
expect(described_class.error_class).to eq ArgumentError
|
50
|
+
end
|
51
|
+
|
52
|
+
it "doesn't change value to wrong classes" do
|
53
|
+
described_class.error_class = ArgumentError
|
54
|
+
described_class.error_class = Object
|
55
|
+
expect(described_class.error_class).to eq ArgumentError
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
30
59
|
end
|
31
60
|
|
32
61
|
describe EnsureIt do
|
33
|
-
describe '
|
62
|
+
describe '.config' do
|
34
63
|
it 'returns Config module' do
|
35
64
|
expect(described_class.config).to eq EnsureIt::Config
|
36
65
|
end
|
37
66
|
end
|
38
67
|
|
39
|
-
describe '
|
68
|
+
describe '.configure' do
|
40
69
|
it 'returns Config module' do
|
41
70
|
expect(described_class.config).to eq EnsureIt::Config
|
42
71
|
end
|
@@ -19,29 +19,27 @@ describe EnsureIt do
|
|
19
19
|
expect(call_for(obj)).to eq obj
|
20
20
|
end
|
21
21
|
|
22
|
-
it 'compacts array with compact
|
23
|
-
expect(call_for([1, nil, 2], compact
|
22
|
+
it 'compacts array with compact argument' do
|
23
|
+
expect(call_for([1, nil, 2], :compact)).to eq [1, 2]
|
24
24
|
end
|
25
25
|
|
26
|
-
it 'flattens array with flatten
|
27
|
-
expect(call_for([1, [2, 3], 4], flatten
|
26
|
+
it 'flattens array with flatten argument' do
|
27
|
+
expect(call_for([1, [2, 3], 4], :flatten)).to eq [1, 2, 3, 4]
|
28
28
|
end
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
end
|
30
|
+
it 'flattens and then sorts array with flatten and sort arguments' do
|
31
|
+
expect(
|
32
|
+
call_for([1, [5, 6], 4], :flatten, :sort)
|
33
|
+
).to eq [1, 4, 5, 6]
|
34
|
+
end
|
36
35
|
|
37
|
-
|
38
|
-
|
39
|
-
end
|
36
|
+
it 'sorts descending with sort_desc argument' do
|
37
|
+
expect(call_for([1, 5, 6, 4], :sort_desc)).to eq [6, 5, 4, 1]
|
40
38
|
end
|
41
39
|
|
42
40
|
it 'calls :ensure_* for each element' do
|
43
41
|
arr = ['s', nil, :v]
|
44
|
-
expect(call_for(arr, :ensure_symbol, compact
|
42
|
+
expect(call_for(arr, :ensure_symbol, :compact)).to eq [:s, :v]
|
45
43
|
end
|
46
44
|
|
47
45
|
it 'calls standard method for each element' do
|
@@ -53,6 +51,12 @@ describe EnsureIt do
|
|
53
51
|
arr = ['s', :v]
|
54
52
|
expect(call_for(arr, :ensure_string, :to_sym)).to eq [:s, :v]
|
55
53
|
end
|
54
|
+
|
55
|
+
it 'selects only values, specified in values option' do
|
56
|
+
expect(
|
57
|
+
call_for([1, 5, 6, 4], values: [1, 6, 8])
|
58
|
+
).to eq [1, 6]
|
59
|
+
end
|
56
60
|
end
|
57
61
|
|
58
62
|
describe '#ensure_array' do
|
@@ -21,6 +21,10 @@ describe EnsureIt do
|
|
21
21
|
it 'and checks for ancestors' do
|
22
22
|
expect(call_for(Array, Enumerable, Array)).to eq Array
|
23
23
|
end
|
24
|
+
|
25
|
+
it 'and converts string to class with string option' do
|
26
|
+
expect(call_for('Array', string: true)).to eq Array
|
27
|
+
end
|
24
28
|
end
|
25
29
|
|
26
30
|
describe '#ensure_class' do
|
@@ -33,6 +33,13 @@ describe EnsureIt do
|
|
33
33
|
expect(call_for(:teST, downcase: true)).to eq 'test'
|
34
34
|
expect(call_for('teST', downcase: true)).to eq 'test'
|
35
35
|
end
|
36
|
+
|
37
|
+
it 'and calls ensure_name with name_of option' do
|
38
|
+
expect(EnsureIt::StringUtils).to receive(:ensure_name).with(
|
39
|
+
'test', name_of: :setter, downcase: nil
|
40
|
+
).and_call_original
|
41
|
+
expect(call_for('test', name_of: :setter)).to eq 'test='
|
42
|
+
end
|
36
43
|
end
|
37
44
|
|
38
45
|
describe '#ensure_string' do
|
@@ -53,7 +60,7 @@ describe EnsureIt do
|
|
53
60
|
it 'raises correct error message with :numbers option' do
|
54
61
|
expect { call_for(nil, numbers: true) }.to raise_error(
|
55
62
|
EnsureIt::Error,
|
56
|
-
/should be a String
|
63
|
+
/should be a String or a Symbol or a Numeric/
|
57
64
|
)
|
58
65
|
end
|
59
66
|
end
|
@@ -31,6 +31,13 @@ describe EnsureIt do
|
|
31
31
|
expect(call_for(:teST, downcase: true)).to eq :test
|
32
32
|
expect(call_for('teST', downcase: true)).to eq :test
|
33
33
|
end
|
34
|
+
|
35
|
+
it 'and calls ensure_name with name_of option' do
|
36
|
+
expect(EnsureIt::StringUtils).to receive(:ensure_name).with(
|
37
|
+
'test', name_of: :setter, downcase: nil
|
38
|
+
).and_call_original
|
39
|
+
expect(call_for(:test, name_of: :setter)).to eq :test=
|
40
|
+
end
|
34
41
|
end
|
35
42
|
|
36
43
|
describe '#ensure_symbol' do
|
data/spec/lib/errors_spec.rb
CHANGED
@@ -10,11 +10,14 @@ end
|
|
10
10
|
describe EnsureIt do
|
11
11
|
before do
|
12
12
|
@errors = EnsureIt.config.errors
|
13
|
+
@error_class = EnsureIt.config.error_class
|
13
14
|
EnsureIt::Config.instance_variable_set(:@errors, nil)
|
15
|
+
EnsureIt::Config.instance_variable_set(:@error_class, nil)
|
14
16
|
end
|
15
17
|
|
16
18
|
after do
|
17
19
|
EnsureIt::Config.instance_variable_set(:@errors, @errors)
|
20
|
+
EnsureIt::Config.instance_variable_set(:@error_class, @error_class)
|
18
21
|
end
|
19
22
|
|
20
23
|
describe '.raise_error' do
|
@@ -30,6 +33,13 @@ describe EnsureIt do
|
|
30
33
|
}.to raise_error ArgumentError, 'test'
|
31
34
|
end
|
32
35
|
|
36
|
+
it 'raises error of class, specified with error_class=' do
|
37
|
+
EnsureIt.configure { |c| c.error_class = ArgumentError }
|
38
|
+
expect {
|
39
|
+
call_error(:test_method)
|
40
|
+
}.to raise_error ArgumentError
|
41
|
+
end
|
42
|
+
|
33
43
|
it 'raises error with callers backtrace' do
|
34
44
|
backtrace = nil
|
35
45
|
begin
|
@@ -0,0 +1,164 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe EnsureIt::StringUtils do
|
4
|
+
describe '.ensure_name' do
|
5
|
+
NAMES = %w(local @inst_var @@class_var setter= getter checker?
|
6
|
+
bang! Object)
|
7
|
+
|
8
|
+
if ENSURE_IT_REFINED != true
|
9
|
+
it 'checks str argument' do
|
10
|
+
str = 'str'
|
11
|
+
expect(str).to receive(:ensure_string!).and_call_original
|
12
|
+
described_class.ensure_name(str)
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'checks name_of option' do
|
16
|
+
str = 'str'
|
17
|
+
expect(str).to receive(:ensure_symbol).with(
|
18
|
+
downcase: true,
|
19
|
+
values: EnsureIt::StringUtils::NAME_TYPES,
|
20
|
+
default: EnsureIt::StringUtils::NAME_TYPES[0]
|
21
|
+
).and_call_original
|
22
|
+
described_class.ensure_name('str', name_of: str)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe 'name_of: :class' do
|
27
|
+
it 'rejects non-class-name strings' do
|
28
|
+
expect(
|
29
|
+
described_class.ensure_name('just text', name_of: :class)
|
30
|
+
).to be_nil
|
31
|
+
expect(
|
32
|
+
described_class.ensure_name('just_text', name_of: :class)
|
33
|
+
).to be_nil
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'accpets class-name strings' do
|
37
|
+
expect(
|
38
|
+
described_class.ensure_name('Namespace::SomeClass', name_of: :class)
|
39
|
+
).to eq 'Namespace::SomeClass'
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'accpets low-cased class-name strings with downcase option' do
|
43
|
+
expect(
|
44
|
+
described_class.ensure_name(
|
45
|
+
'low/cased_class', name_of: :class, downcase: true
|
46
|
+
)
|
47
|
+
).to eq 'Low::CasedClass'
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'rejects non-existent class names with exist option' do
|
51
|
+
expect(Object.const_defined?(:UnknownClass)).to be_false
|
52
|
+
expect(
|
53
|
+
described_class.ensure_name(
|
54
|
+
'UnknownClass', name_of: :class, exist: true
|
55
|
+
)
|
56
|
+
).to be_nil
|
57
|
+
expect(
|
58
|
+
described_class.ensure_name(
|
59
|
+
'unknown_class', name_of: :class, exist: true, downcase: true
|
60
|
+
)
|
61
|
+
).to be_nil
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'accepts exists classes with exist option' do
|
65
|
+
expect(
|
66
|
+
described_class.ensure_name('Object', name_of: :class, exist: true)
|
67
|
+
).to eq 'Object'
|
68
|
+
expect(
|
69
|
+
described_class.ensure_name(
|
70
|
+
'object', name_of: :class, exist: true, downcase: true
|
71
|
+
)
|
72
|
+
).to eq 'Object'
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
describe 'name_of: :local' do
|
77
|
+
it 'converts names to local variable name' do
|
78
|
+
expect(NAMES.map { |x|
|
79
|
+
described_class.ensure_name(x, name_of: :local)
|
80
|
+
}).to match_array(
|
81
|
+
%w(local inst_var class_var setter getter checker
|
82
|
+
bang) + [nil]
|
83
|
+
)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
describe 'name_of: :instance_variable' do
|
88
|
+
it 'converts names to instance variable name' do
|
89
|
+
expect(NAMES.map { |x|
|
90
|
+
described_class.ensure_name(x, name_of: :instance_variable)
|
91
|
+
}).to match_array(
|
92
|
+
%w(@local @inst_var @class_var @setter @getter @checker
|
93
|
+
@bang) + [nil]
|
94
|
+
)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
describe 'name_of: :class_variable' do
|
99
|
+
it 'converts names to class variable name' do
|
100
|
+
expect(NAMES.map { |x|
|
101
|
+
described_class.ensure_name(x, name_of: :class_variable)
|
102
|
+
}).to match_array(
|
103
|
+
%w(@@local @@inst_var @@class_var @@setter @@getter @@checker
|
104
|
+
@@bang) + [nil]
|
105
|
+
)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
describe 'name_of: :setter' do
|
110
|
+
it 'converts names to setter method name' do
|
111
|
+
expect(NAMES.map { |x|
|
112
|
+
described_class.ensure_name(x, name_of: :setter)
|
113
|
+
}).to match_array(
|
114
|
+
%w(local= inst_var= class_var= setter= getter= checker=
|
115
|
+
bang=) + [nil]
|
116
|
+
)
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
describe 'name_of: :getter' do
|
121
|
+
it 'converts names to getter method name' do
|
122
|
+
expect(NAMES.map { |x|
|
123
|
+
described_class.ensure_name(x, name_of: :getter)
|
124
|
+
}).to match_array(
|
125
|
+
%w(local inst_var class_var setter getter checker
|
126
|
+
bang) + [nil]
|
127
|
+
)
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
describe 'name_of: :checker' do
|
132
|
+
it 'converts names to checker method name' do
|
133
|
+
expect(NAMES.map { |x|
|
134
|
+
described_class.ensure_name(x, name_of: :checker)
|
135
|
+
}).to match_array(
|
136
|
+
%w(local? inst_var? class_var? setter? getter? checker?
|
137
|
+
bang?) + [nil]
|
138
|
+
)
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
describe 'name_of: :bang' do
|
143
|
+
it 'converts names to bang method name' do
|
144
|
+
expect(NAMES.map { |x|
|
145
|
+
described_class.ensure_name(x, name_of: :bang)
|
146
|
+
}).to match_array(
|
147
|
+
%w(local! inst_var! class_var! setter! getter! checker!
|
148
|
+
bang!) + [nil]
|
149
|
+
)
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
describe 'name_of: :method' do
|
154
|
+
it 'converts names to method name' do
|
155
|
+
expect(NAMES.map { |x|
|
156
|
+
described_class.ensure_name(x, name_of: :method)
|
157
|
+
}).to match_array(
|
158
|
+
%w(local inst_var class_var setter= getter checker?
|
159
|
+
bang!) + [nil]
|
160
|
+
)
|
161
|
+
end
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|