glimmer-dsl-web 0.1.1 → 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/CHANGELOG.md +4 -0
- data/README.md +76 -90
- data/VERSION +1 -1
- data/glimmer-dsl-web.gemspec +4 -3
- data/lib/glimmer/dsl/web/dsl.rb +1 -0
- data/lib/glimmer/dsl/web/style_expression.rb +27 -0
- data/lib/glimmer-dsl-web/samples/hello/hello_component.rb +6 -8
- data/lib/glimmer-dsl-web/samples/hello/hello_content_data_binding.rb +12 -14
- data/lib/glimmer-dsl-web/samples/hello/hello_data_binding.rb +8 -8
- data/lib/glimmer-dsl-web/samples/hello/hello_form.rb +1 -0
- data/lib/glimmer-dsl-web/samples/hello/hello_glimmer_component_helper/address_form.rb +6 -8
- data/lib/glimmer-dsl-web/samples/hello/hello_input_date_time.rb +9 -11
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 429afe58eb54b98a9aa229faeecbe09ceefb82ebae7e240ef3dd68ce63110164
|
4
|
+
data.tar.gz: '03469f3f04757d5b95aab910b1469047e467481aeaf6169ed69a33a8ab900b6f'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93b2b65475f2609476997bb7139e2078f8851b88e881d123af4298df2f293a8a2537eecf3f697d734d09e0a8d5ad87771b32899873b9161b74f3e5387e86df00
|
7
|
+
data.tar.gz: 7a37b8b255486545016a982522a52ee3cf00c8238557d396a874e38da8d5689fda9e8a8b021cb698f380f641e68d341b9b9e2ea10e035692192e534693cfac21
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 0.2.0
|
4
|
+
|
5
|
+
- Support `style` element content as Glimmer DSL for CSS syntax (Ruby Programmable CSS) as an alternative to a CSS `String`
|
6
|
+
|
3
7
|
## 0.1.1
|
4
8
|
|
5
9
|
- Upgrade to opal-jquery 0.5.1 (adds `# backtick_javascript: true` where needed to satisfy new Opal requirement)
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for Web 0.
|
1
|
+
# [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for Web 0.2.0 (Beta)
|
2
2
|
## Ruby in the Browser Web GUI Frontend Library
|
3
3
|
[](http://badge.fury.io/rb/glimmer-dsl-web)
|
4
4
|
[](https://gitter.im/AndyObtiva/glimmer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
@@ -131,6 +131,7 @@ Document.ready? do
|
|
131
131
|
|
132
132
|
# CSS Styles
|
133
133
|
style {
|
134
|
+
# CSS can be included as a String as done below, or as Glimmer DSL for CSS syntax (Ruby code) as done in other samples
|
134
135
|
<<~CSS
|
135
136
|
input {
|
136
137
|
margin: 5px;
|
@@ -392,15 +393,15 @@ Document.ready? do
|
|
392
393
|
}
|
393
394
|
}
|
394
395
|
|
396
|
+
# Programmable CSS using Glimmer DSL for CSS
|
395
397
|
style {
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
CSS
|
398
|
+
# `r` is an alias for `rule`, generating a CSS rule
|
399
|
+
r("#{address_div.selector} *") {
|
400
|
+
margin '5px'
|
401
|
+
}
|
402
|
+
r("#{address_div.selector} input, #{address_div.selector} select") {
|
403
|
+
grid_column '2'
|
404
|
+
}
|
404
405
|
}
|
405
406
|
}
|
406
407
|
|
@@ -528,20 +529,18 @@ Document.ready? do
|
|
528
529
|
}
|
529
530
|
|
530
531
|
style {
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
}
|
544
|
-
CSS
|
532
|
+
r(address_div.selector) {
|
533
|
+
margin '10px 0'
|
534
|
+
}
|
535
|
+
r("#{address_div.selector} *") {
|
536
|
+
margin '5px'
|
537
|
+
}
|
538
|
+
r("#{address_div.selector} label") {
|
539
|
+
grid_column '1'
|
540
|
+
}
|
541
|
+
r("#{address_div.selector} input, #{address_div.selector} select") {
|
542
|
+
grid_column '2'
|
543
|
+
}
|
545
544
|
}
|
546
545
|
}
|
547
546
|
}
|
@@ -708,14 +707,12 @@ class AddressForm
|
|
708
707
|
}
|
709
708
|
|
710
709
|
style {
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
}
|
718
|
-
CSS
|
710
|
+
r("#{address_div.selector} *") {
|
711
|
+
margin '5px'
|
712
|
+
}
|
713
|
+
r("#{address_div.selector} input, #{address_div.selector} select") {
|
714
|
+
grid_column '2'
|
715
|
+
}
|
719
716
|
}
|
720
717
|
}
|
721
718
|
|
@@ -957,14 +954,12 @@ class AddressForm
|
|
957
954
|
}
|
958
955
|
|
959
956
|
style {
|
960
|
-
|
961
|
-
|
962
|
-
|
963
|
-
|
964
|
-
|
965
|
-
|
966
|
-
}
|
967
|
-
CSS
|
957
|
+
r("#{address_div.selector} *") {
|
958
|
+
margin '5px'
|
959
|
+
}
|
960
|
+
r("#{address_div.selector} input, #{address_div.selector} select") {
|
961
|
+
grid_column '2'
|
962
|
+
}
|
968
963
|
}
|
969
964
|
}
|
970
965
|
|
@@ -1146,7 +1141,7 @@ rails new glimmer_app_server
|
|
1146
1141
|
Add the following to `Gemfile`:
|
1147
1142
|
|
1148
1143
|
```
|
1149
|
-
gem 'glimmer-dsl-web', '~> 0.
|
1144
|
+
gem 'glimmer-dsl-web', '~> 0.2.0'
|
1150
1145
|
```
|
1151
1146
|
|
1152
1147
|
Run:
|
@@ -1367,7 +1362,7 @@ Disable the `webpacker` gem line in `Gemfile`:
|
|
1367
1362
|
Add the following to `Gemfile`:
|
1368
1363
|
|
1369
1364
|
```ruby
|
1370
|
-
gem 'glimmer-dsl-web', '~> 0.
|
1365
|
+
gem 'glimmer-dsl-web', '~> 0.2.0'
|
1371
1366
|
```
|
1372
1367
|
|
1373
1368
|
Run:
|
@@ -1764,6 +1759,7 @@ Document.ready? do
|
|
1764
1759
|
|
1765
1760
|
# CSS Styles
|
1766
1761
|
style {
|
1762
|
+
# CSS can be included as a String as done below, or as Glimmer DSL for CSS syntax (Ruby code) as done in other samples
|
1767
1763
|
<<~CSS
|
1768
1764
|
input {
|
1769
1765
|
margin: 5px;
|
@@ -2082,14 +2078,12 @@ Document.ready? do
|
|
2082
2078
|
}
|
2083
2079
|
|
2084
2080
|
style {
|
2085
|
-
|
2086
|
-
|
2087
|
-
|
2088
|
-
|
2089
|
-
|
2090
|
-
|
2091
|
-
}
|
2092
|
-
CSS
|
2081
|
+
r("#{address_div.selector} *") {
|
2082
|
+
margin '5px'
|
2083
|
+
}
|
2084
|
+
r("#{address_div.selector} input, #{address_div.selector} select") {
|
2085
|
+
grid_column '2'
|
2086
|
+
}
|
2093
2087
|
}
|
2094
2088
|
}
|
2095
2089
|
|
@@ -2217,20 +2211,18 @@ Document.ready? do
|
|
2217
2211
|
}
|
2218
2212
|
|
2219
2213
|
style {
|
2220
|
-
|
2221
|
-
|
2222
|
-
|
2223
|
-
|
2224
|
-
|
2225
|
-
|
2226
|
-
|
2227
|
-
|
2228
|
-
|
2229
|
-
|
2230
|
-
|
2231
|
-
|
2232
|
-
}
|
2233
|
-
CSS
|
2214
|
+
r(address_div.selector) {
|
2215
|
+
margin '10px 0'
|
2216
|
+
}
|
2217
|
+
r("#{address_div.selector} *") {
|
2218
|
+
margin '5px'
|
2219
|
+
}
|
2220
|
+
r("#{address_div.selector} label") {
|
2221
|
+
grid_column '1'
|
2222
|
+
}
|
2223
|
+
r("#{address_div.selector} input, #{address_div.selector} select") {
|
2224
|
+
grid_column '2'
|
2225
|
+
}
|
2234
2226
|
}
|
2235
2227
|
}
|
2236
2228
|
}
|
@@ -2397,14 +2389,12 @@ class AddressForm
|
|
2397
2389
|
}
|
2398
2390
|
|
2399
2391
|
style {
|
2400
|
-
|
2401
|
-
|
2402
|
-
|
2403
|
-
|
2404
|
-
|
2405
|
-
|
2406
|
-
}
|
2407
|
-
CSS
|
2392
|
+
r("#{address_div.selector} *") {
|
2393
|
+
margin '5px'
|
2394
|
+
}
|
2395
|
+
r("#{address_div.selector} input, #{address_div.selector} select") {
|
2396
|
+
grid_column '2'
|
2397
|
+
}
|
2408
2398
|
}
|
2409
2399
|
}
|
2410
2400
|
|
@@ -2646,14 +2636,12 @@ class AddressForm
|
|
2646
2636
|
}
|
2647
2637
|
|
2648
2638
|
style {
|
2649
|
-
|
2650
|
-
|
2651
|
-
|
2652
|
-
|
2653
|
-
|
2654
|
-
|
2655
|
-
}
|
2656
|
-
CSS
|
2639
|
+
r("#{address_div.selector} *") {
|
2640
|
+
margin '5px'
|
2641
|
+
}
|
2642
|
+
r("#{address_div.selector} input, #{address_div.selector} select") {
|
2643
|
+
grid_column '2'
|
2644
|
+
}
|
2657
2645
|
}
|
2658
2646
|
}
|
2659
2647
|
|
@@ -2850,17 +2838,15 @@ Document.ready? do
|
|
2850
2838
|
}
|
2851
2839
|
|
2852
2840
|
style {
|
2853
|
-
|
2854
|
-
|
2855
|
-
|
2856
|
-
|
2857
|
-
|
2858
|
-
|
2859
|
-
|
2860
|
-
|
2861
|
-
|
2862
|
-
}
|
2863
|
-
CSS
|
2841
|
+
r("#{container_div.selector} *") {
|
2842
|
+
margin '5px'
|
2843
|
+
}
|
2844
|
+
r("#{container_div.selector} label") {
|
2845
|
+
grid_column '1'
|
2846
|
+
}
|
2847
|
+
r("#{container_div.selector} input") {
|
2848
|
+
grid_column '2'
|
2849
|
+
}
|
2864
2850
|
}
|
2865
2851
|
}
|
2866
2852
|
}
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/glimmer-dsl-web.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: glimmer-dsl-web 0.
|
5
|
+
# stub: glimmer-dsl-web 0.2.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "glimmer-dsl-web".freeze
|
9
|
-
s.version = "0.
|
9
|
+
s.version = "0.2.0".freeze
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib".freeze]
|
@@ -58,6 +58,7 @@ Gem::Specification.new do |s|
|
|
58
58
|
"lib/glimmer/dsl/web/property_expression.rb",
|
59
59
|
"lib/glimmer/dsl/web/select_expression.rb",
|
60
60
|
"lib/glimmer/dsl/web/shine_data_binding_expression.rb",
|
61
|
+
"lib/glimmer/dsl/web/style_expression.rb",
|
61
62
|
"lib/glimmer/helpers/glimmer_helper.rb",
|
62
63
|
"lib/glimmer/util/proc_tracker.rb",
|
63
64
|
"lib/glimmer/web.rb",
|
@@ -76,7 +77,7 @@ Gem::Specification.new do |s|
|
|
76
77
|
|
77
78
|
s.add_runtime_dependency(%q<glimmer>.freeze, ["~> 2.7.6".freeze])
|
78
79
|
s.add_runtime_dependency(%q<glimmer-dsl-xml>.freeze, ["~> 1.3.2".freeze])
|
79
|
-
s.add_runtime_dependency(%q<glimmer-dsl-css>.freeze, ["~> 1.2.
|
80
|
+
s.add_runtime_dependency(%q<glimmer-dsl-css>.freeze, ["~> 1.2.3".freeze])
|
80
81
|
s.add_runtime_dependency(%q<opal>.freeze, ["= 1.8.2".freeze])
|
81
82
|
s.add_runtime_dependency(%q<opal-rails>.freeze, ["= 2.0.3".freeze])
|
82
83
|
s.add_runtime_dependency(%q<opal-async>.freeze, ["~> 1.4.1".freeze])
|
data/lib/glimmer/dsl/web/dsl.rb
CHANGED
@@ -26,6 +26,7 @@ require 'glimmer/dsl/web/listener_expression'
|
|
26
26
|
require 'glimmer/dsl/web/property_expression'
|
27
27
|
require 'glimmer/dsl/web/p_expression'
|
28
28
|
require 'glimmer/dsl/web/select_expression'
|
29
|
+
require 'glimmer/dsl/web/style_expression'
|
29
30
|
require 'glimmer/dsl/web/bind_expression'
|
30
31
|
require 'glimmer/dsl/web/data_binding_expression'
|
31
32
|
require 'glimmer/dsl/web/content_data_binding_expression'
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'glimmer/dsl/static_expression'
|
2
|
+
require 'glimmer/dsl/web/general_element_expression'
|
3
|
+
|
4
|
+
module Glimmer
|
5
|
+
module DSL
|
6
|
+
module Web
|
7
|
+
class StyleExpression < StaticExpression
|
8
|
+
include GeneralElementExpression
|
9
|
+
include Glimmer
|
10
|
+
|
11
|
+
def add_content(parent, keyword, *args, &block)
|
12
|
+
if parent.rendered? || parent.skip_content_on_render_blocks?
|
13
|
+
return_value = css(&block).to_s
|
14
|
+
return_value = super(parent, keyword, *args, &block) if return_value.to_s.empty?
|
15
|
+
if return_value.is_a?(String) && parent.dom_element.text.to_s.empty?
|
16
|
+
parent.add_text_content(return_value)
|
17
|
+
end
|
18
|
+
parent.post_add_content
|
19
|
+
return_value
|
20
|
+
else
|
21
|
+
parent.add_content_on_render(&block)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -158,14 +158,12 @@ class AddressForm
|
|
158
158
|
}
|
159
159
|
|
160
160
|
style {
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
}
|
168
|
-
CSS
|
161
|
+
r("#{address_div.selector} *") {
|
162
|
+
margin '5px'
|
163
|
+
}
|
164
|
+
r("#{address_div.selector} input, #{address_div.selector} select") {
|
165
|
+
grid_column '2'
|
166
|
+
}
|
169
167
|
}
|
170
168
|
}
|
171
169
|
|
@@ -117,20 +117,18 @@ Document.ready? do
|
|
117
117
|
}
|
118
118
|
|
119
119
|
style {
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
}
|
133
|
-
CSS
|
120
|
+
r(address_div.selector) {
|
121
|
+
margin '10px 0'
|
122
|
+
}
|
123
|
+
r("#{address_div.selector} *") {
|
124
|
+
margin '5px'
|
125
|
+
}
|
126
|
+
r("#{address_div.selector} label") {
|
127
|
+
grid_column '1'
|
128
|
+
}
|
129
|
+
r("#{address_div.selector} input, #{address_div.selector} select") {
|
130
|
+
grid_column '2'
|
131
|
+
}
|
134
132
|
}
|
135
133
|
}
|
136
134
|
}
|
@@ -156,15 +156,15 @@ Document.ready? do
|
|
156
156
|
}
|
157
157
|
}
|
158
158
|
|
159
|
+
# Programmable CSS using Glimmer DSL for CSS
|
159
160
|
style {
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
CSS
|
161
|
+
# `r` is an alias for `rule`, generating a CSS rule
|
162
|
+
r("#{address_div.selector} *") {
|
163
|
+
margin '5px'
|
164
|
+
}
|
165
|
+
r("#{address_div.selector} input, #{address_div.selector} select") {
|
166
|
+
grid_column '2'
|
167
|
+
}
|
168
168
|
}
|
169
169
|
}
|
170
170
|
|
@@ -135,14 +135,12 @@ class AddressForm
|
|
135
135
|
}
|
136
136
|
|
137
137
|
style {
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
}
|
145
|
-
CSS
|
138
|
+
r("#{address_div.selector} *") {
|
139
|
+
margin '5px'
|
140
|
+
}
|
141
|
+
r("#{address_div.selector} input, #{address_div.selector} select") {
|
142
|
+
grid_column '2'
|
143
|
+
}
|
146
144
|
}
|
147
145
|
}
|
148
146
|
|
@@ -100,17 +100,15 @@ Document.ready? do
|
|
100
100
|
}
|
101
101
|
|
102
102
|
style {
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
}
|
113
|
-
CSS
|
103
|
+
r("#{container_div.selector} *") {
|
104
|
+
margin '5px'
|
105
|
+
}
|
106
|
+
r("#{container_div.selector} label") {
|
107
|
+
grid_column '1'
|
108
|
+
}
|
109
|
+
r("#{container_div.selector} input") {
|
110
|
+
grid_column '2'
|
111
|
+
}
|
114
112
|
}
|
115
113
|
}
|
116
114
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glimmer-dsl-web
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Maleh
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.2.
|
47
|
+
version: 1.2.3
|
48
48
|
type: :runtime
|
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: 1.2.
|
54
|
+
version: 1.2.3
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: opal
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -287,6 +287,7 @@ files:
|
|
287
287
|
- lib/glimmer/dsl/web/property_expression.rb
|
288
288
|
- lib/glimmer/dsl/web/select_expression.rb
|
289
289
|
- lib/glimmer/dsl/web/shine_data_binding_expression.rb
|
290
|
+
- lib/glimmer/dsl/web/style_expression.rb
|
290
291
|
- lib/glimmer/helpers/glimmer_helper.rb
|
291
292
|
- lib/glimmer/util/proc_tracker.rb
|
292
293
|
- lib/glimmer/web.rb
|