tao_on_rails 0.8.0 → 0.8.1
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/lib/assets/javascripts/tao/attribute_parser.coffee +4 -4
- data/lib/assets/javascripts/tao/component.coffee +19 -0
- data/lib/generators/tao/coffee/coffee_generator.rb +2 -2
- data/lib/generators/tao/sass/sass_generator.rb +2 -2
- data/lib/tao_on_rails/components/base.rb +33 -9
- data/lib/tao_on_rails/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ede1d9a4377793659e2f7249f1c38b349b6d9c4
|
4
|
+
data.tar.gz: a161b521a9a106d62cdc0086f141f7d5730c76a3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6efff7e9bc759ee2079b2422ffa925bbe709b283a2aa0f95654156982916316c75c7effa25a84ee8ab43df8cff52bb4ea9b9ca7f0fe20d17c58e45d598d7f385
|
7
|
+
data.tar.gz: a7b284ea0d976ccc8d1a2281371fd6fd38e45d8f19173255acede3e3fc4e20296d3161838ef5b249e6c556ac74f486aa6163c2bcd5534d0a88f184bfa9d58d27
|
@@ -53,9 +53,9 @@ class TaoAttributeParser extends TaoModule
|
|
53
53
|
try
|
54
54
|
JSON.parse value
|
55
55
|
catch e
|
56
|
-
options.default ||
|
56
|
+
options.default || null
|
57
57
|
else
|
58
|
-
options.default ||
|
58
|
+
options.default || null
|
59
59
|
|
60
60
|
@aliasMethod '_parseObject', '_parseHash'
|
61
61
|
|
@@ -64,9 +64,9 @@ class TaoAttributeParser extends TaoModule
|
|
64
64
|
try
|
65
65
|
JSON.parse value
|
66
66
|
catch e
|
67
|
-
options.default ||
|
67
|
+
options.default || null
|
68
68
|
else
|
69
|
-
options.default ||
|
69
|
+
options.default || null
|
70
70
|
|
71
71
|
_stringifyString: (value, options) ->
|
72
72
|
value.toString()
|
@@ -109,13 +109,16 @@ TaoComponentBasedOn = (superClassName = 'HTMLElement') ->
|
|
109
109
|
@taoId = ++count
|
110
110
|
@_init()
|
111
111
|
@initialized = true
|
112
|
+
@trigger 'initialized'
|
112
113
|
|
113
114
|
@_connected()
|
115
|
+
@trigger 'connected'
|
114
116
|
|
115
117
|
disconnectedCallback: ->
|
116
118
|
$ =>
|
117
119
|
@connected = false
|
118
120
|
@_disconnected()
|
121
|
+
@trigger 'disconnected'
|
119
122
|
|
120
123
|
attributeChangedCallback: (name) ->
|
121
124
|
return unless @connected
|
@@ -136,9 +139,22 @@ TaoComponentBasedOn = (superClassName = 'HTMLElement') ->
|
|
136
139
|
_attributeChanged: (name) ->
|
137
140
|
@["_#{_.camelCase name}Changed"]?()
|
138
141
|
|
142
|
+
_reflow: ->
|
143
|
+
@offsetHeight
|
144
|
+
@
|
145
|
+
|
139
146
|
beforeCache: ->
|
140
147
|
# called before turbolinks cache pages
|
141
148
|
|
149
|
+
findComponent: (selector, readyCallback) ->
|
150
|
+
component = @jq.find(selector).get(0)
|
151
|
+
if component.connected
|
152
|
+
readyCallback? component
|
153
|
+
else
|
154
|
+
@one 'connected', selector, ->
|
155
|
+
readyCallback? component
|
156
|
+
component
|
157
|
+
|
142
158
|
on: (args...) ->
|
143
159
|
@jq.on args...
|
144
160
|
|
@@ -146,6 +162,9 @@ TaoComponentBasedOn = (superClassName = 'HTMLElement') ->
|
|
146
162
|
@jq.off args...
|
147
163
|
|
148
164
|
trigger: (args...) ->
|
165
|
+
@jq.trigger(args...)
|
166
|
+
|
167
|
+
triggerHandler: (args...) ->
|
149
168
|
@jq.triggerHandler(args...)
|
150
169
|
|
151
170
|
one: (args...) ->
|
@@ -14,10 +14,10 @@ module Tao
|
|
14
14
|
@page_id = [class_path, file_name, action].flatten.join('-')
|
15
15
|
if (variants = options[:variants]).any?
|
16
16
|
variants.each do |variant|
|
17
|
-
template "coffee.erb", File.join("app/assets/javascripts", variant, name.pluralize, "#{action}.coffee")
|
17
|
+
template "coffee.erb", File.join("app/assets/javascripts", variant, name.pluralize, "#{action}_page.coffee")
|
18
18
|
end
|
19
19
|
else
|
20
|
-
template "coffee.erb", File.join('app/assets/javascripts', name.pluralize, "#{action}.coffee")
|
20
|
+
template "coffee.erb", File.join('app/assets/javascripts', name.pluralize, "#{action}_page.coffee")
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
@@ -14,10 +14,10 @@ module Tao
|
|
14
14
|
@page_id = [class_path, file_name, action].flatten.join('-')
|
15
15
|
if (variants = options[:variants]).any?
|
16
16
|
variants.each do |variant|
|
17
|
-
template "sass.erb", File.join("app/assets/stylesheets", variant, name.pluralize, "#{action}.scss")
|
17
|
+
template "sass.erb", File.join("app/assets/stylesheets", variant, name.pluralize, "#{action}_page.scss")
|
18
18
|
end
|
19
19
|
else
|
20
|
-
template "sass.erb", File.join('app/assets/stylesheets', name.pluralize, "#{action}.scss")
|
20
|
+
template "sass.erb", File.join('app/assets/stylesheets', name.pluralize, "#{action}_page.scss")
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
@@ -2,29 +2,36 @@ module TaoOnRails
|
|
2
2
|
module Components
|
3
3
|
class Base
|
4
4
|
|
5
|
-
attr_reader :options, :
|
5
|
+
attr_reader :options, :template_name, :template_paths, :view
|
6
6
|
|
7
7
|
def initialize view, options = {}
|
8
8
|
@view = view
|
9
9
|
@options = options
|
10
|
-
@
|
10
|
+
@template_name = self.class.template_name.dup
|
11
|
+
@template_paths = self.class.template_paths.dup
|
12
|
+
@template_paths.unshift(@options.delete(:template_path)) if @options[:template_path].present?
|
11
13
|
end
|
12
14
|
|
13
15
|
def render &block
|
14
|
-
if
|
16
|
+
if template = find_template
|
15
17
|
if block_given?
|
16
|
-
|
17
|
-
|
18
|
-
block_content
|
18
|
+
template.render(view, {component: self, block_given: true}) do |*name|
|
19
|
+
view._layout_for(*name, &block)
|
19
20
|
end
|
20
21
|
else
|
21
|
-
|
22
|
+
template.render(view, {component: self})
|
22
23
|
end
|
23
24
|
else
|
24
25
|
view.content_tag self.class.tag_name, nil, options, &block
|
25
26
|
end
|
26
27
|
end
|
27
28
|
|
29
|
+
def translate key
|
30
|
+
i18n_scope = self.class.name.underscore.split('/').join('.').gsub(/(.+)_component$/, '\1')
|
31
|
+
I18n.t(key, scope: i18n_scope).presence
|
32
|
+
end
|
33
|
+
alias_method :t, :translate
|
34
|
+
|
28
35
|
def self.tag_name
|
29
36
|
@tag_name ||= "#{self.tag_prefix}-#{self.component_name.to_s.dasherize}"
|
30
37
|
end
|
@@ -39,8 +46,25 @@ module TaoOnRails
|
|
39
46
|
:tao
|
40
47
|
end
|
41
48
|
|
42
|
-
def self.
|
43
|
-
@
|
49
|
+
def self.template_paths
|
50
|
+
@template_paths ||= [
|
51
|
+
"components/#{self.name.deconstantize.underscore}",
|
52
|
+
"#{self.name.deconstantize.underscore}/components"
|
53
|
+
]
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.template_name
|
57
|
+
@template_name ||= self.name.demodulize.underscore.gsub(/(.+)_component$/, '\1')
|
58
|
+
end
|
59
|
+
|
60
|
+
private
|
61
|
+
|
62
|
+
def find_template
|
63
|
+
view.lookup_context.find_all(template_name, template_paths, true, template_keys).first
|
64
|
+
end
|
65
|
+
|
66
|
+
def template_keys
|
67
|
+
[:component, :block_given]
|
44
68
|
end
|
45
69
|
|
46
70
|
end
|
data/lib/tao_on_rails/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tao_on_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Siyuan Liu
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-05-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: turbolinks
|