admin_it 1.0.7 → 1.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -0
  3. data/README.md +6 -0
  4. data/lib/admin_it/context/collection_context.rb +5 -22
  5. data/lib/admin_it/context/context.rb +13 -34
  6. data/lib/admin_it/context/show_context.rb +8 -7
  7. data/lib/admin_it/context/single_context.rb +35 -33
  8. data/lib/admin_it/context/table_context.rb +18 -11
  9. data/lib/admin_it/context/tiles_context.rb +14 -14
  10. data/lib/admin_it/data/active_record.rb +0 -2
  11. data/lib/admin_it/field/field.rb +95 -23
  12. data/lib/admin_it/filters/field_filter.rb +4 -0
  13. data/lib/admin_it/filters/filter.rb +37 -14
  14. data/lib/admin_it/helpers/table.rb +13 -17
  15. data/lib/admin_it/resource.rb +58 -115
  16. data/lib/admin_it/shared.rb +64 -0
  17. data/lib/admin_it/version.rb +1 -1
  18. data/lib/admin_it.rb +7 -5
  19. data/lib/extend_it/array_of.rb +3 -3
  20. data/lib/extend_it/asserts.rb +5 -3
  21. data/lib/extend_it/{class.rb → base.rb} +29 -10
  22. data/lib/extend_it/callbacks.rb +7 -7
  23. data/lib/extend_it/config.rb +30 -0
  24. data/lib/extend_it/dsl.rb +223 -64
  25. data/lib/extend_it/ensures.rb +193 -0
  26. data/lib/extend_it.rb +1 -1
  27. data/spec/extend_it/config_spec.rb +52 -0
  28. data/spec/extend_it/dsl_spec.rb +149 -0
  29. data/spec/extend_it/ensures_spec.rb +39 -0
  30. data/spec/lib/context/collection_context_spec.rb +4 -2
  31. data/spec/lib/context/context_spec.rb +3 -1
  32. data/spec/lib/context/single_context_spec.rb +3 -2
  33. data/spec/lib/data/object_spec.rb +2 -2
  34. data/spec/lib/field_spec.rb +1 -56
  35. data/spec/lib/resource_spec.rb +1 -13
  36. data/spec/spec_helper.rb +7 -0
  37. data/spec/support/example_groups/context_example_group.rb +3 -3
  38. metadata +14 -11
  39. data/lib/admin_it/renderable.rb +0 -18
  40. data/lib/extend_it/refines.rb +0 -6
  41. data/lib/extend_it/symbolize.rb +0 -39
  42. data/spec/lib/definitions_spec.rb +0 -171
  43. data/spec/lib/utils_spec.rb +0 -39
