opal-ferro 0.10.2 → 0.11.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/CHANGELOG.md +10 -0
- data/README.md +1 -1
- data/docs/GettingStarted.md +1 -1
- data/lib/opal-ferro/version.rb +3 -3
- data/opal-ferro.gemspec +5 -5
- data/opal/opal-ferro/elements/ferro_form.js.rb +2 -2
- data/opal/opal-ferro/elements/ferro_inline.js.rb +20 -0
- data/opal/opal-ferro/elements/ferro_misc.js.rb +12 -2
- data/opal/opal-ferro/ferro_base_element.js.rb +20 -5
- data/opal/opal-ferro/ferro_compositor.js.rb +3 -3
- data/opal/opal-ferro/ferro_factory.js.rb +12 -10
- metadata +19 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f3dc7878f088ace5e89025b2525e0af6c679abcf77e8eabd082a9bad1ec41eb4
|
4
|
+
data.tar.gz: df364ec87ee3e4c53dedfb34cd3993ee1fab6aa634405bb496a8e275489b8c55
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db30658f5724d7bcd2b2871fcf70ed24d9699fa8d6053fcc5d6825e6a5fef27269f230c132f67a656dd1e5855c013fc56cdeeed8708ade8ff426b3419c028dc5
|
7
|
+
data.tar.gz: 64cd257b63bd3ef156418429e75b50718eb81397c82db0ad5f79dc6eff3868ca18f1cbb56988c58a2fc36cc4bc7445603de73c68508c3bd0b8efbb04305a1a1c
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
# 0.11.0 - April 10, 2019
|
2
|
+
|
3
|
+
[0.11.0]: https://github.com/easydatawarehousing/opal-ferro/compare/v0.10.2...v0.11.0
|
4
|
+
|
5
|
+
- Dont add ruby classnames to DOM elements when using the style compositor
|
6
|
+
- Add underscore prefix to dom id's to ensure id's are strings
|
7
|
+
- Added dom_id and value= methods
|
8
|
+
- Added button and video elements
|
9
|
+
- Updated opal version to 0.11+
|
10
|
+
|
1
11
|
# 0.10.2 - June 1, 2018
|
2
12
|
|
3
13
|
[0.10.2]: https://github.com/easydatawarehousing/opal-ferro/compare/v0.10.1...v0.10.2
|
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# Opal-Ferro
|
2
2
|
|
3
3
|
[](http://rubydoc.org/gems/opal-ferro)
|
4
|
-
[](https://github.com/easydatawarehousing/opal-ferro/releases)
|
5
5
|
[](#license)
|
6
6
|
|
7
7
|
Ferro is a small Ruby library on top of [Opal](http://opalrb.com/)
|
data/docs/GettingStarted.md
CHANGED
data/lib/opal-ferro/version.rb
CHANGED
@@ -6,8 +6,8 @@ module Opal
|
|
6
6
|
# Opal-Ferro follows the versioning scheme of Opal.
|
7
7
|
# The first two parts of the version number of Ferro imply
|
8
8
|
# compatibility with the Opal version with that same number.
|
9
|
-
# So Ferro 0.
|
10
|
-
# on Opal 0.
|
11
|
-
VERSION = "0.
|
9
|
+
# So Ferro 0.11.x should be compatible with and dependant
|
10
|
+
# on Opal 0.11.x.
|
11
|
+
VERSION = "0.11.0"
|
12
12
|
end
|
13
13
|
end
|
data/opal-ferro.gemspec
CHANGED
@@ -23,11 +23,11 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
24
24
|
s.require_paths = ['lib']
|
25
25
|
|
26
|
-
s.add_dependency 'opal', '~> 0.
|
26
|
+
s.add_dependency 'opal', '~> 0.11'
|
27
27
|
|
28
|
-
s.add_development_dependency 'bundler'
|
29
|
-
s.add_development_dependency 'rake'
|
30
|
-
s.add_development_dependency 'yard', '~> 0.9.
|
31
|
-
s.add_development_dependency 'minitest'
|
28
|
+
s.add_development_dependency 'bundler'
|
29
|
+
s.add_development_dependency 'rake'
|
30
|
+
s.add_development_dependency 'yard', '~> 0.9.19'
|
31
|
+
s.add_development_dependency 'minitest'
|
32
32
|
# s.add_development_dependency 'selenium-webdriver', '~> 3.8'
|
33
33
|
end
|
@@ -32,12 +32,12 @@ module Ferro
|
|
32
32
|
@disabled = option_replace :disabled, false
|
33
33
|
end
|
34
34
|
|
35
|
-
#
|
35
|
+
# Getter method for input value.
|
36
36
|
def value
|
37
37
|
`#{@element}.value`
|
38
38
|
end
|
39
39
|
|
40
|
-
#
|
40
|
+
# Setter method for input value.
|
41
41
|
def value=(value)
|
42
42
|
`#{@element}.value = #{value}`
|
43
43
|
end
|
@@ -146,5 +146,25 @@ module Ferro
|
|
146
146
|
@options[:target] ||= '_blank'
|
147
147
|
end
|
148
148
|
end
|
149
|
+
|
150
|
+
# Creates a button (see form elements for 'input type: button').
|
151
|
+
# In the DOM creates a: <input type='button'>.
|
152
|
+
class Button < BaseElement
|
153
|
+
|
154
|
+
# Internal method.
|
155
|
+
def _before_create
|
156
|
+
@domtype = :button
|
157
|
+
end
|
158
|
+
|
159
|
+
# Internal method.
|
160
|
+
def _after_create
|
161
|
+
`#{@element}.addEventListener("click",function(e){#{clicked};document.activeElement.blur()})`
|
162
|
+
super
|
163
|
+
end
|
164
|
+
|
165
|
+
# Override this method to define what happens after
|
166
|
+
# element has been clicked.
|
167
|
+
def clicked;end
|
168
|
+
end
|
149
169
|
end
|
150
170
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Ferro
|
2
2
|
module Element
|
3
|
-
# Creates
|
3
|
+
# Creates an image element.
|
4
4
|
# In the DOM creates a: <img>.
|
5
5
|
# Will be changed to use <figure> and <figcaption>
|
6
6
|
# Specify option :src to set the source url.
|
@@ -13,7 +13,17 @@ module Ferro
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
# Creates a
|
16
|
+
# Creates a video element.
|
17
|
+
# In the DOM creates a: <canvas>.
|
18
|
+
class Video < BaseElement
|
19
|
+
|
20
|
+
# Internal method.
|
21
|
+
def _before_create
|
22
|
+
@domtype = :video
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# Creates a canvas element.
|
17
27
|
# In the DOM creates a: <canvas>.
|
18
28
|
class Canvas < BaseElement
|
19
29
|
|
@@ -126,11 +126,11 @@ module Ferro
|
|
126
126
|
def classify_state(state)
|
127
127
|
if state[1]
|
128
128
|
state[0].each do |name|
|
129
|
-
`#{element}.classList.add(#{name})`
|
129
|
+
`#{@element}.classList.add(#{name})`
|
130
130
|
end
|
131
131
|
else
|
132
132
|
state[0].each do |name|
|
133
|
-
`#{element}.classList.remove(#{name})`
|
133
|
+
`#{@element}.classList.remove(#{name})`
|
134
134
|
end
|
135
135
|
end
|
136
136
|
end
|
@@ -157,6 +157,14 @@ module Ferro
|
|
157
157
|
`#{@element}.textContent`
|
158
158
|
end
|
159
159
|
|
160
|
+
# Set the current html value of the element
|
161
|
+
# Useful for input elements
|
162
|
+
#
|
163
|
+
# @param [String] The new value
|
164
|
+
def value=(value)
|
165
|
+
`#{@element}.value = #{value}`
|
166
|
+
end
|
167
|
+
|
160
168
|
# Set the current text content of the element
|
161
169
|
#
|
162
170
|
# @param [String] value The new text value
|
@@ -179,9 +187,9 @@ module Ferro
|
|
179
187
|
# @param [String] value The attribute value
|
180
188
|
def set_attribute(name, value)
|
181
189
|
if name == 'scrollTop'
|
182
|
-
`#{element}.scrollTop=#{value}`
|
190
|
+
`#{@element}.scrollTop=#{value}`
|
183
191
|
else
|
184
|
-
`#{element}.setAttribute(#{name}, #{value})`
|
192
|
+
`#{@element}.setAttribute(#{name}, #{value})`
|
185
193
|
end
|
186
194
|
end
|
187
195
|
|
@@ -189,7 +197,14 @@ module Ferro
|
|
189
197
|
#
|
190
198
|
# @param [String] name The attribute name
|
191
199
|
def remove_attribute(name)
|
192
|
-
`#{element}.removeAttribute(#{name})`
|
200
|
+
`#{@element}.removeAttribute(#{name})`
|
201
|
+
end
|
202
|
+
|
203
|
+
# Get the id of the elements corresponding DOM element
|
204
|
+
#
|
205
|
+
# @return [String] The id
|
206
|
+
def dom_id
|
207
|
+
"_#{self.object_id}"
|
193
208
|
end
|
194
209
|
end
|
195
210
|
end
|
@@ -35,9 +35,9 @@ module Ferro
|
|
35
35
|
end
|
36
36
|
|
37
37
|
# Internal method to get mapping from selected map.
|
38
|
-
def css_classes_for_map(classname,
|
39
|
-
css =
|
40
|
-
css.class == String ? css_classes_for_map(css,
|
38
|
+
def css_classes_for_map(classname, mapping)
|
39
|
+
css = mapping[classname]
|
40
|
+
css.class == String ? css_classes_for_map(css, mapping) : (css || [])
|
41
41
|
end
|
42
42
|
|
43
43
|
# Internal method to switch to a new theme.
|
@@ -35,22 +35,24 @@ module Ferro
|
|
35
35
|
`#{parent.element}.appendChild(#{element})`
|
36
36
|
end
|
37
37
|
|
38
|
-
|
39
|
-
|
38
|
+
if !@compositor
|
39
|
+
# Add ruby class to the node
|
40
|
+
`#{element}.classList.add(#{dasherize(target.class.name)})`
|
40
41
|
|
41
|
-
|
42
|
-
|
43
|
-
|
42
|
+
# Add ruby superclass to the node to allow for more generic styling
|
43
|
+
if target.class.superclass != BaseElement
|
44
|
+
`#{element}.classList.add(#{dasherize(target.class.superclass.name)})`
|
45
|
+
end
|
46
|
+
else
|
47
|
+
# Add classes defined by compositor
|
48
|
+
composite_classes(target, element, target.class.superclass != BaseElement)
|
44
49
|
end
|
45
50
|
|
46
|
-
# Add classes defined by compositor
|
47
|
-
composite_classes(target, element, target.class.superclass != BaseElement)
|
48
|
-
|
49
51
|
# Set ruby object_id as default element id
|
50
52
|
if !options.has_key?(:id)
|
51
|
-
`#{element}.id = #{target.object_id}`
|
53
|
+
`#{element}.id = '_' + #{target.object_id}`
|
52
54
|
end
|
53
|
-
|
55
|
+
|
54
56
|
# Set attributes
|
55
57
|
options.each do |name, value|
|
56
58
|
case name
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opal-ferro
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ivo Herweijer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-04-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opal
|
@@ -16,70 +16,70 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
19
|
+
version: '0.11'
|
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: '0.
|
26
|
+
version: '0.11'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
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: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
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: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: yard
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.9.
|
61
|
+
version: 0.9.19
|
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: 0.9.
|
68
|
+
version: 0.9.19
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: minitest
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '0'
|
83
83
|
description: Ferro is a small Ruby library on top of Opal that enables an object-oriented
|
84
84
|
programming style for creating code that runs in the webbrowser. No more distractions
|
85
85
|
like HTML and searching for DOM elements, just beautiful and simple Ruby code. Front-End-Ruby-ROcks!
|
@@ -141,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
141
141
|
version: '0'
|
142
142
|
requirements: []
|
143
143
|
rubyforge_project:
|
144
|
-
rubygems_version: 2.7.
|
144
|
+
rubygems_version: 2.7.7
|
145
145
|
signing_key:
|
146
146
|
specification_version: 4
|
147
147
|
summary: 'Simplifying web-development: no more html, just beautiful and simple Ruby
|