glimmer-dsl-web 0.0.6 → 0.0.7
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/LICENSE.txt +1 -1
- data/README.md +164 -24
- data/VERSION +1 -1
- data/glimmer-dsl-web.gemspec +5 -5
- data/lib/glimmer/data_binding/element_binding.rb +1 -1
- data/lib/glimmer/dsl/web/bind_expression.rb +1 -1
- data/lib/glimmer/util/proc_tracker.rb +1 -1
- data/lib/glimmer/web/element_proxy.rb +120 -458
- data/lib/glimmer/web/event_proxy.rb +1 -1
- data/lib/glimmer/web/listener_proxy.rb +1 -1
- data/lib/glimmer/web.rb +1 -1
- data/lib/glimmer-dsl-web/ext/date.rb +4 -1
- data/lib/glimmer-dsl-web/samples/hello/hello_button.rb +1 -1
- data/lib/glimmer-dsl-web/samples/hello/hello_data_binding.rb +26 -11
- data/lib/glimmer-dsl-web/samples/hello/hello_form.rb +1 -1
- data/lib/glimmer-dsl-web/samples/hello/hello_input_date_time.rb +117 -0
- data/lib/glimmer-dsl-web/samples/hello/hello_world.rb +1 -1
- data/lib/glimmer-dsl-web.rb +1 -1
- metadata +3 -3
- data/lib/glimmer/web/property_owner.rb +0 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2615511253319f0227b782825764b4b009c0a3d4072b366d7409a3255f653d47
|
4
|
+
data.tar.gz: 0d09f5a38cd26cd6f8edad82aab884b89178ffa79043e5e7dc88fbd19f2e5958
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 54ce5174ba09451931424f9c7d30b4abc7aebfd8486ecb6fe0863ece4a4747c908c9445753cc68e535bfb90835d1ad1951fde8f31f9fe2e90f34980754b4ecbf
|
7
|
+
data.tar.gz: d654378ed6fa4c7d05322c09054a44039d83ef2d4dcecc048963b2dc31c723a68c679072f71da2a1984ba94cd4630a382d363928ca57315ca673ae33dfe62d59
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 0.0.7
|
4
|
+
|
5
|
+
- Support input[type=number] value data-binding as a Ruby Numeric object (Integer or Float)
|
6
|
+
- Support input[type=range] value data-binding as a Ruby Numeric object (Integer or Float)
|
7
|
+
- Support input[type=datetime-local] value data-binding as a Ruby Time object
|
8
|
+
- Support input[type=date] value data-binding as a Ruby Date object
|
9
|
+
- Support input[type=time] value data-binding as a Ruby Time object
|
10
|
+
- Update Hello, Data-Binding! Sample to include a checkbox
|
11
|
+
- New Hello, Input (Date/Time)! Sample: `require 'glimmer-dsl-web/samples/hello/hello_input'`
|
12
|
+
|
3
13
|
## 0.0.6
|
4
14
|
|
5
15
|
- Support attribute unidirectional/bidirectional data-binding
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,9 +1,9 @@
|
|
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.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.0.7 (Early Alpha)
|
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)
|
5
5
|
|
6
|
-
[Glimmer](https://github.com/AndyObtiva/glimmer) DSL for Web enables building Web GUI frontends using [Ruby in the Browser](https://www.youtube.com/watch?v=4AdcfbI6A4c), as per [Matz's recommendation in his RubyConf 2022 keynote speech to replace JavaScript with Ruby](https://youtu.be/knutsgHTrfQ?t=789). It aims at providing the simplest frontend library in existence. The library follows the Ruby way (with [DSLs](https://martinfowler.com/books/dsl.html) and [TIMTOWTDI](https://en.wiktionary.org/wiki/TMTOWTDI#English)) and the Rails way ([Convention over Configuration](https://rubyonrails.org/doctrine)) while supporting both Unidirectional (One-Way) Data-Binding (using `<=`) and Bidirectional (Two-Way) Data-Binding (using `<=>`). You can finally live in pure Rubyland on the Web in both the frontend and backend with [Glimmer DSL for Web](https://rubygems.org/gems/glimmer-dsl-web)!
|
6
|
+
[Glimmer](https://github.com/AndyObtiva/glimmer) DSL for Web enables building Web GUI frontends using [Ruby in the Browser](https://www.youtube.com/watch?v=4AdcfbI6A4c), as per [Matz's recommendation in his RubyConf 2022 keynote speech to replace JavaScript with Ruby](https://youtu.be/knutsgHTrfQ?t=789). It aims at providing the simplest, most intuitive, and most straight-forward frontend library in existence. The library follows the Ruby way (with [DSLs](https://martinfowler.com/books/dsl.html) and [TIMTOWTDI](https://en.wiktionary.org/wiki/TMTOWTDI#English)) and the Rails way ([Convention over Configuration](https://rubyonrails.org/doctrine)) while supporting both Unidirectional (One-Way) Data-Binding (using `<=`) and Bidirectional (Two-Way) Data-Binding (using `<=>`). You can finally live in pure Rubyland on the Web in both the frontend and backend with [Glimmer DSL for Web](https://rubygems.org/gems/glimmer-dsl-web)!
|
7
7
|
|
8
8
|
**Hello, World! Sample**
|
9
9
|
|
@@ -222,6 +222,8 @@ Screenshot:
|
|
222
222
|
|
223
223
|
**Hello, Data-Binding!**
|
224
224
|
|
225
|
+
[Glimmer DSL for Web](https://rubygems.org/gems/glimmer-dsl-web) intuitively supports both Unidirectional (One-Way) Data-Binding via the `<=` operator and Bidirectional (Two-Way) Data-Binding via the `<=>` operator, incredibly simplifying how to sync View properties with Model attributes with the simplest code to reason about.
|
226
|
+
|
225
227
|
Glimmer GUI code:
|
226
228
|
|
227
229
|
```ruby
|
@@ -239,7 +241,10 @@ Address = Struct.new(:street, :street2, :city, :state, :zip_code, keyword_init:
|
|
239
241
|
end
|
240
242
|
|
241
243
|
def summary
|
242
|
-
|
244
|
+
string_attributes = to_h.except(:billing_and_shipping)
|
245
|
+
summary = string_attributes.values.map(&:to_s).reject(&:empty?).join(', ')
|
246
|
+
summary += " (Billing & Shipping)" if billing_and_shipping
|
247
|
+
summary
|
243
248
|
end
|
244
249
|
end
|
245
250
|
|
@@ -248,14 +253,15 @@ end
|
|
248
253
|
street2: 'Apartment 3C, 2nd door to the right',
|
249
254
|
city: 'San Diego',
|
250
255
|
state: 'California',
|
251
|
-
zip_code: '91911'
|
256
|
+
zip_code: '91911',
|
257
|
+
billing_and_shipping: true,
|
252
258
|
)
|
253
259
|
|
254
260
|
include Glimmer
|
255
261
|
|
256
262
|
Document.ready? do
|
257
263
|
div {
|
258
|
-
|
264
|
+
div(style: 'display: grid; grid-auto-columns: 80px 260px;') { |address_div|
|
259
265
|
label('Street: ', for: 'street-field')
|
260
266
|
input(id: 'street-field') {
|
261
267
|
# Bidirectional Data-Binding with <=> ensures input.value and @address.street
|
@@ -289,16 +295,25 @@ Document.ready? do
|
|
289
295
|
# on_write option specifies :to_s method to invoke on value before writing to model attribute
|
290
296
|
# to ensure the numeric zip code value is stored as a String
|
291
297
|
value <=> [@address, :zip_code,
|
292
|
-
on_write: :to_s
|
298
|
+
on_write: :to_s,
|
293
299
|
]
|
294
300
|
}
|
295
301
|
|
302
|
+
div(style: 'grid-column: 1 / span 2') {
|
303
|
+
input(id: 'billing-and-shipping-field', type: 'checkbox') {
|
304
|
+
checked <=> [@address, :billing_and_shipping]
|
305
|
+
}
|
306
|
+
label(for: 'billing-and-shipping-field') {
|
307
|
+
'Use this address for both Billing & Shipping'
|
308
|
+
}
|
309
|
+
}
|
310
|
+
|
296
311
|
style {
|
297
312
|
<<~CSS
|
298
|
-
|
313
|
+
#{address_div.selector} * {
|
299
314
|
margin: 5px;
|
300
315
|
}
|
301
|
-
|
316
|
+
#{address_div.selector} input, #{address_div.selector} select {
|
302
317
|
grid-column: 2;
|
303
318
|
}
|
304
319
|
CSS
|
@@ -306,10 +321,12 @@ Document.ready? do
|
|
306
321
|
}
|
307
322
|
|
308
323
|
div(style: 'margin: 5px') {
|
309
|
-
# Unidirectional Data-Binding is done with <= to ensure @address.summary changes
|
310
|
-
#
|
324
|
+
# Unidirectional Data-Binding is done with <= to ensure @address.summary changes
|
325
|
+
# automatically update div.inner_text
|
326
|
+
# (computed by changes to address attributes, meaning if street changes,
|
327
|
+
# @address.summary is automatically recomputed.)
|
311
328
|
inner_text <= [@address, :summary,
|
312
|
-
computed_by: @address.members + ['state_code']
|
329
|
+
computed_by: @address.members + ['state_code'],
|
313
330
|
]
|
314
331
|
}
|
315
332
|
}.render
|
@@ -424,6 +441,7 @@ Learn more about the differences between various [Glimmer](https://github.com/An
|
|
424
441
|
- [Hello, Button!](#hello-button)
|
425
442
|
- [Hello, Form!](#hello-form)
|
426
443
|
- [Hello, Data-Binding!](#hello-data-binding)
|
444
|
+
- [Hello, Input (Date/Time)!](#hello-input-datetime)
|
427
445
|
- [Button Counter](#button-counter)
|
428
446
|
- [Glimmer Process](#glimmer-process)
|
429
447
|
- [Help](#help)
|
@@ -446,7 +464,7 @@ Learn more about the differences between various [Glimmer](https://github.com/An
|
|
446
464
|
|
447
465
|
## Setup
|
448
466
|
|
449
|
-
(NOTE: Keep in mind this is
|
467
|
+
(NOTE: Keep in mind this is an Early Alpha. If you run into issues, try to go back to a [previous revision](https://rubygems.org/gems/glimmer-dsl-web/versions). Also, there is a slight chance any issues you encounter are fixed in master or some other branch that you could check out instead)
|
450
468
|
|
451
469
|
The [glimmer-dsl-web](https://rubygems.org/gems/glimmer-dsl-web) gem is a [Rails Engine](https://guides.rubyonrails.org/engines.html) gem that includes assets.
|
452
470
|
|
@@ -473,7 +491,7 @@ gem 'opal', '1.4.1'
|
|
473
491
|
gem 'opal-rails', '2.0.2'
|
474
492
|
gem 'opal-async', '~> 1.4.0'
|
475
493
|
gem 'opal-jquery', '~> 0.4.6'
|
476
|
-
gem 'glimmer-dsl-web', '~> 0.0.
|
494
|
+
gem 'glimmer-dsl-web', '~> 0.0.7'
|
477
495
|
gem 'glimmer-dsl-xml', '~> 1.3.1', require: false
|
478
496
|
gem 'glimmer-dsl-css', '~> 1.2.1', require: false
|
479
497
|
```
|
@@ -618,7 +636,7 @@ gem 'opal', '1.4.1'
|
|
618
636
|
gem 'opal-rails', '2.0.2'
|
619
637
|
gem 'opal-async', '~> 1.4.0'
|
620
638
|
gem 'opal-jquery', '~> 0.4.6'
|
621
|
-
gem 'glimmer-dsl-web', '~> 0.0.
|
639
|
+
gem 'glimmer-dsl-web', '~> 0.0.7'
|
622
640
|
gem 'glimmer-dsl-xml', '~> 1.3.1', require: false
|
623
641
|
gem 'glimmer-dsl-css', '~> 1.2.1', require: false
|
624
642
|
```
|
@@ -1140,7 +1158,10 @@ Address = Struct.new(:street, :street2, :city, :state, :zip_code, keyword_init:
|
|
1140
1158
|
end
|
1141
1159
|
|
1142
1160
|
def summary
|
1143
|
-
|
1161
|
+
string_attributes = to_h.except(:billing_and_shipping)
|
1162
|
+
summary = string_attributes.values.map(&:to_s).reject(&:empty?).join(', ')
|
1163
|
+
summary += " (Billing & Shipping)" if billing_and_shipping
|
1164
|
+
summary
|
1144
1165
|
end
|
1145
1166
|
end
|
1146
1167
|
|
@@ -1149,14 +1170,15 @@ end
|
|
1149
1170
|
street2: 'Apartment 3C, 2nd door to the right',
|
1150
1171
|
city: 'San Diego',
|
1151
1172
|
state: 'California',
|
1152
|
-
zip_code: '91911'
|
1173
|
+
zip_code: '91911',
|
1174
|
+
billing_and_shipping: true,
|
1153
1175
|
)
|
1154
1176
|
|
1155
1177
|
include Glimmer
|
1156
1178
|
|
1157
1179
|
Document.ready? do
|
1158
1180
|
div {
|
1159
|
-
|
1181
|
+
div(style: 'display: grid; grid-auto-columns: 80px 260px;') { |address_div|
|
1160
1182
|
label('Street: ', for: 'street-field')
|
1161
1183
|
input(id: 'street-field') {
|
1162
1184
|
# Bidirectional Data-Binding with <=> ensures input.value and @address.street
|
@@ -1190,16 +1212,25 @@ Document.ready? do
|
|
1190
1212
|
# on_write option specifies :to_s method to invoke on value before writing to model attribute
|
1191
1213
|
# to ensure the numeric zip code value is stored as a String
|
1192
1214
|
value <=> [@address, :zip_code,
|
1193
|
-
on_write: :to_s
|
1215
|
+
on_write: :to_s,
|
1194
1216
|
]
|
1195
1217
|
}
|
1196
1218
|
|
1219
|
+
div(style: 'grid-column: 1 / span 2') {
|
1220
|
+
input(id: 'billing-and-shipping-field', type: 'checkbox') {
|
1221
|
+
checked <=> [@address, :billing_and_shipping]
|
1222
|
+
}
|
1223
|
+
label(for: 'billing-and-shipping-field') {
|
1224
|
+
'Use this address for both Billing & Shipping'
|
1225
|
+
}
|
1226
|
+
}
|
1227
|
+
|
1197
1228
|
style {
|
1198
1229
|
<<~CSS
|
1199
|
-
|
1230
|
+
#{address_div.selector} * {
|
1200
1231
|
margin: 5px;
|
1201
1232
|
}
|
1202
|
-
|
1233
|
+
#{address_div.selector} input, #{address_div.selector} select {
|
1203
1234
|
grid-column: 2;
|
1204
1235
|
}
|
1205
1236
|
CSS
|
@@ -1207,10 +1238,12 @@ Document.ready? do
|
|
1207
1238
|
}
|
1208
1239
|
|
1209
1240
|
div(style: 'margin: 5px') {
|
1210
|
-
# Unidirectional Data-Binding is done with <= to ensure @address.summary changes
|
1211
|
-
#
|
1241
|
+
# Unidirectional Data-Binding is done with <= to ensure @address.summary changes
|
1242
|
+
# automatically update div.inner_text
|
1243
|
+
# (computed by changes to address attributes, meaning if street changes,
|
1244
|
+
# @address.summary is automatically recomputed.)
|
1212
1245
|
inner_text <= [@address, :summary,
|
1213
|
-
computed_by: @address.members + ['state_code']
|
1246
|
+
computed_by: @address.members + ['state_code'],
|
1214
1247
|
]
|
1215
1248
|
}
|
1216
1249
|
}.render
|
@@ -1221,6 +1254,113 @@ Screenshot:
|
|
1221
1254
|
|
1222
1255
|

|
1223
1256
|
|
1257
|
+
#### Hello, Input (Date/Time)!
|
1258
|
+
|
1259
|
+
Glimmer GUI code:
|
1260
|
+
|
1261
|
+
```ruby
|
1262
|
+
require 'glimmer-dsl-web'
|
1263
|
+
|
1264
|
+
class TimePresenter
|
1265
|
+
attr_accessor :date_time, :month_string, :week_string
|
1266
|
+
|
1267
|
+
def initialize
|
1268
|
+
@date_time = Time.now
|
1269
|
+
end
|
1270
|
+
|
1271
|
+
def month_string
|
1272
|
+
@date_time&.strftime('%Y-%m')
|
1273
|
+
end
|
1274
|
+
|
1275
|
+
def month_string=(value)
|
1276
|
+
if value.match(/^\d{4}-\d{2}$/)
|
1277
|
+
year, month = value.split('-')
|
1278
|
+
self.date_time = Time.new(year, month, date_time.day, date_time.hour, date_time.min)
|
1279
|
+
end
|
1280
|
+
end
|
1281
|
+
|
1282
|
+
def week_string
|
1283
|
+
return nil if @date_time.nil?
|
1284
|
+
year = @date_time.year
|
1285
|
+
week = ((@date_time.yday / 7).to_i + 1).to_s.rjust(2, '0')
|
1286
|
+
"#{year}-W#{week}"
|
1287
|
+
end
|
1288
|
+
|
1289
|
+
def date_time_string
|
1290
|
+
@date_time&.strftime('%Y-%m-%dT%H:%M')
|
1291
|
+
end
|
1292
|
+
|
1293
|
+
def date_time_string=(value)
|
1294
|
+
if value.match(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}$/)
|
1295
|
+
date_time_parts = value.split('T')
|
1296
|
+
date_parts = date_time_parts.first.split('-')
|
1297
|
+
time_parts = date_time_parts.last.split(':')
|
1298
|
+
self.date_time = Time.new(*date_parts, *time_parts)
|
1299
|
+
end
|
1300
|
+
end
|
1301
|
+
end
|
1302
|
+
|
1303
|
+
@time_presenter = TimePresenter.new
|
1304
|
+
|
1305
|
+
include Glimmer
|
1306
|
+
|
1307
|
+
Document.ready? do
|
1308
|
+
div {
|
1309
|
+
div(style: 'display: grid; grid-auto-columns: 130px 260px;') { |container_div|
|
1310
|
+
label('Date Time: ', for: 'date-time-field')
|
1311
|
+
input(id: 'date-time-field', type: 'datetime-local') {
|
1312
|
+
# Bidirectional Data-Binding with <=> ensures input.value and @time_presenter.date_time
|
1313
|
+
# automatically stay in sync when either side changes
|
1314
|
+
value <=> [@time_presenter, :date_time]
|
1315
|
+
}
|
1316
|
+
|
1317
|
+
label('Date: ', for: 'date-field')
|
1318
|
+
input(id: 'date-field', type: 'date') {
|
1319
|
+
value <=> [@time_presenter, :date_time]
|
1320
|
+
}
|
1321
|
+
|
1322
|
+
label('Time: ', for: 'time-field')
|
1323
|
+
input(id: 'time-field', type: 'time') {
|
1324
|
+
value <=> [@time_presenter, :date_time]
|
1325
|
+
}
|
1326
|
+
|
1327
|
+
label('Month: ', for: 'month-field')
|
1328
|
+
input(id: 'month-field', type: 'month') {
|
1329
|
+
value <=> [@time_presenter, :month_string, computed_by: :date_time]
|
1330
|
+
}
|
1331
|
+
|
1332
|
+
label('Week: ', for: 'week-field')
|
1333
|
+
input(id: 'week-field', type: 'week', disabled: true) {
|
1334
|
+
value <=> [@time_presenter, :week_string, computed_by: :date_time]
|
1335
|
+
}
|
1336
|
+
|
1337
|
+
label('Time String: ', for: 'time-string-field')
|
1338
|
+
input(id: 'time-string-field', type: 'text') {
|
1339
|
+
value <=> [@time_presenter, :date_time_string, computed_by: :date_time]
|
1340
|
+
}
|
1341
|
+
|
1342
|
+
style {
|
1343
|
+
<<~CSS
|
1344
|
+
#{container_div.selector} * {
|
1345
|
+
margin: 5px;
|
1346
|
+
}
|
1347
|
+
#{container_div.selector} label {
|
1348
|
+
grid-column: 1;
|
1349
|
+
}
|
1350
|
+
#{container_div.selector} input {
|
1351
|
+
grid-column: 2;
|
1352
|
+
}
|
1353
|
+
CSS
|
1354
|
+
}
|
1355
|
+
}
|
1356
|
+
}.render
|
1357
|
+
end
|
1358
|
+
```
|
1359
|
+
|
1360
|
+
Screenshot:
|
1361
|
+
|
1362
|
+

|
1363
|
+
|
1224
1364
|
#### Button Counter
|
1225
1365
|
|
1226
1366
|
**UPCOMING (NOT RELEASED OR SUPPORTED YET)**
|
@@ -1351,7 +1491,7 @@ These features have been suggested. You might see them in a future version of Gl
|
|
1351
1491
|
|
1352
1492
|
[MIT](https://opensource.org/licenses/MIT)
|
1353
1493
|
|
1354
|
-
Copyright (c) 2023 - Andy Maleh.
|
1494
|
+
Copyright (c) 2023-2024 - Andy Maleh.
|
1355
1495
|
See [LICENSE.txt](LICENSE.txt) for further details.
|
1356
1496
|
|
1357
1497
|
--
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.7
|
data/glimmer-dsl-web.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
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.0.
|
5
|
+
# stub: glimmer-dsl-web 0.0.7 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "glimmer-dsl-web".freeze
|
9
|
-
s.version = "0.0.
|
9
|
+
s.version = "0.0.7".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]
|
13
13
|
s.authors = ["Andy Maleh".freeze]
|
14
|
-
s.date = "2024-01-
|
14
|
+
s.date = "2024-01-02"
|
15
15
|
s.description = "Glimmer DSL for Web (Ruby in the Browser Web GUI Frontend Library) - Enables frontend GUI development with Ruby by adopting a DSL that follows web-like HTML syntax, enabling the transfer of HTML/CSS/JS skills to Ruby frontend development. This library relies on Opal Ruby.".freeze
|
16
16
|
s.email = "andy.am@gmail.com".freeze
|
17
17
|
s.extra_rdoc_files = [
|
@@ -33,6 +33,7 @@ Gem::Specification.new do |s|
|
|
33
33
|
"lib/glimmer-dsl-web/samples/hello/hello_button.rb",
|
34
34
|
"lib/glimmer-dsl-web/samples/hello/hello_data_binding.rb",
|
35
35
|
"lib/glimmer-dsl-web/samples/hello/hello_form.rb",
|
36
|
+
"lib/glimmer-dsl-web/samples/hello/hello_input_date_time.rb",
|
36
37
|
"lib/glimmer-dsl-web/samples/hello/hello_world.rb",
|
37
38
|
"lib/glimmer-dsl-web/vendor/jquery.js",
|
38
39
|
"lib/glimmer/config/opal_logger.rb",
|
@@ -51,8 +52,7 @@ Gem::Specification.new do |s|
|
|
51
52
|
"lib/glimmer/web.rb",
|
52
53
|
"lib/glimmer/web/element_proxy.rb",
|
53
54
|
"lib/glimmer/web/event_proxy.rb",
|
54
|
-
"lib/glimmer/web/listener_proxy.rb"
|
55
|
-
"lib/glimmer/web/property_owner.rb"
|
55
|
+
"lib/glimmer/web/listener_proxy.rb"
|
56
56
|
]
|
57
57
|
s.homepage = "http://github.com/AndyObtiva/glimmer-dsl-web".freeze
|
58
58
|
s.licenses = ["MIT".freeze]
|
@@ -24,7 +24,7 @@ module Glimmer
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def call(value)
|
27
|
-
converted_value = translated_value = @translator.call(value)
|
27
|
+
converted_value = translated_value = @translator.call(value, evaluate_property)
|
28
28
|
@element.send("#{@property}=", converted_value) unless evaluate_property == converted_value
|
29
29
|
end
|
30
30
|
|