magicka 0.1.0 → 0.2.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/Dockerfile +1 -1
- data/README.md +1 -1
- data/config/yardstick.yml +3 -2
- data/lib/magicka.rb +1 -0
- data/lib/magicka/element.rb +17 -0
- data/lib/magicka/element/class_methods.rb +13 -5
- data/lib/magicka/input.rb +2 -41
- data/lib/magicka/input_element.rb +47 -0
- data/lib/magicka/method_builder.rb +15 -0
- data/lib/magicka/version.rb +1 -1
- data/magicka.gemspec +5 -5
- data/spec/lib/magicka/element/class_methods_spec.rb +21 -3
- data/spec/lib/magicka/element_spec.rb +43 -18
- data/spec/lib/magicka/input_element_spec.rb +56 -0
- data/spec/lib/magicka/method_builder_spec.rb +18 -0
- metadata +14 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9431c86cdde2b07ceb2abfd3554f2e40a086df1dc8cfb760dbc7db514db1dcbe
|
4
|
+
data.tar.gz: 30e5f36c63e91fb2a6ce81f25f147b474e6613abeca0446c04cfe96d587cfbbd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab094ae97de3a63092f2835032152ee71e8747faffef2988540e5ef225b4187d8d688c2578accbccf7e90a7adf02a876bd2b89f847f1a7307d580b552b505a2e
|
7
|
+
data.tar.gz: fc74112bcde8321f00b6fee6e61984c13f80ed280ac4ddbfd2bfff59f824c88cdfe796703e914918b0cbbd3f7e6b47a47e9cff94c875d0da7b920d189b093bd3
|
data/Dockerfile
CHANGED
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.2,0](https://www.rubydoc.info/gems/magicka/0.2.0)
|
15
15
|
|
16
16
|
Installation
|
17
17
|
---------------
|
data/config/yardstick.yml
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
threshold:
|
1
|
+
threshold: 92.2
|
2
2
|
require_exact_threshold: false
|
3
3
|
rules:
|
4
4
|
ApiTag::Presence:
|
@@ -21,7 +21,8 @@ rules:
|
|
21
21
|
exclude: []
|
22
22
|
Summary::Presence:
|
23
23
|
enabled: true
|
24
|
-
exclude:
|
24
|
+
exclude:
|
25
|
+
- Magicka::Element#initialize
|
25
26
|
Summary::Length:
|
26
27
|
enabled: true
|
27
28
|
exclude: []
|
data/lib/magicka.rb
CHANGED
data/lib/magicka/element.rb
CHANGED
@@ -10,6 +10,12 @@ module Magicka
|
|
10
10
|
skip_validation
|
11
11
|
|
12
12
|
class << self
|
13
|
+
# @api public
|
14
|
+
# @!visibility public
|
15
|
+
#
|
16
|
+
# Add available options
|
17
|
+
#
|
18
|
+
# @return [Array<Sinclair::MethodDefinition>]
|
13
19
|
alias with_attributes with_options
|
14
20
|
|
15
21
|
include ClassMethods
|
@@ -62,5 +68,16 @@ module Magicka
|
|
62
68
|
hash.merge!(attribute => send(attribute))
|
63
69
|
end
|
64
70
|
end
|
71
|
+
|
72
|
+
# @api public
|
73
|
+
# @private
|
74
|
+
#
|
75
|
+
# Returns template file location
|
76
|
+
#
|
77
|
+
# @return [String]
|
78
|
+
def template
|
79
|
+
name.underscore
|
80
|
+
.gsub(%r{^.*/}, "#{template_folder}/")
|
81
|
+
end
|
65
82
|
end
|
66
83
|
end
|
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
module Magicka
|
4
4
|
class Element < Sinclair::Options
|
5
|
+
# @api public
|
6
|
+
#
|
5
7
|
# Class methods used for metaprograming of elements
|
6
8
|
module ClassMethods
|
7
9
|
# render template using the given prameters
|
@@ -20,11 +22,6 @@ module Magicka
|
|
20
22
|
@locals ||= superclass.try(:locals)&.dup || Set.new([])
|
21
23
|
end
|
22
24
|
|
23
|
-
private
|
24
|
-
|
25
|
-
# @api public
|
26
|
-
# @!visibility public
|
27
|
-
#
|
28
25
|
# Sets template for element type
|
29
26
|
#
|
30
27
|
# @return [Array<Sinclair::MethodDefinition>]
|
@@ -34,6 +31,17 @@ module Magicka
|
|
34
31
|
.add_template(template)
|
35
32
|
end
|
36
33
|
|
34
|
+
# Sets template folder for element type
|
35
|
+
#
|
36
|
+
# @return [Array<Sinclair::MethodDefinition>]
|
37
|
+
def template_folder(folder)
|
38
|
+
MethodBuilder
|
39
|
+
.new(self)
|
40
|
+
.add_template_folder(folder)
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
37
45
|
# @api public
|
38
46
|
# @!visibility public
|
39
47
|
#
|
data/lib/magicka/input.rb
CHANGED
@@ -2,46 +2,7 @@
|
|
2
2
|
|
3
3
|
module Magicka
|
4
4
|
# Input element representing an HTML +<input/>+
|
5
|
-
class Input <
|
6
|
-
with_attribute_locals :
|
7
|
-
with_attributes :model
|
8
|
-
with_locals :ng_errors, :ng_model
|
9
|
-
|
10
|
-
template 'templates/forms/input'
|
11
|
-
|
12
|
-
private
|
13
|
-
|
14
|
-
# @api private
|
15
|
-
# @private
|
16
|
-
#
|
17
|
-
# Label to be shon near the input
|
18
|
-
#
|
19
|
-
# when no label is provided, the name of
|
20
|
-
# the field is used
|
21
|
-
#
|
22
|
-
# @return [String]
|
23
|
-
def label
|
24
|
-
@label ||= field.to_s.capitalize.gsub(/_/, ' ')
|
25
|
-
end
|
26
|
-
|
27
|
-
# @api private
|
28
|
-
# @private
|
29
|
-
#
|
30
|
-
# ng model to be represented with the input
|
31
|
-
#
|
32
|
-
# @return [String]
|
33
|
-
def ng_model
|
34
|
-
[model, field].join('.')
|
35
|
-
end
|
36
|
-
|
37
|
-
# @api private
|
38
|
-
# @private
|
39
|
-
#
|
40
|
-
# ng errors to be exposed with the input
|
41
|
-
#
|
42
|
-
# @return [String]
|
43
|
-
def ng_errors
|
44
|
-
[model, :errors, field].join('.')
|
45
|
-
end
|
5
|
+
class Input < InputElement
|
6
|
+
with_attribute_locals :placeholder
|
46
7
|
end
|
47
8
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Magicka
|
4
|
+
# @api public
|
5
|
+
#
|
6
|
+
# Basic class for elements for forms
|
7
|
+
class InputElement < Element
|
8
|
+
with_attribute_locals :field, :label
|
9
|
+
with_attributes :model
|
10
|
+
with_locals :ng_errors, :ng_model
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
# @api private
|
15
|
+
# @private
|
16
|
+
#
|
17
|
+
# Label to be shon near the input
|
18
|
+
#
|
19
|
+
# when no label is provided, the name of
|
20
|
+
# the field is used
|
21
|
+
#
|
22
|
+
# @return [String]
|
23
|
+
def label
|
24
|
+
@label ||= field.to_s.capitalize.gsub(/_/, ' ')
|
25
|
+
end
|
26
|
+
|
27
|
+
# @api private
|
28
|
+
# @private
|
29
|
+
#
|
30
|
+
# ng model to be represented with the input
|
31
|
+
#
|
32
|
+
# @return [String]
|
33
|
+
def ng_model
|
34
|
+
[model, field].join('.')
|
35
|
+
end
|
36
|
+
|
37
|
+
# @api private
|
38
|
+
# @private
|
39
|
+
#
|
40
|
+
# ng errors to be exposed with the input
|
41
|
+
#
|
42
|
+
# @return [String]
|
43
|
+
def ng_errors
|
44
|
+
[model, :errors, field].join('.')
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -19,5 +19,20 @@ module Magicka
|
|
19
19
|
|
20
20
|
build
|
21
21
|
end
|
22
|
+
|
23
|
+
# adds a mehtod +#template_folder+
|
24
|
+
#
|
25
|
+
# The method will always return the template folder given in the params
|
26
|
+
#
|
27
|
+
# @param template_folder [String] path to template folder
|
28
|
+
#
|
29
|
+
# @return [Array<Sinclair::MethodDefinition>]
|
30
|
+
def add_template_folder(folder)
|
31
|
+
add_method(:template_folder) do
|
32
|
+
folder
|
33
|
+
end
|
34
|
+
|
35
|
+
build
|
36
|
+
end
|
22
37
|
end
|
23
38
|
end
|
data/lib/magicka/version.rb
CHANGED
data/magicka.gemspec
CHANGED
@@ -19,17 +19,17 @@ 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.
|
23
|
-
gem.add_runtime_dependency 'sinclair', '>= 1.6.
|
22
|
+
gem.add_runtime_dependency 'activesupport', '~> 5.2.4.3'
|
23
|
+
gem.add_runtime_dependency 'sinclair', '>= 1.6.7'
|
24
24
|
|
25
|
-
gem.add_development_dependency 'actionpack', '5.2.4.
|
26
|
-
gem.add_development_dependency 'activerecord', '5.2.4.
|
25
|
+
gem.add_development_dependency 'actionpack', '5.2.4.3'
|
26
|
+
gem.add_development_dependency 'activerecord', '5.2.4.3'
|
27
27
|
gem.add_development_dependency 'bundler', '1.16.1'
|
28
28
|
gem.add_development_dependency 'factory_bot', '5.2.0'
|
29
29
|
gem.add_development_dependency 'nokogiri', '1.10.9'
|
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.
|
32
|
+
gem.add_development_dependency 'rails', '5.2.4.3'
|
33
33
|
gem.add_development_dependency 'rails-controller-testing', '1.0.4'
|
34
34
|
gem.add_development_dependency 'rake', '13.0.1'
|
35
35
|
gem.add_development_dependency 'reek', '5.6.0'
|
@@ -23,13 +23,13 @@ describe Magicka::Element::ClassMethods do
|
|
23
23
|
|
24
24
|
describe '.template' do
|
25
25
|
it do
|
26
|
-
expect { klass.
|
26
|
+
expect { klass.template(template) }
|
27
27
|
.to add_method(:template)
|
28
28
|
.to(klass)
|
29
29
|
end
|
30
30
|
|
31
31
|
context 'when method is build as requested' do
|
32
|
-
before { klass.
|
32
|
+
before { klass.template(template) }
|
33
33
|
|
34
34
|
it 'returns the defined template when method is called' do
|
35
35
|
expect(element.template).to eq(template)
|
@@ -37,9 +37,27 @@ describe Magicka::Element::ClassMethods do
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
+
describe '.template_folder' do
|
41
|
+
let(:folder) { 'templates/forms' }
|
42
|
+
|
43
|
+
it do
|
44
|
+
expect { klass.template_folder(folder) }
|
45
|
+
.to add_method(:template_folder)
|
46
|
+
.to(klass)
|
47
|
+
end
|
48
|
+
|
49
|
+
context 'when method is build as requested' do
|
50
|
+
before { klass.template_folder(folder) }
|
51
|
+
|
52
|
+
it 'returns the defined template when method is called' do
|
53
|
+
expect(element.template_folder).to eq(folder)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
40
58
|
describe '.render' do
|
41
59
|
before do
|
42
|
-
klass.
|
60
|
+
klass.template(template)
|
43
61
|
|
44
62
|
allow(renderer)
|
45
63
|
.to receive(:render)
|
@@ -11,26 +11,22 @@ describe Magicka::Element do
|
|
11
11
|
|
12
12
|
let(:renderer) { instance_double('renderer') }
|
13
13
|
let(:template) { 'templates/forms/element' }
|
14
|
+
let(:folder) { 'templates/forms' }
|
14
15
|
let(:locals) { {} }
|
15
16
|
|
17
|
+
let(:method_builder) { Sinclair.new(klass) }
|
18
|
+
let(:expected_template) { template }
|
19
|
+
|
16
20
|
describe '#render' do
|
17
21
|
before do
|
18
|
-
klass.send(:template, template)
|
19
|
-
|
20
22
|
allow(renderer)
|
21
23
|
.to receive(:render)
|
22
|
-
.with(partial:
|
23
|
-
end
|
24
|
-
|
25
|
-
it do
|
26
|
-
element.render
|
27
|
-
|
28
|
-
expect(renderer).to have_received(:render)
|
24
|
+
.with(partial: expected_template, locals: locals)
|
29
25
|
end
|
30
26
|
|
31
|
-
context 'when
|
32
|
-
|
33
|
-
klass.
|
27
|
+
context 'when class has a defined template' do
|
28
|
+
before do
|
29
|
+
klass.template(template)
|
34
30
|
end
|
35
31
|
|
36
32
|
it do
|
@@ -38,17 +34,46 @@ describe Magicka::Element do
|
|
38
34
|
|
39
35
|
expect(renderer).to have_received(:render)
|
40
36
|
end
|
41
|
-
end
|
42
37
|
|
43
|
-
|
44
|
-
|
45
|
-
|
38
|
+
context 'when initialized with extra params' do
|
39
|
+
subject(:element) do
|
40
|
+
klass.new(renderer: renderer, name: 'Name')
|
41
|
+
end
|
42
|
+
|
43
|
+
it do
|
44
|
+
element.render
|
45
|
+
|
46
|
+
expect(renderer).to have_received(:render)
|
47
|
+
end
|
46
48
|
end
|
47
49
|
|
48
|
-
|
50
|
+
context 'when class have locals defined' do
|
51
|
+
subject(:element) do
|
52
|
+
klass.new(renderer: renderer, name: 'Name')
|
53
|
+
end
|
54
|
+
|
55
|
+
let(:locals) { { name: 'Name' } }
|
56
|
+
|
57
|
+
before do
|
58
|
+
klass.send(:with_attribute_locals, :name)
|
59
|
+
end
|
60
|
+
|
61
|
+
it do
|
62
|
+
element.render
|
63
|
+
|
64
|
+
expect(renderer).to have_received(:render)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
context 'when class has only folder defined' do
|
70
|
+
let(:expected_template) { 'templates/forms/input' }
|
49
71
|
|
50
72
|
before do
|
51
|
-
klass.
|
73
|
+
klass.template_folder(folder)
|
74
|
+
|
75
|
+
method_builder.add_method(:name) { 'Magicka::Input' }
|
76
|
+
method_builder.build
|
52
77
|
end
|
53
78
|
|
54
79
|
it do
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Magicka::InputElement do
|
6
|
+
let(:renderer) { instance_double('renderer') }
|
7
|
+
let(:template) { 'templates/forms/input' }
|
8
|
+
|
9
|
+
let(:model) { :my_model }
|
10
|
+
let(:field) { :field }
|
11
|
+
let(:label) { 'Label' }
|
12
|
+
|
13
|
+
let(:locals) do
|
14
|
+
{
|
15
|
+
field: field,
|
16
|
+
label: label,
|
17
|
+
ng_errors: 'my_model.errors.field',
|
18
|
+
ng_model: 'my_model.field'
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
before do
|
23
|
+
described_class.template(template)
|
24
|
+
end
|
25
|
+
|
26
|
+
describe '.render' do
|
27
|
+
let(:arguments) do
|
28
|
+
{
|
29
|
+
renderer: renderer,
|
30
|
+
field: field,
|
31
|
+
label: label,
|
32
|
+
model: model
|
33
|
+
}
|
34
|
+
end
|
35
|
+
|
36
|
+
before do
|
37
|
+
allow(renderer)
|
38
|
+
.to receive(:render)
|
39
|
+
.with(partial: template, locals: locals)
|
40
|
+
end
|
41
|
+
|
42
|
+
it do
|
43
|
+
described_class.render(arguments)
|
44
|
+
|
45
|
+
expect(renderer).to have_received(:render)
|
46
|
+
end
|
47
|
+
|
48
|
+
context 'when called with extra params' do
|
49
|
+
it do
|
50
|
+
described_class.render(name: 'Name', **arguments)
|
51
|
+
|
52
|
+
expect(renderer).to have_received(:render)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -25,4 +25,22 @@ describe Magicka::MethodBuilder do
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
28
|
+
|
29
|
+
describe '#add_template_folder' do
|
30
|
+
let(:folder) { 'path_to_template_folder' }
|
31
|
+
|
32
|
+
it do
|
33
|
+
expect { builder.add_template_folder(folder) }
|
34
|
+
.to add_method(:template_folder)
|
35
|
+
.to(klass)
|
36
|
+
end
|
37
|
+
|
38
|
+
context 'when method is build as requested' do
|
39
|
+
before { builder.add_template_folder(folder) }
|
40
|
+
|
41
|
+
it 'returns the defined template folder when method is called' do
|
42
|
+
expect(instance.template_folder).to eq(folder)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
28
46
|
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.2.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-
|
11
|
+
date: 2020-06-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -16,56 +16,56 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 5.2.4.
|
19
|
+
version: 5.2.4.3
|
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.
|
26
|
+
version: 5.2.4.3
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: sinclair
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.6.
|
33
|
+
version: 1.6.7
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.6.
|
40
|
+
version: 1.6.7
|
41
41
|
- !ruby/object:Gem::Dependency
|
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.
|
47
|
+
version: 5.2.4.3
|
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.
|
54
|
+
version: 5.2.4.3
|
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.
|
61
|
+
version: 5.2.4.3
|
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.
|
68
|
+
version: 5.2.4.3
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: bundler
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,14 +142,14 @@ dependencies:
|
|
142
142
|
requirements:
|
143
143
|
- - '='
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: 5.2.4.
|
145
|
+
version: 5.2.4.3
|
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.
|
152
|
+
version: 5.2.4.3
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: rails-controller-testing
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -400,6 +400,7 @@ files:
|
|
400
400
|
- lib/magicka/element.rb
|
401
401
|
- lib/magicka/element/class_methods.rb
|
402
402
|
- lib/magicka/input.rb
|
403
|
+
- lib/magicka/input_element.rb
|
403
404
|
- lib/magicka/method_builder.rb
|
404
405
|
- lib/magicka/version.rb
|
405
406
|
- magicka.gemspec
|
@@ -467,6 +468,7 @@ files:
|
|
467
468
|
- spec/integration/yard/.keep
|
468
469
|
- spec/lib/magicka/element/class_methods_spec.rb
|
469
470
|
- spec/lib/magicka/element_spec.rb
|
471
|
+
- spec/lib/magicka/input_element_spec.rb
|
470
472
|
- spec/lib/magicka/input_spec.rb
|
471
473
|
- spec/lib/magicka/method_builder_spec.rb
|
472
474
|
- spec/spec_helper.rb
|