matestack-ui-core 0.7.2.1 → 0.7.3
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of matestack-ui-core might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/concepts/matestack/ui/core/actionview/dynamic.haml +6 -0
- data/app/concepts/matestack/ui/core/actionview/dynamic.rb +28 -0
- data/app/concepts/matestack/ui/core/actionview/static.haml +1 -0
- data/app/concepts/matestack/ui/core/actionview/static.rb +28 -0
- data/app/concepts/matestack/ui/core/app/app.rb +1 -25
- data/app/concepts/matestack/ui/core/area/area.haml +1 -0
- data/app/concepts/matestack/ui/core/area/area.rb +18 -0
- data/app/concepts/matestack/ui/core/aside/aside.haml +3 -0
- data/app/concepts/matestack/ui/core/aside/aside.rb +5 -0
- data/app/concepts/matestack/ui/core/b/b.haml +5 -0
- data/app/concepts/matestack/ui/core/b/b.rb +5 -0
- data/app/concepts/matestack/ui/core/cite/cite.haml +5 -0
- data/app/concepts/matestack/ui/core/cite/cite.rb +5 -0
- data/app/concepts/matestack/ui/core/code/code.haml +5 -0
- data/app/concepts/matestack/ui/core/code/code.rb +5 -0
- data/app/concepts/matestack/ui/core/component/dynamic.rb +33 -25
- data/app/concepts/matestack/ui/core/dd/dd.haml +5 -0
- data/app/concepts/matestack/ui/core/dd/dd.rb +5 -0
- data/app/concepts/matestack/ui/core/dl/dl.haml +5 -0
- data/app/concepts/matestack/ui/core/dl/dl.rb +5 -0
- data/app/concepts/matestack/ui/core/dt/dt.haml +5 -0
- data/app/concepts/matestack/ui/core/dt/dt.rb +5 -0
- data/app/concepts/matestack/ui/core/em/em.haml +5 -0
- data/app/concepts/matestack/ui/core/em/em.rb +5 -0
- data/app/concepts/matestack/ui/core/fieldset/fieldset.haml +5 -0
- data/app/concepts/matestack/ui/core/fieldset/fieldset.rb +9 -0
- data/app/concepts/matestack/ui/core/figure/figure.haml +3 -0
- data/app/concepts/matestack/ui/core/figure/figure.rb +5 -0
- data/app/concepts/matestack/ui/core/form/form.js +19 -1
- data/app/concepts/matestack/ui/core/img/img.rb +1 -0
- data/app/concepts/matestack/ui/core/ins/ins.haml +5 -0
- data/app/concepts/matestack/ui/core/ins/ins.rb +10 -0
- data/app/concepts/matestack/ui/core/js/core.js +0 -1
- data/app/concepts/matestack/ui/core/kbd/kbd.haml +5 -0
- data/app/concepts/matestack/ui/core/kbd/kbd.rb +4 -0
- data/app/concepts/matestack/ui/core/label/label.rb +6 -1
- data/app/concepts/matestack/ui/core/legend/legend.haml +5 -0
- data/app/concepts/matestack/ui/core/legend/legend.rb +5 -0
- data/app/concepts/matestack/ui/core/link/link.rb +2 -1
- data/app/concepts/matestack/ui/core/map/map.haml +3 -0
- data/app/concepts/matestack/ui/core/map/map.rb +11 -0
- data/app/concepts/matestack/ui/core/mark/mark.haml +5 -0
- data/app/concepts/matestack/ui/core/mark/mark.rb +4 -0
- data/app/concepts/matestack/ui/core/meter/meter.haml +4 -0
- data/app/concepts/matestack/ui/core/meter/meter.rb +14 -0
- data/app/concepts/matestack/ui/core/noscript/noscript.haml +5 -0
- data/app/concepts/matestack/ui/core/noscript/noscript.rb +5 -0
- data/app/concepts/matestack/ui/core/object/object.haml +1 -0
- data/app/concepts/matestack/ui/core/object/object.rb +15 -0
- data/app/concepts/matestack/ui/core/output/output.haml +5 -0
- data/app/concepts/matestack/ui/core/output/output.rb +11 -0
- data/app/concepts/matestack/ui/core/page/page.rb +31 -17
- data/app/concepts/matestack/ui/core/param/param.haml +1 -0
- data/app/concepts/matestack/ui/core/param/param.rb +10 -0
- data/app/concepts/matestack/ui/core/pre/pre.haml +5 -0
- data/app/concepts/matestack/ui/core/pre/pre.rb +5 -0
- data/app/concepts/matestack/ui/core/q/q.haml +5 -0
- data/app/concepts/matestack/ui/core/q/q.rb +11 -0
- data/app/concepts/matestack/ui/core/rp/rp.haml +5 -0
- data/app/concepts/matestack/ui/core/rp/rp.rb +5 -0
- data/app/concepts/matestack/ui/core/rt/rt.haml +5 -0
- data/app/concepts/matestack/ui/core/rt/rt.rb +5 -0
- data/app/concepts/matestack/ui/core/ruby/ruby.haml +5 -0
- data/app/concepts/matestack/ui/core/ruby/ruby.rb +5 -0
- data/app/concepts/matestack/ui/core/s/s.haml +5 -0
- data/app/concepts/matestack/ui/core/s/s.rb +6 -0
- data/app/concepts/matestack/ui/core/sup/sup.haml +5 -0
- data/app/concepts/matestack/ui/core/sup/sup.rb +5 -0
- data/app/concepts/matestack/ui/core/var/var.haml +5 -0
- data/app/concepts/matestack/ui/core/var/var.rb +4 -0
- data/app/concepts/matestack/ui/core/video/video.haml +3 -1
- data/app/concepts/matestack/ui/core/video/video.rb +17 -1
- data/app/lib/matestack/ui/core/component_node.rb +1 -1
- data/app/lib/matestack/ui/dynamic_actionview_component.rb +1 -0
- data/app/lib/matestack/ui/static_actionview_component.rb +1 -0
- data/config/routes.rb +0 -1
- data/lib/generators/matestack/app/USAGE +21 -0
- data/lib/generators/matestack/app/app_generator.rb +25 -0
- data/lib/generators/{matestack_app/templates/matestack_app_controller.erb → matestack/app/templates/app/controllers/%file_name%_controller.rb.tt} +0 -2
- data/lib/generators/matestack/app/templates/app/matestack/apps/%file_name%.rb.tt +28 -0
- data/lib/generators/matestack/component/USAGE +20 -0
- data/lib/generators/matestack/component/component_generator.rb +29 -0
- data/lib/generators/{matestack_component/templates/matestack_component.haml.erb → matestack/component/templates/app/matestack/components/%namespace%/%file_name%.haml.tt} +0 -0
- data/lib/generators/{matestack_component/templates/matestack_component.js.erb → matestack/component/templates/app/matestack/components/%namespace%/%file_name%.js.tt} +2 -2
- data/lib/generators/matestack/component/templates/app/matestack/components/%namespace%/%file_name%.rb.tt +11 -0
- data/lib/generators/{matestack_component/templates/matestack_component.scss.erb → matestack/component/templates/app/matestack/components/%namespace%/%file_name%.scss.tt} +0 -0
- data/lib/generators/matestack/core/component/USAGE +16 -0
- data/lib/generators/matestack/core/component/component_generator.rb +23 -0
- data/lib/generators/matestack/core/component/templates/app/concepts/matestack/ui/core/%file_name%/%file_name%.haml.tt +5 -0
- data/lib/generators/matestack/core/component/templates/app/concepts/matestack/ui/core/%file_name%/%file_name%.rb.tt +4 -0
- data/lib/generators/matestack/core/component/templates/docs/components/%file_name%.md.tt +44 -0
- data/lib/generators/matestack/core/component/templates/spec/usage/components/%file_name%_spec.rb +31 -0
- data/lib/generators/matestack/page/USAGE +28 -0
- data/lib/generators/matestack/page/page_generator.rb +54 -0
- data/lib/generators/matestack/page/templates/app/matestack/pages/%app_name%/%namespace%/%file_name%.rb.tt +28 -0
- data/lib/matestack/ui/core/version.rb +1 -1
- data/vendor/assets/javascripts/matestack-ui-core.js +3736 -2755
- data/vendor/assets/javascripts/matestack-ui-core.js.map +1 -1
- metadata +85 -20
- data/app/concepts/matestack/ui/core/view/view.haml +0 -2
- data/app/concepts/matestack/ui/core/view/view.js +0 -42
- data/app/concepts/matestack/ui/core/view/view.rb +0 -5
- data/lib/generators/matestack_app/USAGE +0 -21
- data/lib/generators/matestack_app/matestack_app_generator.rb +0 -26
- data/lib/generators/matestack_app/templates/matestack_app.erb +0 -26
- data/lib/generators/matestack_component/USAGE +0 -20
- data/lib/generators/matestack_component/matestack_component_generator.rb +0 -30
- data/lib/generators/matestack_component/templates/matestack_component.rb.erb +0 -13
- data/lib/generators/matestack_page/USAGE +0 -28
- data/lib/generators/matestack_page/matestack_page_generator.rb +0 -41
- data/lib/generators/matestack_page/templates/matestack_page.erb +0 -15
@@ -0,0 +1,14 @@
|
|
1
|
+
module Matestack::Ui::Core::Meter
|
2
|
+
class Meter < Matestack::Ui::Core::Component::Static
|
3
|
+
def setup
|
4
|
+
@tag_attributes.merge!({
|
5
|
+
value: options[:value],
|
6
|
+
min: options[:min],
|
7
|
+
max: options[:max],
|
8
|
+
low: options[:low],
|
9
|
+
high: options[:high],
|
10
|
+
optimum: options[:optimum]
|
11
|
+
})
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
%object{@tag_attributes}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Matestack::Ui::Core::Object
|
2
|
+
class Object < Matestack::Ui::Core::Component::Static
|
3
|
+
def setup
|
4
|
+
@tag_attributes.merge!({
|
5
|
+
width: options[:width],
|
6
|
+
height: options[:height],
|
7
|
+
data: options[:data],
|
8
|
+
form: options[:form],
|
9
|
+
name: options[:name],
|
10
|
+
type: options[:type],
|
11
|
+
usemap: options[:usemap]
|
12
|
+
})
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -91,23 +91,9 @@ module Matestack::Ui::Core::Page
|
|
91
91
|
concept(@app_class).call(:show, @page_id, @nodes)
|
92
92
|
when :render_component
|
93
93
|
begin
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
if page_content_keys.any?
|
98
|
-
keys_array = keys_array.drop(keys_array.find_index(page_content_keys[0])+2)
|
99
|
-
end
|
100
|
-
node = @nodes.dig(*keys_array)
|
101
|
-
cell = to_cell(component_key, node["component_name"], node["config"], node["argument"], node["components"], node["included_config"], node["cached_params"])
|
102
|
-
return cell.render_content
|
103
|
-
else
|
104
|
-
node = @nodes[component_key]
|
105
|
-
cell = to_cell(component_key, node["component_name"], node["config"], node["argument"], node["components"], node["included_config"], node["cached_params"])
|
106
|
-
return cell.render_content
|
107
|
-
end
|
108
|
-
rescue
|
109
|
-
raise "Component '#{component_key}' could not be resolved. Notice: Rerendering currently works only on page-level. \
|
110
|
-
You are therefore currently not able to use 'async' within a component for example!"
|
94
|
+
render_child_component component_key
|
95
|
+
rescue => e
|
96
|
+
raise "Component '#{component_key}' could not be resolved."
|
111
97
|
end
|
112
98
|
end
|
113
99
|
end
|
@@ -116,6 +102,34 @@ module Matestack::Ui::Core::Page
|
|
116
102
|
@custom_page_id ||= @page_id
|
117
103
|
end
|
118
104
|
|
105
|
+
def render_child_component component_key
|
106
|
+
if component_key.include?("__")
|
107
|
+
keys_array = component_key.gsub("__", "__components__").split("__").map {|k| k.to_s}
|
108
|
+
page_content_keys = keys_array.select{|key| key.match(/^page_content_/)}
|
109
|
+
if page_content_keys.any?
|
110
|
+
keys_array = keys_array.drop(keys_array.find_index(page_content_keys[0])+2)
|
111
|
+
end
|
112
|
+
if @nodes.dig(*keys_array) == nil
|
113
|
+
rest = []
|
114
|
+
while @nodes.dig(*keys_array) == nil
|
115
|
+
rest << keys_array.pop
|
116
|
+
end
|
117
|
+
node = @nodes.dig(*keys_array)
|
118
|
+
cell = to_cell(component_key, node["component_name"], node["config"], node["argument"], node["components"], node["included_config"], node["cached_params"])
|
119
|
+
return cell.render_child_component component_key, rest.reverse[1..-1]
|
120
|
+
else
|
121
|
+
node = @nodes.dig(*keys_array)
|
122
|
+
cell = to_cell(component_key, node["component_name"], node["config"], node["argument"], node["components"], node["included_config"], node["cached_params"])
|
123
|
+
return cell.render_content
|
124
|
+
end
|
125
|
+
else
|
126
|
+
node = @nodes[component_key]
|
127
|
+
cell = to_cell(component_key, node["component_name"], node["config"], node["argument"], node["components"], node["included_config"], node["cached_params"])
|
128
|
+
return cell.render_content
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
|
119
133
|
private
|
120
134
|
|
121
135
|
def resolve_isolated_component component_key
|
@@ -0,0 +1 @@
|
|
1
|
+
%param{@tag_attributes}
|
@@ -1 +1,3 @@
|
|
1
|
-
|
1
|
+
%video{@tag_attributes}
|
2
|
+
%source{:src => @source, :type => @type}
|
3
|
+
Your browser does not support the video tag.
|
@@ -1,7 +1,23 @@
|
|
1
1
|
module Matestack::Ui::Core::Video
|
2
2
|
class Video < Matestack::Ui::Core::Component::Static
|
3
3
|
|
4
|
-
REQUIRED_KEYS = [:path]
|
4
|
+
REQUIRED_KEYS = [:path, :type]
|
5
|
+
|
6
|
+
def setup
|
7
|
+
@tag_attributes.merge!({
|
8
|
+
autoplay: options[:autoplay],
|
9
|
+
controls: options[:controls],
|
10
|
+
height: options[:height],
|
11
|
+
loop: options[:loop],
|
12
|
+
muted: options[:muted],
|
13
|
+
playsinline: options[:playsinline],
|
14
|
+
preload: options[:preload],
|
15
|
+
width: options[:width]
|
16
|
+
})
|
17
|
+
|
18
|
+
@source = ActionController::Base.helpers.asset_path(options[:path])
|
19
|
+
@type = "video/#{@options[:type]}"
|
20
|
+
end
|
5
21
|
|
6
22
|
end
|
7
23
|
end
|
@@ -13,10 +13,10 @@ module Matestack::Ui::Core
|
|
13
13
|
@hash = {}
|
14
14
|
@node_start_id = 0
|
15
15
|
@component_instance = component_instance
|
16
|
-
@included_config = included_config
|
17
16
|
component_instance.instance_variables.each do |component_instance_var_key|
|
18
17
|
self.instance_variable_set(component_instance_var_key, component_instance.instance_variable_get(component_instance_var_key))
|
19
18
|
end
|
19
|
+
@included_config = included_config
|
20
20
|
end
|
21
21
|
|
22
22
|
def method_missing meth, *args, &block
|
@@ -0,0 +1 @@
|
|
1
|
+
Matestack::Ui::DynamicActionviewComponent = Matestack::Ui::Core::Actionview::Dynamic
|
@@ -0,0 +1 @@
|
|
1
|
+
Matestack::Ui::StaticActionviewComponent = Matestack::Ui::Core::Actionview::Static
|
data/config/routes.rb
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
Description:
|
2
|
+
Stubs out a new matestack app. Pass the app name under_scored.
|
3
|
+
|
4
|
+
If you want so, pass the option '--all_inclusive' to also create
|
5
|
+
a corresponding matestack example_page, a controller, its action
|
6
|
+
and the route in 'config/routes.rb'.
|
7
|
+
|
8
|
+
Example 1:
|
9
|
+
`rails generate matestack:app example_app`
|
10
|
+
|
11
|
+
This will create:
|
12
|
+
app/matestack/apps/example_app.rb
|
13
|
+
|
14
|
+
Example 2:
|
15
|
+
`rails generate matestack:app example_app --all_inclusive`
|
16
|
+
|
17
|
+
This will create:
|
18
|
+
app/matestack/apps/example_app.rb
|
19
|
+
app/matestack/pages/example_app/example_page.rb
|
20
|
+
app/controllers/example_app_controller.rb
|
21
|
+
route get 'example_app/example_page', to: 'example_app#example_page'
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Matestack
|
4
|
+
module Generators
|
5
|
+
class AppGenerator < Rails::Generators::NamedBase
|
6
|
+
source_root File.expand_path('templates', __dir__)
|
7
|
+
|
8
|
+
class_option :all_inclusive, type: :boolean, default: false
|
9
|
+
|
10
|
+
def create_app
|
11
|
+
template 'app/matestack/apps/%file_name%.rb.tt'
|
12
|
+
|
13
|
+
if options[:all_inclusive] == true
|
14
|
+
template 'app/controllers/%file_name%_controller.rb'
|
15
|
+
|
16
|
+
route %{get '#{file_name}/example_page', to: '#{file_name}\#example_page'}
|
17
|
+
|
18
|
+
generate "matestack:page example_page --app_name #{file_name} --called_by_app_generator=true"
|
19
|
+
|
20
|
+
puts "You can visit your new matestack apps' example page under http://localhost:3000/#{file_name}/example_page"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|