glimmer-dsl-web 0.10.3 → 0.10.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9612f4c1844bb9ccf62e32d1682a71bb933268fc9e9a74837a89a558001b96b0
4
- data.tar.gz: c6bffc8d775f74c96f13cad87702648f2da115fd7da7de998946a7dc33572410
3
+ metadata.gz: bb3e190dffb57fefc4c23410228b80e5de34131933904fab857e5d29707449de
4
+ data.tar.gz: 179affcfe00cb768f8d73058f91ff2a14091b9a26632122825bb1a4ad40ea660
5
5
  SHA512:
6
- metadata.gz: 5747a2f6092a03c2c0ae35c666f615aca23eac99b6b98eed533bf2876e747ca97bb33bd6a2f89285f34dcd0520873c2538e85306149cfbe5184fb921e4128928
7
- data.tar.gz: 381d39d680af48941b8282aa180e4f6cd6641f7c79e408739c4e2e4838507f7e084011408f59dc09c5183c39912ec8b1cf6abbdadcff0f0587ec6d9151104d82
6
+ metadata.gz: aeeab5675891c33b5024c3f815827efa4e06c605d116e673cb97631940a5a2e55d3cd014d07744c4e8c82510f8c593a9fbcd7e56871348cfb646d27f3136164f
7
+ data.tar.gz: fedc6227c24dfa601a51bee7de2b2f3f40ce022ec85894f6fdc732bb433aa0c1d3621def13671173d411f9b141121add014c60b5691f42f2e0a1a253aac5dd06
data/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # Change Log
2
2
 
3
+ ## 0.10.5
4
+
5
+ - Support `parent.before {}` & `parent.after {}` on `ElementProxy` and `Glimmer::Web::Component`, to insert elements before or after the parent element.
6
+ - Fixed issue with how `insert_at` was mistakenly adding a newly inserted element to the parent's parent's children
7
+ - Update Hello, Mutation! sample with "Insert before" and "Insert after" functionality
8
+ - Update Hello, Mutation Content Data-Binding! sample with "Insert before" and "Insert after" functionality
9
+
10
+ ## 0.10.4
11
+
12
+ - Support `parent.insert_at(index) {}` on `ElementProxy` and `Glimmer::Web::Component`, which is a method that inserts elements to the content of a parent element at a specified index.
13
+ - Support `parent.insert(index) {}` alias for `parent.insert_at(index) {}`
14
+ - Update Hello, Mutation! sample with "Insert list item" functionality
15
+ - Update Hello, Mutation Content Data-Binding! sample with "Insert list item" functionality
16
+ - Document DOM mutation operations in README
17
+
3
18
  ## 0.10.3
4
19
 
5
20
  - Support `parent.prepend {}` on `ElementProxy` and `Glimmer::Web::Component`, which is a method that prepends elements to the content of a parent element
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.10.3 (Beta)
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.10.5 (Beta)
2
2
  ## Ruby-in-the-Browser Web Frontend Framework
3
3
  ### The "Rails" of Frontend Frameworks!!! ([Fukuoka Award Winning](https://andymaleh.blogspot.com/2025/01/glimmer-dsl-for-web-wins-in-fukuoka.html))
4
4
  #### Finally, Ruby Developer Productivity, Happiness, and Fun in the Frontend!!!
