admin_it 1.0.11 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Gemfile +8 -1
- data/README.md +4 -2
- data/admin_it.gemspec +1 -0
- data/lib/admin_it.rb +7 -5
- data/lib/admin_it/actions/action.rb +5 -2
- data/lib/admin_it/config.rb +1 -0
- data/lib/admin_it/context/collection_context.rb +10 -4
- data/lib/admin_it/context/context.rb +12 -13
- data/lib/admin_it/context/show_context.rb +6 -5
- data/lib/admin_it/context/single_context.rb +19 -8
- data/lib/admin_it/context/table_context.rb +9 -7
- data/lib/admin_it/context/tiles_context.rb +1 -0
- data/lib/admin_it/controller.rb +3 -1
- data/lib/admin_it/data.rb +4 -2
- data/lib/admin_it/data/active_record.rb +10 -301
- data/lib/admin_it/data/active_record/collection_context.rb +47 -0
- data/lib/admin_it/data/active_record/field.rb +64 -0
- data/lib/admin_it/data/active_record/filter.rb +36 -0
- data/lib/admin_it/data/active_record/resource.rb +66 -0
- data/lib/admin_it/data/active_record/single_context.rb +102 -0
- data/lib/admin_it/data/data_behavior.rb +2 -0
- data/lib/admin_it/data/hash.rb +3 -0
- data/lib/admin_it/data/mongoid.rb +14 -0
- data/lib/admin_it/data/mongoid/field.rb +58 -0
- data/lib/admin_it/data/mongoid/resource.rb +67 -0
- data/lib/admin_it/data/object.rb +3 -0
- data/lib/admin_it/engine.rb +4 -1
- data/lib/admin_it/env.rb +21 -2
- data/lib/admin_it/field/field.rb +15 -26
- data/lib/admin_it/filters/field_filter.rb +1 -0
- data/lib/admin_it/filters/filter.rb +8 -13
- data/lib/admin_it/filters/value_filter.rb +1 -0
- data/lib/admin_it/helpers.rb +2 -0
- data/lib/admin_it/helpers/field.rb +3 -3
- data/lib/admin_it/helpers/input.rb +1 -0
- data/lib/admin_it/helpers/page.rb +2 -0
- data/lib/admin_it/helpers/table.rb +12 -8
- data/lib/admin_it/helpers/tiles.rb +2 -0
- data/lib/admin_it/helpers/toolbar.rb +4 -0
- data/lib/admin_it/helpers/top_menu.rb +3 -0
- data/lib/admin_it/resource.rb +16 -21
- data/lib/admin_it/version.rb +1 -1
- data/lib/extend_it.rb +8 -4
- data/lib/extend_it/array_of.rb +12 -10
- data/lib/extend_it/base.rb +9 -8
- data/lib/extend_it/callbacks.rb +11 -12
- data/lib/extend_it/dsl.rb +33 -44
- data/spec/extend_it/dsl_spec.rb +21 -32
- data/spec/lib/data/mongoid/field_spec.rb +28 -0
- data/spec/lib/data/mongoid/resource_spec.rb +50 -0
- data/spec/spec_helper.rb +8 -3
- data/spec/support/module_helpers.rb +20 -0
- metadata +30 -13
- data/.ruby-version +0 -1
- data/lib/admin_it/definitions.rb +0 -89
- data/lib/admin_it/utils.rb +0 -21
- data/lib/extend_it/asserts.rb +0 -40
- data/lib/extend_it/caller.rb +0 -35
- data/lib/extend_it/config.rb +0 -30
- data/lib/extend_it/ensures.rb +0 -193
- data/spec/extend_it/config_spec.rb +0 -52
- data/spec/extend_it/ensures_spec.rb +0 -39
data/lib/admin_it/version.rb
CHANGED
data/lib/extend_it.rb
CHANGED
@@ -1,5 +1,9 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
if !defined?(EnsureIt) && RUBY_VERSION >= '2.1.0'
|
2
|
+
require 'ensure_it_refined'
|
3
|
+
else
|
4
|
+
require 'ensure_it'
|
5
|
+
end
|
5
6
|
|
7
|
+
EnsureIt.configure do |config|
|
8
|
+
config.error_class = ArgumentError
|
9
|
+
end
|
data/lib/extend_it/array_of.rb
CHANGED
@@ -1,10 +1,7 @@
|
|
1
1
|
require 'forwardable'
|
2
|
-
require File.join %w(extend_it ensures)
|
3
|
-
require File.join %w(extend_it asserts)
|
4
|
-
|
5
|
-
using ExtendIt::Ensures if ExtendIt.config.use_refines?
|
6
2
|
|
7
3
|
module ExtendIt
|
4
|
+
#
|
8
5
|
module ArrayOf
|
9
6
|
def array_of(entity_class, &block)
|
10
7
|
array_name = "ArrayOf#{entity_class.name.split('::').last}"
|
@@ -19,8 +16,9 @@ module ExtendIt
|
|
19
16
|
const_set(array_name, array_class)
|
20
17
|
end
|
21
18
|
|
19
|
+
#
|
22
20
|
module ArrayClassMethods
|
23
|
-
|
21
|
+
using EnsureIt if ENSURE_IT_REFINED
|
24
22
|
|
25
23
|
attr_reader :scopes, :finder
|
26
24
|
|
@@ -37,27 +35,31 @@ module ExtendIt
|
|
37
35
|
end
|
38
36
|
|
39
37
|
def scope(*names, &block)
|
40
|
-
names.flatten
|
41
|
-
|
38
|
+
names = names.ensure_array(:flatten, :ensure_symbol, :compact, :uniq)
|
39
|
+
names.each do |name|
|
42
40
|
@scopes[name] = block.nil? ? proc { |e| e.send(name) } : block
|
43
41
|
str = name.to_s
|
44
42
|
if str[-1] == '?'
|
45
|
-
@scopes[str[0..-2].to_sym] =
|
43
|
+
@scopes[str[0..-2].to_sym] =
|
44
|
+
block.nil? ? proc { |e| e.send(name) } : block
|
46
45
|
end
|
47
46
|
end
|
48
47
|
end
|
49
48
|
|
50
49
|
def find_by(name, &block)
|
51
|
-
|
50
|
+
name = name.ensure_symbol!
|
52
51
|
@finder = block.nil? ? proc { |e| e.send(name) } : block
|
53
52
|
end
|
54
53
|
|
55
|
-
def
|
54
|
+
def finder?
|
56
55
|
!@finder.nil?
|
57
56
|
end
|
58
57
|
end
|
59
58
|
|
59
|
+
#
|
60
60
|
module ArrayMethods
|
61
|
+
using EnsureIt if ENSURE_IT_REFINED
|
62
|
+
|
61
63
|
def initialize(*arr)
|
62
64
|
@array = self.class.select(arr.flatten)
|
63
65
|
super(@array)
|
data/lib/extend_it/base.rb
CHANGED
@@ -1,8 +1,7 @@
|
|
1
|
-
require File.join %w(extend_it ensures)
|
2
|
-
|
3
1
|
module ExtendIt
|
2
|
+
#
|
4
3
|
module Base
|
5
|
-
using
|
4
|
+
using EnsureIt if ENSURE_IT_REFINED
|
6
5
|
|
7
6
|
def self.extended(base)
|
8
7
|
base.instance_eval do
|
@@ -22,7 +21,8 @@ module ExtendIt
|
|
22
21
|
end
|
23
22
|
|
24
23
|
def attr_checker(*names)
|
25
|
-
names.
|
24
|
+
names = names.ensure_array(:flatten, :ensure_symbol, :compact, :uniq)
|
25
|
+
names.each do |name|
|
26
26
|
define_method "#{name}?" do
|
27
27
|
instance_variable_get("@#{name}") == true
|
28
28
|
end
|
@@ -36,7 +36,8 @@ module ExtendIt
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def inherited_class_reader(*names)
|
39
|
-
names.
|
39
|
+
names = names.ensure_array(:flatten, :ensure_symbol, :compact, :uniq)
|
40
|
+
names.each do |name|
|
40
41
|
var = "@#{name}"
|
41
42
|
define_singleton_method(name) do
|
42
43
|
p = parents.find { |parent| parent.instance_variable_defined?(var) }
|
@@ -46,10 +47,10 @@ module ExtendIt
|
|
46
47
|
end
|
47
48
|
|
48
49
|
def class_attr_reader(*attrs)
|
49
|
-
attrs.
|
50
|
-
attr_name.
|
50
|
+
attrs.ensure_array(:flatten).each do |attr_name|
|
51
|
+
attr_name.ensure_symbol(name_of: :local) || next
|
51
52
|
next if instance_methods.include?(attr_name)
|
52
|
-
var_name = attr_name.
|
53
|
+
var_name = attr_name.ensure_symbol(name_of: :instance_variable)
|
53
54
|
if methods.include?(attr_name)
|
54
55
|
define_method(attr_name) { self.class.send(attr_name) }
|
55
56
|
else
|
data/lib/extend_it/callbacks.rb
CHANGED
@@ -1,35 +1,33 @@
|
|
1
|
-
require File.join %w(extend_it ensures)
|
2
1
|
require File.join %w(extend_it base)
|
3
2
|
|
4
3
|
module ExtendIt
|
4
|
+
#
|
5
5
|
module Callbacks
|
6
|
-
using
|
6
|
+
using EnsureIt if EnsureIt.refined?
|
7
7
|
|
8
8
|
CALLBACKS = %i(before after around)
|
9
9
|
|
10
10
|
def self.included(base)
|
11
|
-
unless base.is_a?(Class)
|
12
|
-
fail RuntimeError, 'Can be included in classes only'
|
13
|
-
end
|
11
|
+
fail 'Can be included in classes only' unless base.is_a?(Class)
|
14
12
|
unless (class << base; self end).included_modules.include?(Base)
|
15
|
-
fail
|
13
|
+
fail "#{base.name} should extend ExtendIt::Base"
|
16
14
|
end
|
17
15
|
base.extend(ClassMethods)
|
18
16
|
end
|
19
17
|
|
20
18
|
def self.extended(base)
|
21
|
-
fail
|
19
|
+
fail 'This module can\'t be extended'
|
22
20
|
end
|
23
21
|
|
24
22
|
def run_callbacks(*names, arguments: [], original_context: false)
|
25
23
|
# sanitize arguments
|
26
|
-
arguments =
|
27
|
-
arguments = [arguments] unless arguments.is_a?(Array)
|
24
|
+
arguments = arguments.ensure_array(make: true)
|
28
25
|
|
29
26
|
parents = self.class.parents
|
30
27
|
parents_rev = parents.reverse
|
31
28
|
|
32
|
-
names.
|
29
|
+
names = names.ensure_array(:flatten, :ensure_symbol, :compact, :uniq)
|
30
|
+
names.each do |name|
|
33
31
|
around = []
|
34
32
|
around_name = "@around_#{name}".to_sym
|
35
33
|
var_name = "@before_#{name}".to_sym
|
@@ -78,12 +76,13 @@ module ExtendIt
|
|
78
76
|
end
|
79
77
|
end
|
80
78
|
|
79
|
+
#
|
81
80
|
module ClassMethods
|
82
81
|
def define_callbacks(*names, callbacks: [:before, :after])
|
83
82
|
callbacks = [:before, :after] unless callbacks.is_a?(Array)
|
84
|
-
callbacks
|
83
|
+
callbacks = callbacks.ensure_array(values: CALLBACKS)
|
84
|
+
names = names.ensure_array(:flatten, :ensure_symbol, :compact, :uniq)
|
85
85
|
names.each do |name|
|
86
|
-
name = name.ensure_symbol || next
|
87
86
|
callbacks.each do |cb|
|
88
87
|
cb_name = "#{cb}_#{name}".to_sym
|
89
88
|
var_name = "@#{cb_name}".to_sym
|
data/lib/extend_it/dsl.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
#
|
3
2
|
module ExtendIt
|
4
|
-
|
5
|
-
using ExtendIt::Ensures if ExtendIt.config.use_refines?
|
3
|
+
using EnsureIt if EnsureIt.refined?
|
6
4
|
|
5
|
+
#
|
6
|
+
module Dsl
|
7
7
|
def self.included(base)
|
8
8
|
base.extend(ClassMethods)
|
9
9
|
base.class_eval do
|
@@ -24,6 +24,7 @@ module ExtendIt
|
|
24
24
|
dsl_obj.instance_eval(&block) if block_given?
|
25
25
|
end
|
26
26
|
|
27
|
+
#
|
27
28
|
module ClassMethods
|
28
29
|
def dsl(&block)
|
29
30
|
if @dsl.nil?
|
@@ -44,9 +45,7 @@ module ExtendIt
|
|
44
45
|
attr_reader :dsl_receiver
|
45
46
|
|
46
47
|
def dsl_get(var_name, default = nil)
|
47
|
-
var_name = var_name.
|
48
|
-
ArgumentError, "Wrong `var_name` argument: #{var_name.inspect}"
|
49
|
-
)
|
48
|
+
var_name = var_name.ensure_symbol!(name_of: :instance_variable)
|
50
49
|
if default.nil? && !block_given?
|
51
50
|
fail(ArgumentError, '`default` or block should be specified')
|
52
51
|
end
|
@@ -59,10 +58,8 @@ module ExtendIt
|
|
59
58
|
end
|
60
59
|
|
61
60
|
def dsl_set(var_name, value)
|
62
|
-
var_name = var_name.
|
63
|
-
|
64
|
-
)
|
65
|
-
setter_name = var_name.ensure_setter_name
|
61
|
+
var_name = var_name.ensure_symbol!(name_of: :instance_variable)
|
62
|
+
setter_name = var_name.ensure_symbol!(name_of: :setter)
|
66
63
|
if dsl_receiver.respond_to?(setter_name)
|
67
64
|
dsl_receiver.send(setter_name, value)
|
68
65
|
else
|
@@ -75,14 +72,15 @@ module ExtendIt
|
|
75
72
|
end
|
76
73
|
end
|
77
74
|
|
75
|
+
#
|
78
76
|
module DslMethods
|
79
77
|
def dsl_accessor(*names, default: nil, variable: nil, &setter)
|
80
|
-
names = names.
|
78
|
+
names = names.ensure_array(:flatten, :compact, :uniq)
|
81
79
|
variable = nil if names.size != 1
|
82
|
-
variable = variable.
|
80
|
+
variable = variable.ensure_symbol(name_of: :local)
|
83
81
|
names.each do |name|
|
84
|
-
name = name.
|
85
|
-
setter_name = name.
|
82
|
+
name = name.ensure_symbol(name_of: :getter) || next
|
83
|
+
setter_name = name.ensure_symbol(name_of: :setter) || next
|
86
84
|
|
87
85
|
define_method setter_name do |*args|
|
88
86
|
obj =
|
@@ -104,12 +102,12 @@ module ExtendIt
|
|
104
102
|
|
105
103
|
def dsl_boolean(*names, default: true, variable: nil)
|
106
104
|
default = default == true
|
107
|
-
names = names.
|
105
|
+
names = names.ensure_array(:flatten, :compact, :uniq)
|
108
106
|
variable = nil if names.size != 1
|
109
|
-
variable = variable.
|
107
|
+
variable = variable.ensure_symbol(name_of: :local)
|
110
108
|
names.each do |name|
|
111
|
-
name = name.
|
112
|
-
setter_name = name.
|
109
|
+
name = name.ensure_symbol(name_of: :getter) || next
|
110
|
+
setter_name = name.ensure_symbol(name_of: :setter) || next
|
113
111
|
|
114
112
|
define_method name do |value = nil|
|
115
113
|
send(setter_name, value.nil? ? default : value)
|
@@ -122,11 +120,11 @@ module ExtendIt
|
|
122
120
|
end
|
123
121
|
|
124
122
|
def dsl_block(*names, variable: nil)
|
125
|
-
names = names.
|
123
|
+
names = names.ensure_array(:flatten, :compact, :uniq)
|
126
124
|
variable = nil if names.size != 1
|
127
|
-
variable = variable.
|
125
|
+
variable = variable.ensure_symbol(name_of: :local)
|
128
126
|
names.each do |name|
|
129
|
-
name = name.
|
127
|
+
name = name.ensure_symbol(name_of: :getter) || next
|
130
128
|
define_method name do |&block|
|
131
129
|
return if block.nil?
|
132
130
|
dsl_set(variable || name, block)
|
@@ -135,19 +133,16 @@ module ExtendIt
|
|
135
133
|
end
|
136
134
|
|
137
135
|
def dsl_use_hash(hash_name, variable: nil)
|
138
|
-
hash_name = hash_name.
|
139
|
-
|
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?
|
136
|
+
hash_name = hash_name.ensure_symbol!(name_of: :local)
|
137
|
+
variable = variable.ensure_symbol(name_of: :local)
|
144
138
|
|
145
139
|
define_method "use_#{hash_name}" do |*names, except: nil|
|
146
140
|
hash = dsl_get(variable || hash_name, {})
|
147
141
|
keys = hash.keys
|
148
|
-
names =
|
142
|
+
names = names.ensure_array(:flatten, :ensure_symbol, :compact, :uniq)
|
143
|
+
names = Dsl.expand_asterisk(names, keys)
|
149
144
|
names = names.empty? ? keys : names & keys
|
150
|
-
names -= except.
|
145
|
+
names -= except.ensure_array(:flatten, :ensure_symbol, :compact, make: true)
|
151
146
|
hash.replace(Hash[names.map { |n| [n, hash[n]] }])
|
152
147
|
end
|
153
148
|
end
|
@@ -159,19 +154,11 @@ module ExtendIt
|
|
159
154
|
'`dsl_hash_of_objects` requires creator block to be present'
|
160
155
|
)
|
161
156
|
end
|
162
|
-
hash_name = hash_name.
|
163
|
-
|
164
|
-
'`hash_name` argument for `dsl_hash_of_objects` should be' \
|
165
|
-
' a Symbol or a String'
|
166
|
-
)
|
167
|
-
variable = variable.ensure_local_name unless variable.nil?
|
157
|
+
hash_name = hash_name.ensure_symbol!(name_of: :local)
|
158
|
+
variable = variable.ensure_symbol(name_of: :local)
|
168
159
|
|
169
160
|
unless single.nil?
|
170
|
-
single = single.
|
171
|
-
ArgumentError,
|
172
|
-
'`single` option for `dsl_hash_of_objects` should be' \
|
173
|
-
' a Symbol or a String or nil'
|
174
|
-
)
|
161
|
+
single = single.ensure_symbol!(name_of: :local)
|
175
162
|
define_method single do |name, **opts, &block|
|
176
163
|
name = name.ensure_symbol
|
177
164
|
unless name.nil?
|
@@ -185,7 +172,8 @@ module ExtendIt
|
|
185
172
|
|
186
173
|
define_method hash_name do |*names, **opts, &block|
|
187
174
|
hash = dsl_get(variable || hash_name, {})
|
188
|
-
|
175
|
+
names = names.ensure_array(:flatten, :ensure_symbol, :compact, :uniq)
|
176
|
+
Dsl.expand_asterisk(names, hash.keys).each do |name|
|
189
177
|
obj = hash[name] ||=
|
190
178
|
dsl_receiver.instance_exec(name, **opts, &creator)
|
191
179
|
obj.dsl_eval(&block) if !block.nil? && obj.is_a?(Dsl)
|
@@ -204,14 +192,15 @@ module ExtendIt
|
|
204
192
|
end
|
205
193
|
end
|
206
194
|
|
195
|
+
#
|
207
196
|
module DslModule
|
208
197
|
def self.incuded(base)
|
209
|
-
fail
|
198
|
+
fail 'DslModule can be only extended by other modules'
|
210
199
|
end
|
211
200
|
|
212
201
|
def self.extended(base)
|
213
202
|
unless base.is_a?(Module)
|
214
|
-
fail
|
203
|
+
fail 'DslModule can be only extended by modules'
|
215
204
|
end
|
216
205
|
|
217
206
|
base.define_singleton_method :included do |superbase|
|
data/spec/extend_it/dsl_spec.rb
CHANGED
@@ -14,10 +14,6 @@ describe ExtendIt::Dsl do
|
|
14
14
|
includer_class.new
|
15
15
|
end
|
16
16
|
|
17
|
-
let :dsl_instance do
|
18
|
-
includer_obj.dsl
|
19
|
-
end
|
20
|
-
|
21
17
|
let :dsl_class do
|
22
18
|
mod = described_class
|
23
19
|
Class.new do
|
@@ -25,10 +21,6 @@ describe ExtendIt::Dsl do
|
|
25
21
|
end
|
26
22
|
end
|
27
23
|
|
28
|
-
let :dsl_obj do
|
29
|
-
dsl_class.new
|
30
|
-
end
|
31
|
-
|
32
24
|
describe '#dsl_accessor' do
|
33
25
|
it 'creates getter and setter' do
|
34
26
|
includer_class.dsl { dsl_accessor :test }
|
@@ -44,49 +36,47 @@ describe ExtendIt::Dsl do
|
|
44
36
|
|
45
37
|
it 'creates accessors from array' do
|
46
38
|
includer_class.dsl { dsl_accessor :test, ['one', :two], 10 }
|
47
|
-
expect(
|
48
|
-
expect(
|
49
|
-
expect(
|
39
|
+
expect(includer_obj.dsl_obj).to respond_to :test
|
40
|
+
expect(includer_obj.dsl_obj).to respond_to :one
|
41
|
+
expect(includer_obj.dsl_obj).to respond_to :two
|
50
42
|
end
|
51
43
|
|
52
44
|
it 'uses default value' do
|
53
45
|
includer_class.dsl { dsl_accessor :test, default: 10 }
|
54
|
-
expect(includer_obj.
|
46
|
+
expect(includer_obj.dsl_obj.test).to eq 10
|
55
47
|
end
|
56
48
|
|
57
49
|
it 'uses setter to set value if it given' do
|
58
50
|
includer_class.dsl { dsl_accessor(:test) { 10 } }
|
59
|
-
expect(includer_obj.
|
51
|
+
expect(includer_obj.dsl_obj.test).to eq 10
|
60
52
|
end
|
61
53
|
|
62
|
-
|
54
|
+
xit 'evals block in object context with getter if is Dsl' do
|
63
55
|
includer_class.dsl { dsl_accessor :test }
|
64
56
|
dsl_class.dsl { dsl_accessor :child }
|
65
|
-
obj = dsl_obj
|
57
|
+
obj = includer_obj.dsl_obj
|
66
58
|
includer_obj.dsl_eval { test(obj) { child 'test' } }
|
67
|
-
expect(
|
59
|
+
expect(includer_obj.instance_variable_get(:@child)).to eq 'test'
|
68
60
|
end
|
69
61
|
end
|
70
62
|
|
71
63
|
describe '#dsl_boolean' do
|
72
|
-
it 'creates getter
|
64
|
+
it 'creates getter and setter' do
|
73
65
|
includer_class.dsl { dsl_boolean :test }
|
74
|
-
|
75
|
-
expect(dsl_instance.test).to be_false
|
76
|
-
expect(dsl_instance.test?).to be_false
|
66
|
+
includer_obj.dsl_obj.test = false
|
77
67
|
expect(includer_obj.test).to be_false
|
78
68
|
end
|
79
69
|
|
80
70
|
it 'sets values to true by default' do
|
81
71
|
includer_class.dsl { dsl_boolean :test }
|
82
|
-
expect(includer_obj.
|
72
|
+
expect(includer_obj.dsl_obj.test).to be_true
|
83
73
|
end
|
84
74
|
|
85
75
|
it 'creates booleans from array' do
|
86
76
|
includer_class.dsl { dsl_boolean :test, ['one', :two], 10 }
|
87
|
-
expect(
|
88
|
-
expect(
|
89
|
-
expect(
|
77
|
+
expect(includer_obj.dsl_obj).to respond_to :test
|
78
|
+
expect(includer_obj.dsl_obj).to respond_to :one
|
79
|
+
expect(includer_obj.dsl_obj).to respond_to :two
|
90
80
|
end
|
91
81
|
end
|
92
82
|
|
@@ -94,35 +84,34 @@ describe ExtendIt::Dsl do
|
|
94
84
|
it 'creates setter and getter' do
|
95
85
|
block = proc { :test }
|
96
86
|
includer_class.dsl { dsl_block :test }
|
97
|
-
includer_obj.
|
87
|
+
includer_obj.dsl_obj.test(&block)
|
98
88
|
expect(includer_obj.test).to eq block
|
99
89
|
end
|
100
90
|
end
|
101
91
|
|
102
92
|
describe '#dsl_use_hash' do
|
103
93
|
before do
|
104
|
-
# includer_class.dsl_accessor :fields
|
105
94
|
includer_class.dsl { dsl_use_hash :tests }
|
106
95
|
includer_obj.tests = { one: 1, two: 2, three: 3 }
|
107
96
|
end
|
108
97
|
|
109
98
|
it 'reorders hash' do
|
110
|
-
includer_obj.
|
99
|
+
includer_obj.dsl_obj.use_tests :two, :three, :one
|
111
100
|
expect(includer_obj.tests).to eq(two: 2, three: 3, one: 1)
|
112
101
|
end
|
113
102
|
|
114
103
|
it 'recreates hash' do
|
115
|
-
includer_obj.
|
104
|
+
includer_obj.dsl_obj.use_tests :two, :three
|
116
105
|
expect(includer_obj.tests).to eq(two: 2, three: 3)
|
117
106
|
end
|
118
107
|
|
119
108
|
it 'excludes hash' do
|
120
|
-
includer_obj.
|
109
|
+
includer_obj.dsl_obj.use_tests :three, :one, :two, except: :one
|
121
110
|
expect(includer_obj.tests).to eq(three: 3, two: 2)
|
122
111
|
end
|
123
112
|
|
124
113
|
it 'excludes hash with except only option' do
|
125
|
-
includer_obj.
|
114
|
+
includer_obj.dsl_obj.use_tests except: :one
|
126
115
|
expect(includer_obj.tests).to eq(two: 2, three: 3)
|
127
116
|
end
|
128
117
|
end
|
@@ -133,7 +122,7 @@ describe ExtendIt::Dsl do
|
|
133
122
|
includer_class.dsl do
|
134
123
|
dsl_hash_of_objects(:tests) { |name| objects[name] }
|
135
124
|
end
|
136
|
-
includer_obj.
|
125
|
+
includer_obj.dsl_obj.tests :one, :two
|
137
126
|
expect(includer_obj.tests).to eq objects
|
138
127
|
end
|
139
128
|
|
@@ -142,7 +131,7 @@ describe ExtendIt::Dsl do
|
|
142
131
|
demand = Object.new
|
143
132
|
includer_class.dsl { dsl_hash_of_objects(:tests) { |_| demand } }
|
144
133
|
includer_obj.tests = objects
|
145
|
-
includer_obj.
|
134
|
+
includer_obj.dsl_obj.tests :one, :two
|
146
135
|
expect(includer_obj.tests).to eq(objects.merge(two: demand))
|
147
136
|
end
|
148
137
|
end
|