admin_it 1.0.7 → 1.0.8
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/.ruby-version +1 -0
- data/README.md +6 -0
- data/lib/admin_it/context/collection_context.rb +5 -22
- data/lib/admin_it/context/context.rb +13 -34
- data/lib/admin_it/context/show_context.rb +8 -7
- data/lib/admin_it/context/single_context.rb +35 -33
- data/lib/admin_it/context/table_context.rb +18 -11
- data/lib/admin_it/context/tiles_context.rb +14 -14
- data/lib/admin_it/data/active_record.rb +0 -2
- data/lib/admin_it/field/field.rb +95 -23
- data/lib/admin_it/filters/field_filter.rb +4 -0
- data/lib/admin_it/filters/filter.rb +37 -14
- data/lib/admin_it/helpers/table.rb +13 -17
- data/lib/admin_it/resource.rb +58 -115
- data/lib/admin_it/shared.rb +64 -0
- data/lib/admin_it/version.rb +1 -1
- data/lib/admin_it.rb +7 -5
- data/lib/extend_it/array_of.rb +3 -3
- data/lib/extend_it/asserts.rb +5 -3
- data/lib/extend_it/{class.rb → base.rb} +29 -10
- data/lib/extend_it/callbacks.rb +7 -7
- data/lib/extend_it/config.rb +30 -0
- data/lib/extend_it/dsl.rb +223 -64
- data/lib/extend_it/ensures.rb +193 -0
- data/lib/extend_it.rb +1 -1
- data/spec/extend_it/config_spec.rb +52 -0
- data/spec/extend_it/dsl_spec.rb +149 -0
- data/spec/extend_it/ensures_spec.rb +39 -0
- data/spec/lib/context/collection_context_spec.rb +4 -2
- data/spec/lib/context/context_spec.rb +3 -1
- data/spec/lib/context/single_context_spec.rb +3 -2
- data/spec/lib/data/object_spec.rb +2 -2
- data/spec/lib/field_spec.rb +1 -56
- data/spec/lib/resource_spec.rb +1 -13
- data/spec/spec_helper.rb +7 -0
- data/spec/support/example_groups/context_example_group.rb +3 -3
- metadata +14 -11
- data/lib/admin_it/renderable.rb +0 -18
- data/lib/extend_it/refines.rb +0 -6
- data/lib/extend_it/symbolize.rb +0 -39
- data/spec/lib/definitions_spec.rb +0 -171
- data/spec/lib/utils_spec.rb +0 -39
data/lib/extend_it/dsl.rb
CHANGED
@@ -1,94 +1,253 @@
|
|
1
|
-
require File.join %w(extend_it
|
2
|
-
require File.join %w(extend_it symbolize)
|
3
|
-
|
4
|
-
using ExtendIt::Symbolize
|
1
|
+
require File.join %w(extend_it ensures)
|
5
2
|
|
6
3
|
module ExtendIt
|
7
4
|
module Dsl
|
8
|
-
|
9
|
-
|
10
|
-
def
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
5
|
+
using ExtendIt::Ensures if ExtendIt.config.use_refines?
|
6
|
+
|
7
|
+
def self.included(base)
|
8
|
+
base.extend(ClassMethods)
|
9
|
+
base.class_eval do
|
10
|
+
define_method :dsl_obj do
|
11
|
+
self.class.dsl.new(self)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.extended(base)
|
17
|
+
base.extend(ClassMethods)
|
18
|
+
base.define_singleton_method :dsl_obj do
|
19
|
+
dsl.new(self)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def dsl_eval(&block)
|
24
|
+
dsl_obj.instance_eval(&block) if block_given?
|
25
|
+
end
|
26
|
+
|
27
|
+
module ClassMethods
|
28
|
+
def dsl(&block)
|
29
|
+
if @dsl.nil?
|
30
|
+
parent = superclass.respond_to?(:dsl) ? [superclass.dsl] : []
|
31
|
+
end
|
32
|
+
@dsl ||= Class.new(*parent) do
|
33
|
+
extend DslMethods
|
34
|
+
|
35
|
+
def initialize(receiver)
|
36
|
+
if receiver.nil? || receiver.frozen?
|
37
|
+
fail(ArgumentError, 'DSL receiver should be non-frozen object')
|
38
|
+
end
|
39
|
+
@dsl_receiver = receiver
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
attr_reader :dsl_receiver
|
45
|
+
|
46
|
+
def dsl_get(var_name, default = nil)
|
47
|
+
var_name = var_name.ensure_instance_variable_name || fail(
|
48
|
+
ArgumentError, "Wrong `var_name` argument: #{var_name.inspect}"
|
49
|
+
)
|
50
|
+
if default.nil? && !block_given?
|
51
|
+
fail(ArgumentError, '`default` or block should be specified')
|
52
|
+
end
|
53
|
+
if dsl_receiver.instance_variable_defined?(var_name)
|
54
|
+
dsl_receiver.instance_variable_get(var_name)
|
19
55
|
else
|
20
|
-
|
56
|
+
default = yield if block_given?
|
57
|
+
dsl_receiver.instance_variable_set(var_name, default)
|
21
58
|
end
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
59
|
+
end
|
60
|
+
|
61
|
+
def dsl_set(var_name, value)
|
62
|
+
var_name = var_name.ensure_instance_variable_name || fail(
|
63
|
+
ArgumentError, "Wrong `var_name` argument: #{var_name.inspect}"
|
64
|
+
)
|
65
|
+
setter_name = var_name.ensure_setter_name
|
66
|
+
if dsl_receiver.respond_to?(setter_name)
|
67
|
+
dsl_receiver.send(setter_name, value)
|
28
68
|
else
|
29
|
-
|
30
|
-
instance_variable_set(var_name, obj)
|
69
|
+
dsl_receiver.instance_variable_set(var_name, value)
|
31
70
|
end
|
32
|
-
|
71
|
+
end
|
72
|
+
end
|
73
|
+
@dsl.class_eval(&block) if block_given?
|
74
|
+
@dsl
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
module DslMethods
|
79
|
+
def dsl_accessor(*names, default: nil, variable: nil, &setter)
|
80
|
+
names = names.ensure_symbols
|
81
|
+
variable = nil if names.size != 1
|
82
|
+
variable = variable.ensure_local_name unless variable.nil?
|
83
|
+
names.each do |name|
|
84
|
+
name = name.ensure_local_name || next
|
85
|
+
setter_name = name.ensure_setter_name
|
86
|
+
|
87
|
+
define_method setter_name do |*args|
|
88
|
+
obj =
|
89
|
+
if setter.nil?
|
90
|
+
default || args.first
|
91
|
+
else
|
92
|
+
dsl_receiver.instance_exec(*args, &setter)
|
93
|
+
end
|
94
|
+
dsl_set(variable || name, obj)
|
95
|
+
end
|
96
|
+
|
97
|
+
define_method name do |*args, &block|
|
33
98
|
obj = send(setter_name, *args)
|
34
|
-
obj.
|
99
|
+
obj.dsl_eval(&block) if !block.nil? && obj.is_a?(Dsl)
|
35
100
|
obj
|
36
101
|
end
|
37
102
|
end
|
38
103
|
end
|
39
|
-
end
|
40
104
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
105
|
+
def dsl_boolean(*names, default: true, variable: nil)
|
106
|
+
default = default == true
|
107
|
+
names = names.ensure_symbols
|
108
|
+
variable = nil if names.size != 1
|
109
|
+
variable = variable.ensure_local_name unless variable.nil?
|
110
|
+
names.each do |name|
|
111
|
+
name = name.ensure_local_name || next
|
112
|
+
setter_name = name.ensure_setter_name
|
113
|
+
|
114
|
+
define_method name do |value = nil|
|
115
|
+
send(setter_name, value.nil? ? default : value)
|
116
|
+
end
|
117
|
+
|
118
|
+
define_method setter_name do |value = default|
|
119
|
+
dsl_set(variable || name, value == true)
|
120
|
+
end
|
48
121
|
end
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
122
|
+
end
|
123
|
+
|
124
|
+
def dsl_block(*names, variable: nil)
|
125
|
+
names = names.ensure_symbols
|
126
|
+
variable = nil if names.size != 1
|
127
|
+
variable = variable.ensure_local_name unless variable.nil?
|
128
|
+
names.each do |name|
|
129
|
+
name = name.ensure_local_name || next
|
130
|
+
define_method name do |&block|
|
131
|
+
return if block.nil?
|
132
|
+
dsl_set(variable || name, block)
|
54
133
|
end
|
55
134
|
end
|
56
135
|
end
|
57
|
-
end
|
58
136
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
#
|
68
|
-
|
137
|
+
def dsl_use_hash(hash_name, variable: nil)
|
138
|
+
hash_name = hash_name.ensure_local_name || fail(
|
139
|
+
ArgumentError,
|
140
|
+
'`hash_name` argument for `dsl_use_hash` should be a Symbol ' \
|
141
|
+
'or a String'
|
142
|
+
)
|
143
|
+
variable = variable.ensure_local_name unless variable.nil?
|
144
|
+
|
145
|
+
define_method "use_#{hash_name}" do |*names, except: nil|
|
146
|
+
hash = dsl_get(variable || hash_name, {})
|
147
|
+
# puts "---< #{names}, except: #{except} #{hash.inspect}"
|
148
|
+
keys = hash.keys
|
149
|
+
names = Dsl.expand_asterisk(names.ensure_symbols, keys)
|
150
|
+
# puts "---> #{names}"
|
151
|
+
names = names.empty? ? keys : names & keys
|
152
|
+
# puts "---> #{names}"
|
153
|
+
names -= except.ensure_symbols
|
154
|
+
# puts "---> #{names}"
|
155
|
+
# puts ''
|
156
|
+
hash.replace(Hash[names.map { |n| [n, hash[n]] }])
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
def dsl_hash_of_objects(hash_name, variable: nil, single: nil, &creator)
|
161
|
+
unless block_given?
|
162
|
+
fail(
|
163
|
+
ArgumentError,
|
164
|
+
'`dsl_hash_of_objects` requires creator block to be present'
|
165
|
+
)
|
166
|
+
end
|
167
|
+
hash_name = hash_name.ensure_local_name || fail(
|
168
|
+
ArgumentError,
|
169
|
+
'`hash_name` argument for `dsl_hash_of_objects` should be' \
|
170
|
+
' a Symbol or a String'
|
171
|
+
)
|
172
|
+
variable = variable.ensure_local_name unless variable.nil?
|
173
|
+
|
174
|
+
unless single.nil?
|
175
|
+
single = single.ensure_local_name || fail(
|
176
|
+
ArgumentError,
|
177
|
+
'`single` option for `dsl_hash_of_objects` should be' \
|
178
|
+
' a Symbol or a String or nil'
|
179
|
+
)
|
180
|
+
define_method single do |name, **opts, &block|
|
181
|
+
name = name.ensure_symbol
|
182
|
+
unless name.nil?
|
183
|
+
hash = dsl_get(variable || hash_name, {})
|
184
|
+
obj = hash[name] ||=
|
185
|
+
dsl_receiver.instance_exec(name, **opts, &creator)
|
186
|
+
obj.dsl_eval(&block) if !block.nil? && obj.is_a?(Dsl)
|
69
187
|
end
|
70
|
-
else
|
71
|
-
instance_variable_set(var_name, block)
|
72
188
|
end
|
73
189
|
end
|
190
|
+
|
191
|
+
define_method hash_name do |*names, **opts, &block|
|
192
|
+
hash = dsl_get(variable || hash_name, {})
|
193
|
+
Dsl.expand_asterisk(names.ensure_symbols, hash.keys).each do |name|
|
194
|
+
obj = hash[name] ||=
|
195
|
+
dsl_receiver.instance_exec(name, **opts, &creator)
|
196
|
+
obj.dsl_eval(&block) if !block.nil? && obj.is_a?(Dsl)
|
197
|
+
end
|
198
|
+
end
|
199
|
+
|
200
|
+
dsl_use_hash(hash_name, variable: variable)
|
74
201
|
end
|
75
202
|
end
|
76
203
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
204
|
+
protected
|
205
|
+
|
206
|
+
def self.expand_asterisk(arr, keys)
|
207
|
+
return arr unless arr.include?(:*)
|
208
|
+
arr.map { |a| a == :* ? keys - arr : a }.flatten
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
212
|
+
module DslModule
|
213
|
+
def self.incuded(base)
|
214
|
+
fail RuntimeError, 'DslModule can be only extended by other modules'
|
215
|
+
end
|
216
|
+
|
217
|
+
def self.extended(base)
|
218
|
+
unless base.is_a?(Module)
|
219
|
+
fail RuntimeError, 'DslModule can be only extended by modules'
|
220
|
+
end
|
221
|
+
|
222
|
+
base.define_singleton_method :included do |superbase|
|
223
|
+
if @included.is_a?(Array)
|
224
|
+
@included.each { |i| superbase.instance_eval(&i) }
|
85
225
|
end
|
86
|
-
|
87
|
-
|
88
|
-
names -= except.ensure_symbols
|
226
|
+
if @dsl.is_a?(Array) && superbase.respond_to?(:dsl)
|
227
|
+
@dsl.each { |d| superbase.dsl(&d) }
|
89
228
|
end
|
90
|
-
hash.delete_if { |k, v| !names.include?(k) }
|
91
229
|
end
|
230
|
+
|
231
|
+
base.define_singleton_method :extended do |superbase|
|
232
|
+
if @extended.is_a?(Array)
|
233
|
+
@extended.each { |e| superbase.instance_eval(&e) }
|
234
|
+
end
|
235
|
+
if @dsl.is_a?(Array) && superbase.respond_to?(:dsl)
|
236
|
+
@dsl.each { |d| superbase.dsl(&d) }
|
237
|
+
end
|
238
|
+
end
|
239
|
+
end
|
240
|
+
|
241
|
+
def included(&block)
|
242
|
+
(@included ||= []) << block if block_given?
|
243
|
+
end
|
244
|
+
|
245
|
+
def extended(&block)
|
246
|
+
(@extended ||= []) << block if block_given?
|
247
|
+
end
|
248
|
+
|
249
|
+
def dsl(&block)
|
250
|
+
(@dsl ||= []) << block if block_given?
|
92
251
|
end
|
93
252
|
end
|
94
253
|
end
|
@@ -0,0 +1,193 @@
|
|
1
|
+
module ExtendIt
|
2
|
+
module Ensures
|
3
|
+
VAR_REGEXP = /\A
|
4
|
+
(?<class_access>@{1,2})?
|
5
|
+
(?<name>[a-z_][a-zA-Z_0-9]*)
|
6
|
+
(?<modifier>[?!=])?
|
7
|
+
\z/x
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
if ExtendIt.config.use_refines?
|
12
|
+
module ExtendIt
|
13
|
+
module Ensures
|
14
|
+
refine Object do
|
15
|
+
def ensure_symbol; end
|
16
|
+
def ensure_instance_variable_name; end
|
17
|
+
def ensure_setter_name; end
|
18
|
+
def ensure_checker_name; end
|
19
|
+
def ensure_bang_name; end
|
20
|
+
def ensure_local_name; end
|
21
|
+
end
|
22
|
+
|
23
|
+
refine String do
|
24
|
+
def ensure_symbol
|
25
|
+
to_sym
|
26
|
+
end
|
27
|
+
|
28
|
+
def ensure_symbols
|
29
|
+
[to_sym]
|
30
|
+
end
|
31
|
+
|
32
|
+
def ensure_instance_variable_name
|
33
|
+
matches = VAR_REGEXP.match(self)
|
34
|
+
matches.nil? ? nil : "@#{matches[:name]}".to_sym
|
35
|
+
end
|
36
|
+
|
37
|
+
def ensure_setter_name
|
38
|
+
matches = VAR_REGEXP.match(self)
|
39
|
+
matches.nil? ? nil : "#{matches[:name]}=".to_sym
|
40
|
+
end
|
41
|
+
|
42
|
+
def ensure_checker_name
|
43
|
+
matches = VAR_REGEXP.match(self)
|
44
|
+
matches.nil? ? nil : "#{matches[:name]}?".to_sym
|
45
|
+
end
|
46
|
+
|
47
|
+
def ensure_bang_name
|
48
|
+
matches = VAR_REGEXP.match(self)
|
49
|
+
matches.nil? ? nil : "#{matches[:name]}!".to_sym
|
50
|
+
end
|
51
|
+
|
52
|
+
def ensure_local_name
|
53
|
+
matches = VAR_REGEXP.match(self)
|
54
|
+
matches.nil? ? nil : matches[:name].to_sym
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
refine Symbol do
|
59
|
+
def ensure_symbol
|
60
|
+
self
|
61
|
+
end
|
62
|
+
|
63
|
+
def ensure_symbols
|
64
|
+
[self]
|
65
|
+
end
|
66
|
+
|
67
|
+
def ensure_instance_variable_name
|
68
|
+
matches = VAR_REGEXP.match(to_s)
|
69
|
+
matches.nil? ? nil : "@#{matches[:name]}".to_sym
|
70
|
+
end
|
71
|
+
|
72
|
+
def ensure_setter_name
|
73
|
+
matches = VAR_REGEXP.match(to_s)
|
74
|
+
matches.nil? ? nil : "#{matches[:name]}=".to_sym
|
75
|
+
end
|
76
|
+
|
77
|
+
def ensure_checker_name
|
78
|
+
matches = VAR_REGEXP.match(to_s)
|
79
|
+
matches.nil? ? nil : "#{matches[:name]}?".to_sym
|
80
|
+
end
|
81
|
+
|
82
|
+
def ensure_bang_name
|
83
|
+
matches = VAR_REGEXP.match(to_s)
|
84
|
+
matches.nil? ? nil : "#{matches[:name]}!".to_sym
|
85
|
+
end
|
86
|
+
|
87
|
+
def ensure_local_name
|
88
|
+
matches = VAR_REGEXP.match(to_s)
|
89
|
+
matches.nil? ? nil : matches[:name].to_sym
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
refine Array do
|
94
|
+
def ensure_symbols
|
95
|
+
flatten.map { |x| x.ensure_symbol }.compact
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
else
|
101
|
+
module ExtendIt
|
102
|
+
module Ensures; end
|
103
|
+
end
|
104
|
+
|
105
|
+
class Object
|
106
|
+
def ensure_symbol; end
|
107
|
+
def ensure_instance_variable_name; end
|
108
|
+
def ensure_setter_name; end
|
109
|
+
def ensure_checker_name; end
|
110
|
+
def ensure_bang_name; end
|
111
|
+
def ensure_local_name; end
|
112
|
+
|
113
|
+
def ensure_symbols
|
114
|
+
[]
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
class String
|
119
|
+
def ensure_symbol
|
120
|
+
to_sym
|
121
|
+
end
|
122
|
+
|
123
|
+
def ensure_symbols
|
124
|
+
[to_sym]
|
125
|
+
end
|
126
|
+
|
127
|
+
def ensure_instance_variable_name
|
128
|
+
matches = ExtendIt::Ensures::VAR_REGEXP.match(self)
|
129
|
+
matches.nil? ? nil : "@#{matches[:name]}".to_sym
|
130
|
+
end
|
131
|
+
|
132
|
+
def ensure_setter_name
|
133
|
+
matches = ExtendIt::Ensures::VAR_REGEXP.match(self)
|
134
|
+
matches.nil? ? nil : "#{matches[:name]}=".to_sym
|
135
|
+
end
|
136
|
+
|
137
|
+
def ensure_checker_name
|
138
|
+
matches = ExtendIt::Ensures::VAR_REGEXP.match(self)
|
139
|
+
matches.nil? ? nil : "#{matches[:name]}?".to_sym
|
140
|
+
end
|
141
|
+
|
142
|
+
def ensure_bang_name
|
143
|
+
matches = ExtendIt::Ensures::VAR_REGEXP.match(self)
|
144
|
+
matches.nil? ? nil : "#{matches[:name]}!".to_sym
|
145
|
+
end
|
146
|
+
|
147
|
+
def ensure_local_name
|
148
|
+
matches = ExtendIt::Ensures::VAR_REGEXP.match(self)
|
149
|
+
matches.nil? ? nil : matches[:name].to_sym
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
class Symbol
|
154
|
+
def ensure_symbol
|
155
|
+
self
|
156
|
+
end
|
157
|
+
|
158
|
+
def ensure_symbols
|
159
|
+
[self]
|
160
|
+
end
|
161
|
+
|
162
|
+
def ensure_instance_variable_name
|
163
|
+
matches = ExtendIt::Ensures::VAR_REGEXP.match(to_s)
|
164
|
+
matches.nil? ? nil : "@#{matches[:name]}".to_sym
|
165
|
+
end
|
166
|
+
|
167
|
+
def ensure_setter_name
|
168
|
+
matches = ExtendIt::Ensures::VAR_REGEXP.match(to_s)
|
169
|
+
matches.nil? ? nil : "#{matches[:name]}=".to_sym
|
170
|
+
end
|
171
|
+
|
172
|
+
def ensure_checker_name
|
173
|
+
matches = ExtendIt::Ensures::VAR_REGEXP.match(to_s)
|
174
|
+
matches.nil? ? nil : "#{matches[:name]}?".to_sym
|
175
|
+
end
|
176
|
+
|
177
|
+
def ensure_bang_name
|
178
|
+
matches = ExtendIt::Ensures::VAR_REGEXP.match(to_s)
|
179
|
+
matches.nil? ? nil : "#{matches[:name]}!".to_sym
|
180
|
+
end
|
181
|
+
|
182
|
+
def ensure_local_name
|
183
|
+
matches = ExtendIt::Ensures::VAR_REGEXP.match(to_s)
|
184
|
+
matches.nil? ? nil : matches[:name].to_sym
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
class Array
|
189
|
+
def ensure_symbols
|
190
|
+
flatten.map { |x| x.ensure_symbol }.compact
|
191
|
+
end
|
192
|
+
end
|
193
|
+
end
|
data/lib/extend_it.rb
CHANGED
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ExtendIt::Config do
|
4
|
+
before do
|
5
|
+
@tmp_use_refines = described_class.instance_variable_get(:@use_refines)
|
6
|
+
described_class.instance_variable_set(:@use_refines, nil)
|
7
|
+
end
|
8
|
+
|
9
|
+
after do
|
10
|
+
described_class.instance_variable_set(:@use_refines, @tmp_use_refines)
|
11
|
+
end
|
12
|
+
|
13
|
+
describe '::use_refines' do
|
14
|
+
it 'sets to false as default' do
|
15
|
+
expect(described_class.use_refines).to be_false
|
16
|
+
end
|
17
|
+
|
18
|
+
if RUBY_VERSION >= '2.1.0'
|
19
|
+
it 'sets value from argument' do
|
20
|
+
described_class.use_refines(true)
|
21
|
+
expect(described_class.use_refines).to be_true
|
22
|
+
end
|
23
|
+
else
|
24
|
+
it 'avoids of setting true value' do
|
25
|
+
expect {
|
26
|
+
described_class.use_refines(true)
|
27
|
+
}.to raise_error RuntimeError
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe '::use_refines=' do
|
33
|
+
if RUBY_VERSION >= '2.1.0'
|
34
|
+
it 'sets value from argument' do
|
35
|
+
described_class.use_refines = true
|
36
|
+
expect(described_class.use_refines).to be_true
|
37
|
+
end
|
38
|
+
else
|
39
|
+
it 'avoids of setting true value' do
|
40
|
+
expect {
|
41
|
+
described_class.use_refines = true
|
42
|
+
}.to raise_error RuntimeError
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe '::use_refines?' do
|
48
|
+
it 'sets to false as default' do
|
49
|
+
expect(described_class.use_refines?).to be_false
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|