magicka 0.3.1 → 0.4.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/README.md +1 -1
- data/config/yardstick.yml +1 -1
- data/lib/magicka.rb +1 -0
- data/lib/magicka/form.rb +46 -0
- data/lib/magicka/version.rb +1 -1
- data/spec/lib/magicka/form_spec.rb +122 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 81717f300e575454157f07d2e37f93b68a43aee24374cc84d49142f3815b26de
|
4
|
+
data.tar.gz: f50c9807efb97e1fa9719f010c39d261eb6fe9ccf12d3a199c33521b515ea2ae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ede839d74d03176271d66aaf5ac672cdf0774e3be38edcf7306414de16f64fea51f73b3390c184f684c1c9189978bc045d51f8f0a1dc7d5e408432fd7b3863fa
|
7
|
+
data.tar.gz: e67ed028a79ef8dbfdb1ed0c16e592df1749941429002cc5f83522bb744b16a20fee771004326a853165d25d11beb7376bd7fee5243d4e398556426c256e1fcd
|
data/README.md
CHANGED
@@ -11,7 +11,7 @@ Magicka
|
|
11
11
|
|
12
12
|
Yard Documentation
|
13
13
|
-------------------
|
14
|
-
[https://www.rubydoc.info/gems/magicka/0.
|
14
|
+
[https://www.rubydoc.info/gems/magicka/0.4.0](https://www.rubydoc.info/gems/magicka/0.4.0)
|
15
15
|
|
16
16
|
Installation
|
17
17
|
---------------
|
data/config/yardstick.yml
CHANGED
data/lib/magicka.rb
CHANGED
@@ -14,6 +14,7 @@ module Magicka
|
|
14
14
|
autoload :Button, 'magicka/button'
|
15
15
|
autoload :Element, 'magicka/element'
|
16
16
|
autoload :FormElement, 'magicka/form_element'
|
17
|
+
autoload :Form, 'magicka/form'
|
17
18
|
autoload :Input, 'magicka/input'
|
18
19
|
autoload :MethodBuilder, 'magicka/method_builder'
|
19
20
|
autoload :Select, 'magicka/select'
|
data/lib/magicka/form.rb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Magicka
|
4
|
+
# Class responsible for controlling one object form
|
5
|
+
class Form
|
6
|
+
attr_reader :model
|
7
|
+
|
8
|
+
def initialize(renderer, model)
|
9
|
+
@renderer = renderer
|
10
|
+
@model = model
|
11
|
+
end
|
12
|
+
|
13
|
+
def input(field, model: self.model, **args)
|
14
|
+
Input.render(renderer: renderer, field: field, model: model, **args)
|
15
|
+
end
|
16
|
+
|
17
|
+
def select(field, model: self.model, **args)
|
18
|
+
Select.render(renderer: renderer, field: field, model: model, **args)
|
19
|
+
end
|
20
|
+
|
21
|
+
def button(**args)
|
22
|
+
Button.render(renderer: renderer, **args)
|
23
|
+
end
|
24
|
+
|
25
|
+
def with_model(model)
|
26
|
+
new_model = [self.model, model].join('.')
|
27
|
+
|
28
|
+
yield Form.new(renderer, new_model)
|
29
|
+
end
|
30
|
+
|
31
|
+
def equal?(other)
|
32
|
+
return unless other.class == self.class
|
33
|
+
|
34
|
+
other.renderer == renderer &&
|
35
|
+
other.model == model
|
36
|
+
end
|
37
|
+
|
38
|
+
alias == equal?
|
39
|
+
|
40
|
+
protected
|
41
|
+
|
42
|
+
attr_reader :renderer
|
43
|
+
|
44
|
+
delegate :render, to: :renderer
|
45
|
+
end
|
46
|
+
end
|
data/lib/magicka/version.rb
CHANGED
@@ -0,0 +1,122 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Magicka::Form do
|
6
|
+
subject(:form) { described_class.new(renderer, model) }
|
7
|
+
|
8
|
+
let(:model) { :my_model }
|
9
|
+
let(:renderer) { instance_double('renderer') }
|
10
|
+
let(:template) { 'templates/forms/input' }
|
11
|
+
let(:locals) { {} }
|
12
|
+
|
13
|
+
before do
|
14
|
+
allow(renderer)
|
15
|
+
.to receive(:render)
|
16
|
+
.with(partial: template, locals: locals)
|
17
|
+
end
|
18
|
+
|
19
|
+
describe '#input' do
|
20
|
+
let(:template) { 'templates/forms/input' }
|
21
|
+
let(:field) { :field }
|
22
|
+
let(:label) { 'Label' }
|
23
|
+
let(:placeholder) { 'Value' }
|
24
|
+
|
25
|
+
let(:locals) do
|
26
|
+
{
|
27
|
+
field: field,
|
28
|
+
label: label,
|
29
|
+
ng_errors: 'my_model.errors.field',
|
30
|
+
ng_model: 'my_model.field',
|
31
|
+
placeholder: placeholder
|
32
|
+
}
|
33
|
+
end
|
34
|
+
|
35
|
+
let(:arguments) do
|
36
|
+
{
|
37
|
+
label: label,
|
38
|
+
placeholder: placeholder,
|
39
|
+
model: model
|
40
|
+
}
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'renders an input' do
|
44
|
+
form.input(field, arguments)
|
45
|
+
|
46
|
+
expect(renderer).to have_received(:render)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe '#select' do
|
51
|
+
let(:template) { 'templates/forms/select' }
|
52
|
+
let(:field) { :field }
|
53
|
+
let(:label) { 'Label' }
|
54
|
+
let(:options) { %i[option_a option_b] }
|
55
|
+
|
56
|
+
let(:locals) do
|
57
|
+
{
|
58
|
+
field: field,
|
59
|
+
label: label,
|
60
|
+
ng_errors: 'my_model.errors.field',
|
61
|
+
ng_model: 'my_model.field',
|
62
|
+
options: options
|
63
|
+
}
|
64
|
+
end
|
65
|
+
|
66
|
+
let(:arguments) do
|
67
|
+
{
|
68
|
+
label: label,
|
69
|
+
model: model,
|
70
|
+
options: options
|
71
|
+
}
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'renders an input' do
|
75
|
+
form.select(field, arguments)
|
76
|
+
|
77
|
+
expect(renderer).to have_received(:render)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
describe '#button' do
|
82
|
+
let(:template) { 'templates/forms/button' }
|
83
|
+
let(:ng_click) { 'controler.click()' }
|
84
|
+
let(:ng_disabled) { 'false' }
|
85
|
+
let(:classes) { 'custom class' }
|
86
|
+
let(:text) { 'Click' }
|
87
|
+
|
88
|
+
let(:locals) do
|
89
|
+
{
|
90
|
+
ng_click: ng_click,
|
91
|
+
ng_disabled: ng_disabled,
|
92
|
+
classes: classes,
|
93
|
+
text: text
|
94
|
+
}
|
95
|
+
end
|
96
|
+
|
97
|
+
let(:arguments) do
|
98
|
+
{
|
99
|
+
ng_click: ng_click,
|
100
|
+
ng_disabled: ng_disabled,
|
101
|
+
classes: classes,
|
102
|
+
text: text
|
103
|
+
}
|
104
|
+
end
|
105
|
+
|
106
|
+
it 'renders an input' do
|
107
|
+
form.button(arguments)
|
108
|
+
|
109
|
+
expect(renderer).to have_received(:render)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
describe '#with_model' do
|
114
|
+
let(:expected_form) { described_class.new(renderer, 'my_model.inner') }
|
115
|
+
|
116
|
+
it do
|
117
|
+
form.with_model(:inner) do |new_form|
|
118
|
+
expect(new_form).to eq(expected_form)
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
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.
|
4
|
+
version: 0.4.0
|
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-
|
11
|
+
date: 2020-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -400,6 +400,7 @@ files:
|
|
400
400
|
- lib/magicka/button.rb
|
401
401
|
- lib/magicka/element.rb
|
402
402
|
- lib/magicka/element/class_methods.rb
|
403
|
+
- lib/magicka/form.rb
|
403
404
|
- lib/magicka/form_element.rb
|
404
405
|
- lib/magicka/input.rb
|
405
406
|
- lib/magicka/method_builder.rb
|
@@ -472,6 +473,7 @@ files:
|
|
472
473
|
- spec/lib/magicka/element/class_methods_spec.rb
|
473
474
|
- spec/lib/magicka/element_spec.rb
|
474
475
|
- spec/lib/magicka/form_element_spec.rb
|
476
|
+
- spec/lib/magicka/form_spec.rb
|
475
477
|
- spec/lib/magicka/input_spec.rb
|
476
478
|
- spec/lib/magicka/method_builder_spec.rb
|
477
479
|
- spec/lib/magicka/select_spec.rb
|