admin_it 1.0.11 → 1.1.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 +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
|