@@ -1,171 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe AdminIt::ResourceDefinition do
4
- subject { described_class.new(object_resource) }
5
-
6
- it 'delegates methods to fake context' do
7
- subject.field :name
8
- expect(
9
- subject.instance_variable_get(:@fake).find_field(:name)
10
- ).to_not be_nil
11
- end
12
-
13
- describe '#default_context' do
14
- it 'returns first single context name by default' do
15
- subject.contexts(%i(tiles edit table))
16
- expect(subject.default_context).to eq :edit
17
- end
18
-
19
- it 'drops unknown context name' do
20
- subject.default_context(:test)
21
- expect(subject.default_context).to eq :show
22
- end
23
-
24
- it 'sets known context name' do
25
- subject.default_context(:table)
26
- expect(subject.default_context).to eq :table
27
- end
28
- end
29
-
30
- describe '#icon' do
31
- it 'has nil icon by default' do
32
- expect(subject.icon).to be_nil
33
- end
34
-
35
- it 'sets icon as string' do
36
- subject.icon :test
37
- expect(subject.icon).to eq 'test'
38
- end
39
- end
40
-
41
- describe '#single' do
42
- it { expect(subject.single <= AdminIt::SingleContext).to be_true }
43
-
44
- it 'copies fields from fake context' do
45
- subject.field :name
46
- expect(subject.single.fields[:name]).to_not be_nil
47
- end
48
-
49
- it 'yields block in single instance context' do
50
- expect(subject.single).to receive(:instance_eval)
51
- subject.single { }
52
- end
53
- end
54
-
55
- describe '#collection' do
56
- it { expect(subject.collection <= AdminIt::CollectionContext).to be_true }
57
-
58
- it 'copies fields from single context' do
59
- subject.field :name
60
- expect(subject.collection.find_field(:name)).to_not be_nil
61
- end
62
-
63
- it 'yields block in collection instance context' do
64
- expect(subject.collection).to receive(:instance_eval)
65
- subject.collection { }
66
- end
67
- end
68
-
69
- describe '#context' do
70
- it 'yields block in context instance context' do
71
- expect(subject.context(:edit)).to receive(:instance_eval)
72
- subject.context(:edit) { }
73
- end
74
-
75
- it 'creates context on-demand' do
76
- subject.context :test, context_class: AdminIt::TilesContext
77
- expect(subject.contexts.map(&:context_name)).to include :test
78
- expect(subject.context(:test) <= AdminIt::TilesContext).to be_true
79
- end
80
-
81
- context 'with some fields' do
82
- before do
83
- subject.field :name
84
- subject.single { field :amount }
85
- subject.collection { field :size }
86
- end
87
-
88
- it 'copies fields from single fake context for singles' do
89
- subject.context(:edit) { field :title }
90
- expect(subject.context(:edit).fields[:title]).to_not be_nil
91
- expect(subject.context(:edit).fields[:name]).to_not be_nil
92
- expect(subject.context(:edit).fields[:amount]).to_not be_nil
93
- expect(subject.context(:edit).fields[:size]).to be_nil
94
- end
95
-
96
- it 'copies fields from collection fake context for collections' do
97
- subject.context(:table) { field :rows }
98
- expect(subject.context(:table).fields[:rows]).to_not be_nil
99
- expect(subject.context(:table).fields[:amount]).to be_nil
100
- expect(subject.context(:table).fields[:name]).to_not be_nil
101
- expect(subject.context(:table).fields[:size]).to_not be_nil
102
- end
103
-
104
- it 'copies fields from single fake context for on-demand singles' do
105
- subject.context :test, context_class: AdminIt::EditContext do
106
- field :title
107
- end
108
- expect(subject.context(:test).fields[:title]).to_not be_nil
109
- expect(subject.context(:test).fields[:name]).to_not be_nil
110
- expect(subject.context(:test).fields[:amount]).to_not be_nil
111
- expect(subject.context(:test).fields[:size]).to be_nil
112
- end
113
-
114
- it 'copies fields from col fake context for on-demand collections' do
115
- subject.context :test, context_class: AdminIt::TableContext do
116
- field :rows
117
- end
118
- expect(subject.context(:test).fields[:rows]).to_not be_nil
119
- expect(subject.context(:test).fields[:name]).to_not be_nil
120
- expect(subject.context(:test).fields[:amount]).to be_nil
121
- expect(subject.context(:test).fields[:size]).to_not be_nil
122
- end
123
- end
124
- end
125
-
126
- describe '#contexts' do
127
- it 'yields block in each context instance context' do
128
- subject.contexts.each { |c| expect(c).to receive(:instance_eval) }
129
- subject.contexts { }
130
- end
131
-
132
- it 'reorders contexts' do
133
- list = %i(list tiles show table edit new)
134
- subject.contexts(*list)
135
- expect(subject.contexts.map(&:context_name)).to eq list
136
- end
137
-
138
- it 'reduces contexts' do
139
- subject.contexts(:tiles, :table)
140
- expect(subject.contexts.size).to eq 2
141
- end
142
- end
143
-
144
- describe '#exclude_collection' do
145
- it 'removes all collection contexts' do
146
- subject.exclude_collection
147
- expect(subject.contexts.map(&:context_name))
148
- .to eq described_class::SINGLE
149
- end
150
- end
151
-
152
- describe '#exclude_single' do
153
- it 'removes all single contexts' do
154
- subject.exclude_single
155
- expect(subject.contexts.map(&:context_name))
156
- .to eq described_class::COLLECTIONS
157
- end
158
- end
159
-
160
- describe '#exclude_context' do
161
- it 'removes contexts' do
162
- subject.exclude_context(%i(show edit new table))
163
- expect(subject.contexts.map(&:context_name)).to eq %i(tiles list)
164
- end
165
- end
166
- end
167
-
168
- describe AdminIt do
169
- describe '.resource' do
170
- end
171
- end
@@ -1,39 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe AdminIt::Utils do
4
- subject { AdminIt::Utils }
5
-
6
- describe '.assert_symbol_arg' do
7
- it 'just passes throw symbol args' do
8
- expect(subject.assert_symbol_arg(:test)).to eq :test
9
- end
10
-
11
- it 'converts string to symbol' do
12
- expect(subject.assert_symbol_arg('test')).to eq :test
13
- end
14
-
15
- it 'calls block if it given for non-symbol args' do
16
- test = false
17
- subject.assert_symbol_arg(10) { |value| test = value }
18
- expect(test).to eq 10
19
- end
20
- end
21
-
22
- describe '.assert_symbol_arg!' do
23
- def some_method(name)
24
- subject.assert_symbol_arg!(10, name)
25
- end
26
-
27
- it 'calls .assert_symbol_arg' do
28
- expect(subject).to receive(:assert_symbol_arg).with(:test)
29
- subject.assert_symbol_arg!(:test, name: 'name')
30
- end
31
-
32
- it 'raises ArgumentError for wrong args' do
33
- expect { some_method('arg') }.to raise_error(
34
- ArgumentError,
35
- 'Argument arg for some_method should be a String or Symbol'
36
- )
37
- end
38
- end
39
- end