ensure_it 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|