magicka 0.5.1 → 0.5.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ce6145b05f6ec0b77cf8a501ec0f0f886f0bd512a492eec2495e1dad100c16da
4
- data.tar.gz: 89a0393acd79ab69f998694dbe94d302bf899903b75d60a66a3a07574845bc3e
3
+ metadata.gz: 2b014302f0498ecea2e69670c168bdf2ee5eaaa8162b210faf007351d4417976
4
+ data.tar.gz: 1ee57425d99ce223334f9567156ff1ab791f78e6f043c9ae5adca87291e28f1b
5
5
  SHA512:
6
- metadata.gz: abf9488e091894dd7619cbc5b2d29b05d40552eacf74c93538862ad066b5807bb812913e033fa291959d04e23daa8a86878744876c83779d3d7b9b15062abd79
7
- data.tar.gz: 1d9fd2d213b949bd2506c46962433b5b674d0c96dc8f9cb115d756e1a2dc71e8595e5cae60bb935382f6bd1fcb589ca78708823c092e38981c422b10276edf70
6
+ metadata.gz: 37e81304adc719f63fd65d3a643d2392cca27fdce94489072f675571b440815f074e9bf5613bf365dae1b8f26edc24cdf4a564d8821e69a49d4419488bf7cd0c
7
+ data.tar.gz: 20b572511516fd8af749499059b2d14d01bf0047fbe3b509304b4c117032b617427aa84d7389ed400aa5b9acfb0d6c6dff539cd67e448b55e0c25dd5582f17ab
data/.circleci/config.yml CHANGED
@@ -22,7 +22,7 @@ workflows:
22
22
  jobs:
23
23
  test:
24
24
  docker:
25
- - image: darthjee/circleci_rails_gems:0.6.0
25
+ - image: darthjee/circleci_rails_gems:0.7.0
26
26
  environment:
27
27
  PROJECT: magicka
28
28
  steps:
@@ -41,7 +41,7 @@ jobs:
41
41
  command: cc-test-reporter after-build --exit-code $?
42
42
  checks:
43
43
  docker:
44
- - image: darthjee/circleci_rails_gems:0.6.0
44
+ - image: darthjee/circleci_rails_gems:0.7.0
45
45
  environment:
46
46
  PROJECT: magicka
47
47
  steps:
@@ -66,7 +66,7 @@ jobs:
66
66
  command: check_specs
67
67
  build-and-release:
68
68
  docker:
69
- - image: darthjee/circleci_rails_gems:0.5.4
69
+ - image: darthjee/circleci_rails_gems:0.7.0
70
70
  environment:
71
71
  PROJECT: magicka
72
72
  steps:
data/.rubocop.yml CHANGED
@@ -32,7 +32,7 @@ RSpec/MultipleExpectations:
32
32
  - 'spec/integration/readme/**/*_spec.rb'
33
33
 
34
34
  RSpec/NestedGroups:
35
- Max: 4
35
+ Max: 5
36
36
  Exclude:
37
37
  - 'spec/integration/yard/**/*.rb'
38
38
 
data/Dockerfile CHANGED
@@ -1,6 +1,6 @@
1
1
  FROM darthjee/scripts:0.1.8 as scripts
2
2
 
3
- FROM darthjee/rails_gems:0.6.0 as base
3
+ FROM darthjee/rails_gems:0.7.0 as base
4
4
 
5
5
  COPY --chown=app:app ./ /home/app/app/
6
6
 
data/README.md CHANGED
@@ -9,20 +9,23 @@ Magicka
9
9
 