@@ -1498,6 +1498,52 @@ p(class: 'summary') {
1498
1498
 
1499
1499
  You can get/set any element property or invoke any element function by simply calling the lowercase underscored version of their name in Ruby like `input.check_validity`, `input.value`, and `input.id`.
1500
1500
 
1501
+ Additionally, these DOM mutation operations are available as methods on elements/components acting as parents:
1502
+ - `parent.append { }` : apprends elements inside the content of the parent
1503
+ - `parent.prepend { }` : prepends elements inside the content of the parent
1504
+ - `parent.insert_at(index) { }` : inserts elements inside the content of the parent (`insert` is an alias for `insert_at`)
1505
+
1506
+ Example:
1507
+
1508
+ ```ruby
1509
+ div {
1510
+ div(class: 'actions') {
1511
+ @input = input(placeholder: 'Enter list item content')
1512
+
1513
+ @append_button = button('Append list item') {
1514
+ onclick do
1515
+ @list.append { # DOM mutation operation
1516
+ li { @input.value }
1517
+ }
1518
+ @input.value = ''
1519
+ @input.focus
1520
+ end
1521
+ }
1522
+ }
1523
+
1524
+ @list = ul
1525
+ }
1526
+ ```
1527
+
1528
+ Specifically, this line:
1529
+
1530
+ ```ruby
1531
+ @list.append {
1532
+ li { @input.value }
1533
+ }
1534
+ ```
1535
+
1536
+ You can append multiple elements too. Here is a different hypothetical example:
1537
+
1538
+ ```ruby
1539
+ @some_div.append {
1540
+ h1 { @post.title }
1541
+ p { @post.content }
1542
+ }
1543
+ ```
1544
+
1545
+ DOM mutation operations are useful for adding elements after the fact of initial rendering of the page as triggered by a user action or some system timer.
1546
+
1501
1547
  Next, check out [Samples](#samples).
1502
1548
 
1503
1549
  Note that for serious app usage, it is recommended to build [components](#hello-component) and use the [`glimmer_component` Rails Helper](#hello-glimmer_component-rails-helper) to embed the top-level Web Frontend component in a Rails View.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.10.3
1
+ 0.10.5
@@ -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.10.3 ruby lib
5
+ # stub: glimmer-dsl-web 0.10.5 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "glimmer-dsl-web".freeze
9
- s.version = "0.10.3".freeze
9
+ s.version = "0.10.5".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]
@@ -119,7 +119,7 @@ Gem::Specification.new do |s|
119
119
 
120
120
  s.specification_version = 4
121
121
 
122
- s.add_runtime_dependency(%q<glimmer>.freeze, ["~> 2.8.2".freeze])
122
+ s.add_runtime_dependency(%q<glimmer>.freeze, ["~> 2.8.3".freeze])
123
123
  s.add_runtime_dependency(%q<glimmer-dsl-xml>.freeze, ["~> 1.4.0".freeze])
124
124
  s.add_runtime_dependency(%q<glimmer-dsl-css>.freeze, ["~> 1.5.2".freeze])
125
125
  s.add_runtime_dependency(%q<opal>.freeze, [">= 1.8.2".freeze, "< 2.0.0".freeze])
@@ -14,7 +14,9 @@ module Glimmer
14
14
  def add_content(parent, keyword, *args, &block)
15
15
  options = args.last.is_a?(Hash) ? args.last : {}
16
16
  parent_original_add_child_mutation = parent&.add_child_mutation
17
+ parent_original_insert_index = parent&.insert_index
17
18
  parent&.add_child_mutation = options[:add_child_mutation] if options[:add_child_mutation]
19
+ parent&.insert_index = options[:insert_index] if options[:insert_index]
18
20
  if parent.bulk_render? || parent.rendered? || parent.skip_content_on_render_blocks?
19
21
  return_value = super(parent, keyword, *args, &block)
20
22
  parent.add_text_content(return_value, on_empty: true) if return_value.is_a?(String)
@@ -25,6 +27,7 @@ module Glimmer
25
27
  end
26
28
  ensure
27
29
  parent&.add_child_mutation = parent_original_add_child_mutation
30
+ parent&.insert_index = parent_original_insert_index
28
31
  end
29
32
  end
30
33
  end
@@ -516,6 +516,19 @@ module Glimmer
516
516
  @markup_root.prepend(bulk_render:, &block)
517
517
  end
518
518
 
519
+ def insert_at(index, bulk_render: false, &block)
520
+ @markup_root.insert_at(index, bulk_render:, &block)
521
+ end
522
+ alias insert insert_at
523
+
524
+ def before(bulk_render: false, &block)
525
+ @markup_root.before(bulk_render:, &block)
526
+ end
527
+
528
+ def after(bulk_render: false, &block)
529
+ @markup_root.after(bulk_render:, &block)
530
+ end
531
+
519
532
  def remove_all_listeners
520
533
  data_bindings.each do |option_binding, model_binding|
521
534
  option_binding.unregister_all_observables
@@ -176,6 +176,7 @@ module Glimmer
176
176
  REGEX_CLASS_NAME_SUB_PROPERTY = /^(class_name)_(.*)$/
177
177
 
178
178
  attr_reader :keyword, :parent, :parent_component, :ancestor_component, :component, :args, :options, :slot, :children, :enabled, :foreground, :background, :removed, :rendered
179
+ attr_accessor :insert_index # to be used when add_child_mutation is insert_at
179
180
  alias rendered? rendered
180
181
  alias removed? removed
181
182
 
@@ -223,7 +224,14 @@ module Glimmer
223
224
 
224
225
  # Executes for the parent of a child that just got added
225
226
  def post_initialize_child(child)
226
- @children << child
227
+ case self.add_child_mutation # TODO this is where the problem is.. It's an append instead of an insert_at
228
+ when :prepend
229
+ @children.prepend(child)
230
+ when :insert_at
231
+ @children.insert(self.insert_index, child)
232
+ else # append
233
+ @children << child
234
+ end
227
235
  child.render if !bulk_render? && !render_after_create?
228
236
  end
229
237
 
@@ -445,7 +453,7 @@ module Glimmer
445
453
  brand_new ||= @dom.nil? || !options[:parent].to_s.empty? || (old_element = dom_element).empty?
446
454
  build_dom(layout: !custom_parent_dom_element) # TODO handle custom parent layout by passing parent instead of parent dom element
447
455
  if brand_new
448
- attach(the_parent_dom_element, add_child_mutation: self.parent&.add_child_mutation || :append)
456
+ attach(the_parent_dom_element, add_child_mutation: self.parent&.add_child_mutation, insert_index: self.parent&.insert_index)
449
457
  else
450
458
  reattach(old_element)
451
459
  end
@@ -458,10 +466,17 @@ module Glimmer
458
466
  end
459
467
  alias rerender render
460
468
 
461
- def attach(the_parent_dom_element, add_child_mutation: :append)
462
- if add_child_mutation == :prepend
469
+ def attach(the_parent_dom_element, add_child_mutation: :append, insert_index: nil)
470
+ case add_child_mutation
471
+ when :prepend
463
472
  the_parent_dom_element.prepend(@dom)
464
- else
473
+ when :insert_at
474
+ if insert_index == the_parent_dom_element.children.size
475
+ the_parent_dom_element.append(@dom)
476
+ else
477
+ the_parent_dom_element.children.eq(insert_index).before(@dom)
478
+ end
479
+ else # append
465
480
  the_parent_dom_element.append(@dom)
466
481
  end
467
482
  end
@@ -568,10 +583,10 @@ module Glimmer
568
583
  @add_child_mutation = value
569
584
  end
570
585
 
571
- def content(bulk_render: false, add_child_mutation: :append, &block)
586
+ def content(bulk_render: false, add_child_mutation: :append, insert_index: nil, &block)
572
587
  original_bulk_render = options[:bulk_render]
573
588
  options[:bulk_render] = bulk_render if rendered?
574
- return_value = Glimmer::DSL::Engine.add_content(self, Glimmer::DSL::Web::ElementExpression.new, keyword, add_child_mutation:, &block)
589
+ return_value = Glimmer::DSL::Engine.add_content(self, Glimmer::DSL::Web::ElementExpression.new, keyword, add_child_mutation:, insert_index:, &block)
575
590
  options[:bulk_render] = original_bulk_render if rendered?
576
591
  return_value
577
592
  end
@@ -581,6 +596,24 @@ module Glimmer
581
596
  content(bulk_render:, add_child_mutation: :prepend, &block)
582
597
  end
583
598
 
599
+ def insert_at(index, bulk_render: false, &block)
600
+ index = index.to_i if index.is_a?(String) && index.match(/^\d+$/)
601
+ content(bulk_render:, add_child_mutation: :insert_at, insert_index: index, &block)
602
+ end
603
+ alias insert insert_at
604
+
605
+ def before(bulk_render: false, &block)
606
+ return if parent.nil?
607
+ parent_insert_index = parent.children.index(self)
608
+ parent.content(bulk_render:, add_child_mutation: :insert_at, insert_index: parent_insert_index, &block)
609
+ end
610
+
611
+ def after(bulk_render: false, &block)
612
+ return if parent.nil?
613
+ parent_insert_index = parent.children.index(self) + 1
614
+ parent.content(bulk_render:, add_child_mutation: :insert_at, insert_index: parent_insert_index, &block)
615
+ end
616
+
584
617
  # Subclasses must override with their own mappings
585
618
  def observation_request_to_event_mapping
586
619
  {}
@@ -1,49 +1,138 @@
1
1
  require 'glimmer-dsl-web'
2
2
 
3
- class HelloMutation
4
- include Glimmer::Web::Component
5
-
6
- markup {
7
- div {
8
- h1('Hello, Mutation!')
9
-
10
- p {
11
- 'Add items to a list via element DOM mutations.'
12
- }
13
-
14
- div(class: 'actions') {
15
- @input = input(placeholder: 'Enter list item content')
3
+ unless Object.const_defined?(:HelloMutation) # this is only needed in sample selector app due to file reloading, but not in real apps.
4
+ class HelloMutation
5
+ include Glimmer::Web::Component
6
+
7
+ before_render do
8
+ @action_buttons = []
9
+ end
10
+
11
+ after_render do
12
+ toggle_action_buttons_disabled(true)
13
+ end
14
+
15
+ markup {
16
+ div {
17
+ h1('Hello, Mutation!')
16
18
 
17
- button('Append list item') {
18
- onclick do
19
- @list.append {
20
- li { @input.value }
21
- }
22
- @input.value = ''
23
- @input.focus
24
- end
19
+ p {
20
+ 'Add items to a list via element DOM mutations.'
25
21
  }
26
22
 
27
- button('Prepend list item') {
28
- onclick do
29
- @list.prepend {
30
- li { @input.value }
31
- }
32
- @input.value = ''
33
- @input.focus
34
- end
23
+ div(class: 'actions') {
24
+ @input = input(placeholder: 'Enter list item content') {
25
+ oninput do
26
+ if @input.value.to_s.strip == ''
27
+ toggle_action_buttons_disabled(true)
28
+ else
29
+ toggle_action_buttons_disabled(false)
30
+ end
31
+ end
32
+ }
33
+
34
+ @action_buttons << button('Append list item') {
35
+ onclick do
36
+ @list.append {
37
+ new_li
38
+ }
39
+ reset_input_and_button_enablement
40
+ end
41
+ }
42
+
43
+ @action_buttons << button('Prepend list item') {
44
+ onclick do
45
+ @list.prepend {
46
+ new_li
47
+ }
48
+ reset_input_and_button_enablement
49
+ end
50
+ }
51
+
52
+ @action_buttons << button('Insert list item') {
53
+ onclick do
54
+ index = [@insert_index_input.value.to_i, @list.children.size].min
55
+ @list.insert_at(index) {
56
+ new_li
57
+ }
58
+ reset_input_and_button_enablement
59
+ end
60
+ }
61
+
62
+ label(for: 'insert-index-input') { 'at index: ' }
63
+ @insert_index_input = input(id: 'insert-index-input', type: 'number', value: 0, min: 0) {
64
+ oninput do
65
+ max_value = @list.children.size
66
+ @insert_index_input.value = max_value if @insert_index_input.value.to_i > max_value
67
+ end
68
+ }
35
69
  }
70
+
71
+ @list = ul
72
+ }
73
+ }
74
+
75
+ style {
76
+ r('.actions input, .actions button') {
77
+ margin '10px 10px 10px 0'
78
+ }
79
+
80
+ r('.actions input#insert-index-input') {
81
+ width 40
82
+ }
83
+
84
+ r('.actions label[for=insert-index-input]') {
85
+ margin_left -5
36
86
  }
37
87
 
38
- @list = ul
88
+ r('ul li') {
89
+ height 22.5
90
+ }
91
+
92
+ r('ul li button') {
93
+ display :none
94
+ margin_left 5
95
+ }
96
+
97
+ r('ul li:hover button') {
98
+ display :initial
99
+ }
39
100
  }
40
- }
101
+ end
41
102
 
42
- style {
43
- r('.actions input, .actions button') {
44
- margin '10px 10px 10px 0'
103
+ private
104
+
105
+ def new_li
106
+ li { |current_li|
107
+ span { @input.value }
108
+ @action_buttons << button('Insert before') {
109
+ onclick do
110
+ current_li.before {
111
+ new_li
112
+ }
113
+ reset_input_and_button_enablement
114
+ end
115
+ }
116
+ @action_buttons << button('Insert after') {
117
+ onclick do
118
+ current_li.after {
119
+ new_li
120
+ }
121
+ reset_input_and_button_enablement
122
+ end
123
+ }
45
124
  }
46
- }
125
+ end
126
+
127
+ def reset_input_and_button_enablement
128
+ toggle_action_buttons_disabled(true)
129
+ @input.value = ''
130
+ @input.focus
131
+ end
132
+
133
+ def toggle_action_buttons_disabled(disabled)
134
+ @action_buttons.each { |action_button| action_button.disabled = disabled }
135
+ end
47
136
  end
48
137
 
49
138
  Document.ready? do
@@ -1,81 +1,154 @@
1
1
  require 'glimmer-dsl-web'
2
2
 
3
- class ListPresenter
4
- attr_accessor :list, :new_list_item
5
-
6
- def initialize
7
- @list = []
8
- @new_list_item = ''
9
- end
10
-
11
- def append_list_item
12
- list.push(new_list_item)
13
- clear_new_list_item
14
- end
15
-
16
- def prepend_list_item
17
- list.prepend(new_list_item)
18
- clear_new_list_item
19
- end
20
-
21
- def clear_new_list_item
22
- self.new_list_item = ''
23
- end
24
-
25
- def entering_new_list_item?
26
- new_list_item.empty?
3
+ unless Object.const_defined?(:ListPresenter) # this is only needed in sample selector app due to file reloading, but not in real apps.
4
+ class ListPresenter
5
+ attr_accessor :list, :new_list_item, :insert_index
6
+
7
+ def initialize
8
+ @list = []
9
+ @new_list_item = ''
10
+ @insert_index = 0
11
+ end
12
+
13
+ def append_list_item
14
+ list.push(new_list_item)
15
+ clear_new_list_item
16
+ end
17
+
18
+ def prepend_list_item
19
+ list.prepend(new_list_item)
20
+ clear_new_list_item
21
+ end
22
+
23
+ def insert_list_item
24
+ list.insert(insert_index, new_list_item)
25
+ clear_new_list_item
26
+ end
27
+
28
+ def clear_new_list_item
29
+ self.new_list_item = ''
30
+ end
31
+
32
+ def entering_new_list_item?
33
+ new_list_item.empty?
34
+ end
35
+ alias edit_list_disabled? entering_new_list_item?
36
+
37
+ def max_insert_index
38
+ list.size
39
+ end
27
40
  end
28
41
  end
29
42
 
30
- class HelloMutationContentDataBinding
31
- include Glimmer::Web::Component
32
-
33
- before_render do
34
- @list_presenter = ListPresenter.new
35
- end
36
-
37
- markup {
38
- div {
39
- h1('Hello, Mutation Content Data-Binding!')
40
-
41
- p {
42
- 'Add items to a list via content data-binding (which performs implicit DOM mutations).'
43
- }
44
-
45
- div(class: 'actions') {
46
- @input = input(placeholder: 'Enter list item content') {
47
- value <=> [@list_presenter, :new_list_item]
48
- focused <= [@list_presenter, :entering_new_list_item?, computed_by: :new_list_item]
43
+ unless Object.const_defined?(:HelloMutationContentDataBinding) # this is only needed in sample selector app due to file reloading, but not in real apps.
44
+ class HelloMutationContentDataBinding
45
+ include Glimmer::Web::Component
46
+
47
+ before_render do
48
+ @list_presenter = ListPresenter.new
49
+ end
50
+
51
+ markup {
52
+ div {
53
+ h1('Hello, Mutation Content Data-Binding!')
54
+
55
+ p {
56
+ 'Add items to a list via content data-binding (which performs implicit DOM mutations).'
49
57
  }
50
58
 
51
- button('Append list item') {
52
- onclick do
53
- @list_presenter.append_list_item
54
- end
59
+ div(class: 'actions') {
60
+ input(placeholder: 'Enter list item content') {
61
+ value <=> [@list_presenter, :new_list_item]
62
+ focused <= [@list_presenter, :entering_new_list_item?, computed_by: :new_list_item]
63
+ }
64
+
65
+ button('Append list item') {
66
+ disabled <= [@list_presenter, :edit_list_disabled?, computed_by: :new_list_item]
67
+
68
+ onclick do
69
+ @list_presenter.append_list_item
70
+ end
71
+ }
72
+
73
+ button('Prepend list item') {
74
+ disabled <= [@list_presenter, :edit_list_disabled?, computed_by: :new_list_item]
75
+
76
+ onclick do
77
+ @list_presenter.prepend_list_item
78
+ end
79
+ }
80
+
81
+ button('Insert list item') {
82
+ disabled <= [@list_presenter, :edit_list_disabled?, computed_by: :new_list_item]
83
+
84
+ onclick do
85
+ @list_presenter.insert_list_item
86
+ end
87
+ }
88
+
89
+ label(for: 'insert-index-input') { 'at index: ' }
90
+ input(id: 'insert-index-input', type: 'number') {
91
+ value <=> [@list_presenter, :insert_index]
92
+ min 0
93
+ max <= [@list_presenter, :max_insert_index, computed_by: :list]
94
+ }
55
95
  }
56
96
 
57
- button('Prepend list item') {
58
- onclick do
59
- @list_presenter.prepend_list_item
60
- end
97
+ ul {
98
+ content(@list_presenter, :list) {
99
+ @list_presenter.list.each_with_index do |list_item, index|
100
+ li { |current_li|
101
+ span { list_item }
102
+ button('Insert before') {
103
+ disabled <= [@list_presenter, :edit_list_disabled?, computed_by: :new_list_item]
104
+
105
+ onclick do
106
+ @list_presenter.insert_index = index
107
+ @list_presenter.insert_list_item
108
+ end
109
+ }
110
+ button('Insert after') {
111
+ disabled <= [@list_presenter, :edit_list_disabled?, computed_by: :new_list_item]
112
+
113
+ onclick do
114
+ @list_presenter.insert_index = index + 1
115
+ @list_presenter.insert_list_item
116
+ end
117
+ }
118
+ }
119
+ end
120
+ }
61
121
  }
62
122
  }
123
+ }
124
+
125
+ style {
126
+ r('.actions input, .actions button') {
127
+ margin '10px 10px 10px 0'
128
+ }
63
129
 
64
- ul {
65
- content(@list_presenter, :list) {
66
- @list_presenter.list.each do |list_item|
67
- li { list_item }
68
- end
69
- }
130
+ r('.actions input#insert-index-input') {
131
+ width 40
132
+ }
133
+
134
+ r('.actions label[for=insert-index-input]') {
135
+ margin_left -5
136
+ }
137
+
138
+ r('ul li') {
139
+ height 22.5
140
+ }
141
+
142
+ r('ul li button') {
143
+ display :none
144
+ margin_left 5
145
+ }
146
+
147
+ r('ul li:hover button') {
148
+ display :initial
70
149
  }
71
150
  }
72
- }
73
-
74
- style {
75
- r('.actions input, .actions button') {
76
- margin '10px 10px 10px 0'
77
- }
78
- }
151
+ end
79
152
  end
80
153
 
81
154
  Document.ready? do
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.10.3
4
+ version: 0.10.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Maleh
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: 2.8.2
18
+ version: 2.8.3
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: 2.8.2
25
+ version: 2.8.3
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: glimmer-dsl-xml
28
28
  requirement: !ruby/object:Gem::Requirement