10
10
  ![magicka](https://raw.githubusercontent.com/darthjee/magicka/master/magicka.jpg)
11
11
 
12
+ Magica helps creating html templates for forms and display data using js applications
13
+ such as AngulaJS
14
+
12
15
  Yard Documentation
13
16
  -------------------
14
- [https://www.rubydoc.info/gems/magicka/0.5.1](https://www.rubydoc.info/gems/magicka/0.5.1)
17
+ [https://www.rubydoc.info/gems/magicka/0.5.6](https://www.rubydoc.info/gems/magicka/0.5.6)
15
18
 
16
19
  Installation
17
20
  ---------------
18
21
 
19
- - Install it
22
+ - Install it
20
23
 
21
24
  ```ruby
22
25
  gem install magicka
23
26
  ```
24
27
 
25
- - Or add Magicka to your `Gemfile` and `bundle install`:
28
+ - Or add Magicka to your `Gemfile` and `bundle install`:
26
29
 
27
30
  ```ruby
28
31
  gem 'magicka'
@@ -31,3 +34,72 @@ Installation
31
34
  ```bash
32
35
  bundle install magicka
33
36
  ```
37
+
38
+ ## Usage
39
+ Magicka is used as a helper for erb coding so that each element is paired with an
40
+ element class, a template and a method in an aggregator.
41
+
42
+ Different aggregators have the same method so that they render the same `element` in
43
+ different ways
44
+
45
+ ### example
46
+ ```html.erb
47
+ <!-- new.html.erb -->
48
+
49
+ <% magicka_form('controller.person') do |form| %>
50
+ <%= render partial: 'person_form', locals: { form: form } %>
51
+ <% end %>
52
+ ```
53
+
54
+ ```html.erb
55
+ <!-- show.html.erb -->
56
+
57
+ <% magicka_display('controller.person') do |form| %>
58
+ <%= render partial: 'person_form', locals: { form: form } %>
59
+ <% end %>
60
+ ```
61
+
62
+ ```html.erb
63
+ <!-- _person_form.html.erb -->
64
+
65
+ <%= form.input(:first_name) %>
66
+ <%= form.input(:last_name) %>
67
+ <%= form.input(:age) %>
68
+ <%= form.select(:gender, options: %w[MALE FEMALE] %>
69
+ <%= form.button(ng_click: 'controller.save', text: 'Save') %>
70
+ ```
71
+
72
+ ## Configuring
73
+ In order to use magicka, the helper has to added to the controllers and any custom
74
+ element needs to added
75
+
76
+ `app/controllers/application_controller.rb`
77
+ ```ruby
78
+ class ApplicationController < ActionController::Base
79
+ helper Magicka::Helper
80
+ end
81
+ ```
82
+
83
+ ### Including custom elements
84
+
85
+ Elements can be included by defining attributes that they can be initialized with
86
+ and that can be passed to the template
87
+
88
+ `config/initializers/magicka.rb`
89
+ ```ruby
90
+ module Magicka
91
+ class MyTextInput < Magicka::Element
92
+ with_attribute_locals :label, :field, :id
93
+ end
94
+ end
95
+
96
+ Magicka::Form.with_element(Magicka::MyTextInput)
97
+ ```
98
+
99
+ `templates/form/_my_text_input.html.erb`
100
+ ```html.erb
101
+ <div>
102
+ <label for="<%= field %>"><%= label %></label>
103
+ <input type="text" id="<%= id %>" name="field" />
104
+ </div>
105
+ ```
@@ -1,5 +1,5 @@
1
1
  ignore:
2
2
  - lib/magicka/version.rb
3
3
  - lib/magicka.rb
4
- - lib/magicka/aggregator.rb
5
4
  - lib/magicka/aggregator/method_builder.rb
5
+ - lib/magicka/helper.rb
data/config/yardstick.yml CHANGED
@@ -1,4 +1,4 @@
1
- threshold: 85.1
1
+ threshold: 84.1
2
2
  require_exact_threshold: false
3
3
  rules:
4
4
  ApiTag::Presence:
data/lib/magicka.rb CHANGED
@@ -17,6 +17,7 @@ module Magicka
17
17
  autoload :Element, 'magicka/element'
18
18
  autoload :FormElement, 'magicka/form_element'
19
19
  autoload :Form, 'magicka/form'
20
+ autoload :Helper, 'magicka/helper'
20
21
  autoload :Input, 'magicka/input'
21
22
  autoload :Select, 'magicka/select'
22
23
  autoload :Text, 'magicka/text'
@@ -8,9 +8,9 @@ module Magicka
8
8
  autoload :MethodBuilder, 'magicka/aggregator/method_builder'
9
9
 
10
10
  class << self
11
- def with_element(element_class, method_name = nil)
11
+ def with_element(element_class, method_name = nil, template: nil)
12
12
  MethodBuilder
13
- .new(self, element_class, method_name)
13
+ .new(self, element_class, method_name, template: template)
14
14
  .prepare
15
15
  .build
16
16
  end
@@ -23,8 +23,8 @@ module Magicka
23
23
  @model = model
24
24
  end
25
25
 
26
- def with_model(model)
27
- new_model = [self.model, model].join('.')
26
+ def with_model(model, base: self.model)
27
+ new_model = [base, model].compact.join('.')
28
28
 
29
29
  yield self.class.new(renderer, new_model)
30
30
  end
@@ -6,19 +6,23 @@ module Magicka
6
6
  #
7
7
  # Class responsible for building an {Aggregator} method
8
8
  class MethodBuilder < Sinclair
9
- def initialize(klass, element_class, method_name = nil)
9
+ def initialize(klass, element_class, method_name = nil, template: nil)
10
10
  super(klass)
11
11
 
12
12
  @element_class = element_class
13
13
  @method_name = method_name
14
+ @template = template
14
15
  end
15
16
 
16
17
  def prepare
17
18
  element_klass = element_class
19
+ template_file = template
18
20
 
19
21
  add_method(method_name) do |field, model: self.model, **args|
20
22
  element_klass.render(
21
- renderer: renderer, field: field, model: model, **args
23
+ renderer: renderer, field: field,
24
+ model: model, template: template_file,
25
+ **args
22
26
  )
23
27
  end
24
28
 
@@ -27,7 +31,7 @@ module Magicka
27
31
 
28
32
  private
29
33
 
30
- attr_reader :element_class
34
+ attr_reader :element_class, :template
31
35
 
32
36
  def method_name
33
37
  @method_name ||= element_class
@@ -77,8 +77,11 @@ module Magicka
77
77
  #
78
78
  # @return [String]
79
79
  def template
80
- self.class.name.underscore
81
- .gsub(%r{^.*/}, "#{template_folder}/")
80
+ @template ||= self
81
+ .class
82
+ .name
83
+ .underscore
84
+ .gsub(%r{^.*/}, "#{template_folder}/")
82
85
  end
83
86
  end
84
87
  end
@@ -14,7 +14,7 @@ module Magicka
14
14
  #
15
15
  # @return [Array<Sinclair::MethodDefinition>]
16
16
  def add_template(template)
17
- add_method(:template) do
17
+ add_method(:template, cached: true) do
18
18
  template
19
19
  end
20
20
 
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Magicka
4
+ # Helper module to be used on rails
5
+ module Helper
6
+ def magicka_form(model)
7
+ yield Form.new(self, model)
8
+ end
9
+
10
+ def magicka_display(model)
11
+ yield Display.new(self, model)
12
+ end
13
+ end
14
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Magicka
4
- VERSION = '0.5.1'
4
+ VERSION = '0.5.6'
5
5
  end
data/magicka.gemspec CHANGED
@@ -19,31 +19,31 @@ Gem::Specification.new do |gem|
19
19
  gem.test_files = gem.files.grep(%r{^(test|gem|features)/})
20
20
  gem.require_paths = ['lib']
21
21
 
22
- gem.add_runtime_dependency 'activesupport', '~> 5.2.4.3'
22
+ gem.add_runtime_dependency 'activesupport', '~> 5.2.x'
23
23
  gem.add_runtime_dependency 'sinclair', '>= 1.6.7'
24
24
 
25
- gem.add_development_dependency 'actionpack', '5.2.4.3'
26
- gem.add_development_dependency 'activerecord', '5.2.4.3'
25
+ gem.add_development_dependency 'actionpack', '~> 5.2.x'
26
+ gem.add_development_dependency 'activerecord', '~> 5.2.x'
27
27
  gem.add_development_dependency 'bundler', '1.16.1'
28
28
  gem.add_development_dependency 'factory_bot', '5.2.0'
29
- gem.add_development_dependency 'nokogiri', '1.10.9'
29
+ gem.add_development_dependency 'nokogiri', '1.11.4'
30
30
  gem.add_development_dependency 'pry', '0.12.2'
31
31
  gem.add_development_dependency 'pry-nav', '0.3.0'
32
- gem.add_development_dependency 'rails', '5.2.4.3'
32
+ gem.add_development_dependency 'rails', '~> 5.2.x'
33
33
  gem.add_development_dependency 'rails-controller-testing', '1.0.4'
34
34
  gem.add_development_dependency 'rake', '13.0.1'
35
- gem.add_development_dependency 'reek', '5.6.0'
35
+ gem.add_development_dependency 'reek', '6.0.3'
36
36
  gem.add_development_dependency 'rspec', '3.9.0'
37
- gem.add_development_dependency 'rspec-core', '3.9.1'
38
- gem.add_development_dependency 'rspec-expectations', '3.9.1'
37
+ gem.add_development_dependency 'rspec-core', '3.9.3'
38
+ gem.add_development_dependency 'rspec-expectations', '3.9.4'
39
39
  gem.add_development_dependency 'rspec-mocks', '3.9.1'
40
- gem.add_development_dependency 'rspec-rails', '3.9.0'
41
- gem.add_development_dependency 'rspec-support', '3.9.2'
40
+ gem.add_development_dependency 'rspec-rails', '3.9.1'
41
+ gem.add_development_dependency 'rspec-support', '3.9.4'
42
42
  gem.add_development_dependency 'rubocop', '0.80.1'
43
43
  gem.add_development_dependency 'rubocop-rspec', '1.38.1'
44
- gem.add_development_dependency 'rubycritic', '4.4.1'
44
+ gem.add_development_dependency 'rubycritic', '4.6.1'
45
45
  gem.add_development_dependency 'simplecov', '0.17.1'
46
46
  gem.add_development_dependency 'sqlite3', '1.4.2'
47
- gem.add_development_dependency 'yard', '0.9.24'
47
+ gem.add_development_dependency 'yard', '0.9.26'
48
48
  gem.add_development_dependency 'yardstick', '0.9.9'
49
49
  end
@@ -0,0 +1,209 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Magicka::Aggregator do
6
+ subject(:aggregator) { aggregator_class.new(renderer, model) }
7
+
8
+ let(:aggregator_class) { Class.new(described_class) }
9
+ let(:model) { :my_model }
10
+ let(:renderer) { instance_double('renderer') }
11
+ let(:template) { 'templates/forms/input' }
12
+ let(:locals) { {} }
13
+
14
+ describe '.with_element' do
15
+ context 'when seeting element class only' do
16
+ it do
17
+ expect { aggregator_class.with_element(Magicka::Input) }
18
+ .to add_method(:input)
19
+ .to(aggregator)
20
+ end
21
+
22
+ context 'when built method is called' do
23
+ let(:template) { 'templates/forms/input' }
24
+ let(:field) { :field }
25
+ let(:label) { 'Label' }
26
+ let(:placeholder) { 'Value' }
27
+
28
+ let(:locals) do
29
+ {
30
+ field: field,
31
+ label: label,
32
+ ng_errors: 'my_model.errors.field',
33
+ ng_model: 'my_model.field',
34
+ placeholder: placeholder
35
+ }
36
+ end
37
+
38
+ let(:arguments) do
39
+ {
40
+ label: label,
41
+ placeholder: placeholder
42
+ }
43
+ end
44
+
45
+ before do
46
+ aggregator_class.with_element(Magicka::Input)
47
+
48
+ allow(renderer)
49
+ .to receive(:render)
50
+ .with(partial: template, locals: locals)
51
+ end
52
+
53
+ it 'renders an input' do
54
+ aggregator.input(field, arguments)
55
+
56
+ expect(renderer).to have_received(:render)
57
+ end
58
+
59
+ context 'when passing a custom model' do
60
+ let(:locals) do
61
+ {
62
+ field: field,
63
+ label: label,
64
+ ng_errors: 'my_custom_model.errors.field',
65
+ ng_model: 'my_custom_model.field',
66
+ placeholder: placeholder
67
+ }
68
+ end
69
+
70
+ it 'renders an input' do
71
+ aggregator.input(field, model: 'my_custom_model', **arguments)
72
+
73
+ expect(renderer).to have_received(:render)
74
+ end
75
+ end
76
+ end
77
+ end
78
+
79
+ context 'when seeting element class and method' do
80
+ it do
81
+ expect { aggregator_class.with_element(Magicka::Input, :my_input) }
82
+ .to add_method(:my_input)
83
+ .to(aggregator)
84
+ end
85
+
86
+ context 'when built method is called' do
87
+ let(:template) { 'templates/forms/input' }
88
+ let(:field) { :field }
89
+ let(:label) { 'Label' }
90
+ let(:placeholder) { 'Value' }
91
+
92
+ let(:locals) do
93
+ {
94
+ field: field,
95
+ label: label,
96
+ ng_errors: 'my_model.errors.field',
97
+ ng_model: 'my_model.field',
98
+ placeholder: placeholder
99
+ }
100
+ end
101
+
102
+ let(:arguments) do
103
+ {
104
+ label: label,
105
+ placeholder: placeholder
106
+ }
107
+ end
108
+
109
+ before do
110
+ aggregator_class.with_element(Magicka::Input, :my_input)
111
+
112
+ allow(renderer)
113
+ .to receive(:render)
114
+ .with(partial: template, locals: locals)
115
+ end
116
+
117
+ it 'renders an input' do
118
+ aggregator.my_input(field, arguments)
119
+
120
+ expect(renderer).to have_received(:render)
121
+ end
122
+
123
+ context 'when passing a custom model' do
124
+ let(:locals) do
125
+ {
126
+ field: field,
127
+ label: label,
128
+ ng_errors: 'my_custom_model.errors.field',
129
+ ng_model: 'my_custom_model.field',
130
+ placeholder: placeholder
131
+ }
132
+ end
133
+
134
+ it 'renders an input' do
135
+ aggregator.my_input(field, model: 'my_custom_model', **arguments)
136
+
137
+ expect(renderer).to have_received(:render)
138
+ end
139
+ end
140
+ end
141
+ end
142
+
143
+ context 'when seeting element class and template' do
144
+ it do
145
+ expect do
146
+ aggregator_class.with_element(Magicka::Input, template: template)
147
+ end
148
+ .to add_method(:input)
149
+ .to(aggregator)
150
+ end
151
+
152
+ context 'when built method is called' do
153
+ let(:template) { 'my_templates/my_input' }
154
+ let(:field) { :field }
155
+ let(:label) { 'Label' }
156
+ let(:placeholder) { 'Value' }
157
+
158
+ let(:locals) do
159
+ {
160
+ field: field,
161
+ label: label,
162
+ ng_errors: 'my_model.errors.field',
163
+ ng_model: 'my_model.field',
164
+ placeholder: placeholder
165
+ }
166
+ end
167
+
168
+ let(:arguments) do
169
+ {
170
+ label: label,
171
+ placeholder: placeholder
172
+ }
173
+ end
174
+
175
+ before do
176
+ aggregator_class.with_element(Magicka::Input, template: template)
177
+
178
+ allow(renderer)
179
+ .to receive(:render)
180
+ .with(partial: template, locals: locals)
181
+ end
182
+
183
+ it 'renders an input' do
184
+ aggregator.input(field, arguments)
185
+
186
+ expect(renderer).to have_received(:render)
187
+ end
188
+
189
+ context 'when passing a custom model' do
190
+ let(:locals) do
191
+ {
192
+ field: field,
193
+ label: label,
194
+ ng_errors: 'my_custom_model.errors.field',
195
+ ng_model: 'my_custom_model.field',
196
+ placeholder: placeholder
197
+ }
198
+ end
199
+
200
+ it 'renders an input' do
201
+ aggregator.input(field, model: 'my_custom_model', **arguments)
202
+
203
+ expect(renderer).to have_received(:render)
204
+ end
205
+ end
206
+ end
207
+ end
208
+ end
209
+ end
@@ -139,4 +139,31 @@ describe Magicka::Display do
139
139
  end
140
140
  end
141
141
  end
142
+
143
+ describe '#with_form' do
144
+ it do
145
+ form.with_model('sub') do |new_form|
146
+ expect(new_form)
147
+ .to eq(described_class.new(renderer, 'my_model.sub'))
148
+ end
149
+ end
150
+
151
+ context 'when passing a new base' do
152
+ it do
153
+ form.with_model('sub', base: :other_model) do |new_form|
154
+ expect(new_form)
155
+ .to eq(described_class.new(renderer, 'other_model.sub'))
156
+ end
157
+ end
158
+ end
159
+
160
+ context 'when passing an empty base' do
161
+ it do
162
+ form.with_model('sub', base: nil) do |new_form|
163
+ expect(new_form)
164
+ .to eq(described_class.new(renderer, 'sub'))
165
+ end
166
+ end
167
+ end
168
+ end
142
169
  end
@@ -82,5 +82,46 @@ describe Magicka::Element do
82
82
  expect(renderer).to have_received(:render)
83
83
  end
84
84
  end
85
+
86
+ context 'when class has a template but is initialized with template' do
87
+ subject(:element) do
88
+ klass.new(renderer: renderer, template: custom_template)
89
+ end
90
+
91
+ let(:custom_template) { 'custom_folder/custom_template' }
92
+ let(:expected_template) { custom_template }
93
+
94
+ before do
95
+ klass.template(template)
96
+ end
97
+
98
+ it do
99
+ element.render
100
+
101
+ expect(renderer).to have_received(:render)
102
+ end
103
+ end
104
+
105
+ context 'when class has folder but is initialized with template' do
106
+ subject(:element) do
107
+ klass.new(renderer: renderer, template: custom_template)
108
+ end
109
+
110
+ let(:custom_template) { 'custom_folder/custom_template' }
111
+ let(:expected_template) { custom_template }
112
+
113
+ before do
114
+ klass.template_folder(folder)
115
+
116
+ method_builder.add_class_method(:name) { 'Magicka::MyElement' }
117
+ method_builder.build
118
+ end
119
+
120
+ it do
121
+ element.render
122
+
123
+ expect(renderer).to have_received(:render)
124
+ end
125
+ end
85
126
  end
86
127
  end
@@ -153,4 +153,31 @@ describe Magicka::Form do
153
153
  end
154
154
  end
155
155
  end
156
+
157
+ describe '#with_form' do
158
+ it do
159
+ form.with_model('sub') do |new_form|
160
+ expect(new_form)
161
+ .to eq(described_class.new(renderer, 'my_model.sub'))
162
+ end
163
+ end
164
+
165
+ context 'when passing a new base' do
166
+ it do
167
+ form.with_model('sub', base: :other_model) do |new_form|
168
+ expect(new_form)
169
+ .to eq(described_class.new(renderer, 'other_model.sub'))
170
+ end
171
+ end
172
+ end
173
+
174
+ context 'when passing an empty base' do
175
+ it do
176
+ form.with_model('sub', base: nil) do |new_form|
177
+ expect(new_form)
178
+ .to eq(described_class.new(renderer, 'sub'))
179
+ end
180
+ end
181
+ end
182
+ end
156
183
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magicka
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - DarthJee
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-04 00:00:00.000000000 Z
11
+ date: 2021-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 5.2.4.3
19
+ version: 5.2.x
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 5.2.4.3
26
+ version: 5.2.x
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sinclair
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -42,30 +42,30 @@ dependencies:
42
42
  name: actionpack
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '='
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 5.2.4.3
47
+ version: 5.2.x
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '='
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 5.2.4.3
54
+ version: 5.2.x
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: activerecord
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '='
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 5.2.4.3
61
+ version: 5.2.x
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '='
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 5.2.4.3
68
+ version: 5.2.x
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: bundler
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - '='
102
102
  - !ruby/object:Gem::Version
103
- version: 1.10.9
103
+ version: 1.11.4
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - '='
109
109
  - !ruby/object:Gem::Version
110
- version: 1.10.9
110
+ version: 1.11.4
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: pry
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -140,16 +140,16 @@ dependencies:
140
140
  name: rails
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - '='
143
+ - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 5.2.4.3
145
+ version: 5.2.x
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - '='
150
+ - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 5.2.4.3
152
+ version: 5.2.x
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: rails-controller-testing
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -184,14 +184,14 @@ dependencies:
184
184
  requirements:
185
185
  - - '='
186
186
  - !ruby/object:Gem::Version
187
- version: 5.6.0
187
+ version: 6.0.3
188
188
  type: :development
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - '='
193
193
  - !ruby/object:Gem::Version
194
- version: 5.6.0
194
+ version: 6.0.3
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: rspec
197
197
  requirement: !ruby/object:Gem::Requirement
@@ -212,28 +212,28 @@ dependencies:
212
212
  requirements:
213
213
  - - '='
214
214
  - !ruby/object:Gem::Version
215
- version: 3.9.1
215
+ version: 3.9.3
216
216
  type: :development
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
220
  - - '='
221
221
  - !ruby/object:Gem::Version
222
- version: 3.9.1
222
+ version: 3.9.3
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: rspec-expectations
225
225
  requirement: !ruby/object:Gem::Requirement
226
226
  requirements:
227
227
  - - '='
228
228
  - !ruby/object:Gem::Version
229
- version: 3.9.1
229
+ version: 3.9.4
230
230
  type: :development
231
231
  prerelease: false
232
232
  version_requirements: !ruby/object:Gem::Requirement
233
233
  requirements:
234
234
  - - '='
235
235
  - !ruby/object:Gem::Version
236
- version: 3.9.1
236
+ version: 3.9.4
237
237
  - !ruby/object:Gem::Dependency
238
238
  name: rspec-mocks
239
239
  requirement: !ruby/object:Gem::Requirement
@@ -254,28 +254,28 @@ dependencies:
254
254
  requirements:
255
255
  - - '='
256
256
  - !ruby/object:Gem::Version
257
- version: 3.9.0
257
+ version: 3.9.1
258
258
  type: :development
259
259
  prerelease: false
260
260
  version_requirements: !ruby/object:Gem::Requirement
261
261
  requirements:
262
262
  - - '='
263
263
  - !ruby/object:Gem::Version
264
- version: 3.9.0
264
+ version: 3.9.1
265
265
  - !ruby/object:Gem::Dependency
266
266
  name: rspec-support
267
267
  requirement: !ruby/object:Gem::Requirement
268
268
  requirements:
269
269
  - - '='
270
270
  - !ruby/object:Gem::Version
271
- version: 3.9.2
271
+ version: 3.9.4
272
272
  type: :development
273
273
  prerelease: false
274
274
  version_requirements: !ruby/object:Gem::Requirement
275
275
  requirements:
276
276
  - - '='
277
277
  - !ruby/object:Gem::Version
278
- version: 3.9.2
278
+ version: 3.9.4
279
279
  - !ruby/object:Gem::Dependency
280
280
  name: rubocop
281
281
  requirement: !ruby/object:Gem::Requirement
@@ -310,14 +310,14 @@ dependencies:
310
310
  requirements:
311
311
  - - '='
312
312
  - !ruby/object:Gem::Version
313
- version: 4.4.1
313
+ version: 4.6.1
314
314
  type: :development
315
315
  prerelease: false
316
316
  version_requirements: !ruby/object:Gem::Requirement
317
317
  requirements:
318
318
  - - '='
319
319
  - !ruby/object:Gem::Version
320
- version: 4.4.1
320
+ version: 4.6.1
321
321
  - !ruby/object:Gem::Dependency
322
322
  name: simplecov
323
323
  requirement: !ruby/object:Gem::Requirement
@@ -352,14 +352,14 @@ dependencies:
352
352
  requirements:
353
353
  - - '='
354
354
  - !ruby/object:Gem::Version
355
- version: 0.9.24
355
+ version: 0.9.26
356
356
  type: :development
357
357
  prerelease: false
358
358
  version_requirements: !ruby/object:Gem::Requirement
359
359
  requirements:
360
360
  - - '='
361
361
  - !ruby/object:Gem::Version
362
- version: 0.9.24
362
+ version: 0.9.26
363
363
  - !ruby/object:Gem::Dependency
364
364
  name: yardstick
365
365
  requirement: !ruby/object:Gem::Requirement
@@ -406,6 +406,7 @@ files:
406
406
  - lib/magicka/element/method_builder.rb
407
407
  - lib/magicka/form.rb
408
408
  - lib/magicka/form_element.rb
409
+ - lib/magicka/helper.rb
409
410
  - lib/magicka/input.rb
410
411
  - lib/magicka/select.rb
411
412
  - lib/magicka/text.rb
@@ -473,6 +474,7 @@ files:
473
474
  - spec/dummy/storage/.keep
474
475
  - spec/integration/readme/.keep
475
476
  - spec/integration/yard/.keep
477
+ - spec/lib/magicka/aggregator_spec.rb
476
478
  - spec/lib/magicka/button_spec.rb
477
479
  - spec/lib/magicka/display_spec.rb
478
480
  - spec/lib/magicka/element/class_methods_spec.rb