glimmer 1.1.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.0
1
+ 1.3.1
data/glimmer.gemspec CHANGED
@@ -1,18 +1,18 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in rakefile, and run 'rake gemspec'
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: glimmer 1.1.0 ruby lib
5
+ # stub: glimmer 1.3.1 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "glimmer".freeze
9
- s.version = "1.1.0"
9
+ s.version = "1.3.1"
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 = ["AndyMaleh".freeze]
14
- s.date = "2021-02-08"
15
- s.description = "Glimmer is a Ruby DSL Framework consisting of a DSL Engine and an Observable/Observer/Data-Binding Library. Used in the Glimmer DSL for SWT (JRuby Desktop Development GUI Framework), the Glimmer DSL for Tk (Ruby Desktop Development GUI Library), the Glimmer DSL for Opal (Pure Ruby Web GUI and Auto-Webifier of Desktop Apps), the Glimmer DSL for XML (& HTML), and the Glimmer DSL for CSS.".freeze
14
+ s.date = "2021-03-23"
15
+ s.description = "Glimmer is a Ruby DSL Framework for Ruby GUI and More, consisting of a DSL Engine and an Observable/Observer/Data-Binding Library. Used in the Glimmer DSL for SWT (JRuby Desktop Development GUI Framework), the Glimmer DSL for Tk (Ruby Desktop Development GUI Library), the Glimmer DSL for Opal (Pure Ruby Web GUI and Auto-Webifier of Desktop Apps), the Glimmer DSL for XML (& HTML), and the Glimmer DSL for CSS.".freeze
16
16
  s.email = "andy.am@gmail.com".freeze
17
17
  s.extra_rdoc_files = [
18
18
  "CHANGELOG.md",
@@ -46,41 +46,27 @@ Gem::Specification.new do |s|
46
46
  ]
47
47
  s.homepage = "http://github.com/AndyObtiva/glimmer".freeze
48
48
  s.licenses = ["MIT".freeze]
49
- s.rubygems_version = "3.0.6".freeze
50
- s.summary = "Glimmer Ruby DSL Engine".freeze
49
+ s.rubygems_version = "3.2.3".freeze
50
+ s.summary = "Glimmer - DSL Engine for Ruby GUI and More".freeze
51
51
 
52
52
  if s.respond_to? :specification_version then
53
53
  s.specification_version = 4
54
+ end
54
55
 
55
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
56
- s.add_runtime_dependency(%q<array_include_methods>.freeze, [">= 1.0.4", "< 2.0.0"])
57
- s.add_runtime_dependency(%q<facets>.freeze, [">= 3.1.0", "< 4.0.0"])
58
- s.add_runtime_dependency(%q<concurrent-ruby>.freeze, [">= 1.1.7", "< 2.0.0"])
59
- s.add_development_dependency(%q<rspec-mocks>.freeze, ["~> 3.5.0"])
60
- s.add_development_dependency(%q<rspec>.freeze, ["~> 3.5.0"])
61
- s.add_development_dependency(%q<puts_debuggerer>.freeze, ["~> 0.10.0"])
62
- s.add_development_dependency(%q<rake>.freeze, [">= 10.1.0", "< 14.0.0"])
63
- s.add_development_dependency(%q<jeweler>.freeze, [">= 2.0.0", "< 3.0.0"])
64
- s.add_development_dependency(%q<rdoc>.freeze, [">= 6.2.1", "< 7.0.0"])
65
- s.add_development_dependency(%q<coveralls>.freeze, [">= 0"])
66
- s.add_development_dependency(%q<simplecov>.freeze, ["~> 0.16.1"])
67
- s.add_development_dependency(%q<simplecov-lcov>.freeze, ["~> 0.7.0"])
68
- s.add_development_dependency(%q<rake-tui>.freeze, [">= 0"])
69
- else
70
- s.add_dependency(%q<array_include_methods>.freeze, [">= 1.0.4", "< 2.0.0"])
71
- s.add_dependency(%q<facets>.freeze, [">= 3.1.0", "< 4.0.0"])
72
- s.add_dependency(%q<concurrent-ruby>.freeze, [">= 1.1.7", "< 2.0.0"])
73
- s.add_dependency(%q<rspec-mocks>.freeze, ["~> 3.5.0"])
74
- s.add_dependency(%q<rspec>.freeze, ["~> 3.5.0"])
75
- s.add_dependency(%q<puts_debuggerer>.freeze, ["~> 0.10.0"])
76
- s.add_dependency(%q<rake>.freeze, [">= 10.1.0", "< 14.0.0"])
77
- s.add_dependency(%q<jeweler>.freeze, [">= 2.0.0", "< 3.0.0"])
78
- s.add_dependency(%q<rdoc>.freeze, [">= 6.2.1", "< 7.0.0"])
79
- s.add_dependency(%q<coveralls>.freeze, [">= 0"])
80
- s.add_dependency(%q<simplecov>.freeze, ["~> 0.16.1"])
81
- s.add_dependency(%q<simplecov-lcov>.freeze, ["~> 0.7.0"])
82
- s.add_dependency(%q<rake-tui>.freeze, [">= 0"])
83
- end
56
+ if s.respond_to? :add_runtime_dependency then
57
+ s.add_runtime_dependency(%q<array_include_methods>.freeze, [">= 1.0.4", "< 2.0.0"])
58
+ s.add_runtime_dependency(%q<facets>.freeze, [">= 3.1.0", "< 4.0.0"])
59
+ s.add_runtime_dependency(%q<concurrent-ruby>.freeze, [">= 1.1.7", "< 2.0.0"])
60
+ s.add_development_dependency(%q<rspec-mocks>.freeze, ["~> 3.5.0"])
61
+ s.add_development_dependency(%q<rspec>.freeze, ["~> 3.5.0"])
62
+ s.add_development_dependency(%q<puts_debuggerer>.freeze, ["~> 0.10.0"])
63
+ s.add_development_dependency(%q<rake>.freeze, [">= 10.1.0", "< 14.0.0"])
64
+ s.add_development_dependency(%q<jeweler>.freeze, [">= 2.0.0", "< 3.0.0"])
65
+ s.add_development_dependency(%q<rdoc>.freeze, [">= 6.2.1", "< 7.0.0"])
66
+ s.add_development_dependency(%q<coveralls>.freeze, [">= 0"])
67
+ s.add_development_dependency(%q<simplecov>.freeze, ["~> 0.16.1"])
68
+ s.add_development_dependency(%q<simplecov-lcov>.freeze, ["~> 0.7.0"])
69
+ s.add_development_dependency(%q<rake-tui>.freeze, [">= 0"])
84
70
  else
85
71
  s.add_dependency(%q<array_include_methods>.freeze, [">= 1.0.4", "< 2.0.0"])
86
72
  s.add_dependency(%q<facets>.freeze, [">= 3.1.0", "< 4.0.0"])
data/lib/glimmer.rb CHANGED
@@ -81,6 +81,7 @@ module Glimmer
81
81
  Glimmer.loop_reset!
82
82
  end
83
83
  Glimmer.loop_last_data = new_loop_data
84
+ Glimmer::Config.logger.info {">"*80}
84
85
  Glimmer::Config.logger.info {"Interpreting keyword: #{method_symbol}"}
85
86
  Glimmer::DSL::Engine.interpret(method_symbol, *args, &block)
86
87
  end
@@ -56,10 +56,10 @@ module Glimmer
56
56
  end
57
57
 
58
58
  def reset_logger!
59
- self.logger = Logger.new(STDOUT).tap do |logger|
59
+ self.logger = Logger.new($stdout).tap do |logger|
60
60
  logger.level = Logger::ERROR
61
61
  begin
62
- logger.level = ENV['GLIMMER_LOGGER_LEVEL'].strip.downcase if ENV['GLIMMER_LOGGER_LEVEL']
62
+ logger.level = ENV['GLIMMER_LOGGER_LEVEL']&.strip&.downcase
63
63
  rescue => e
64
64
  puts e.message
65
65
  end
@@ -35,9 +35,9 @@ module Glimmer
35
35
  @property_name_expression = property_name_expression
36
36
  @binding_options = binding_options || Concurrent::Hash.new
37
37
  if computed?
38
- @computed_model_bindings = computed_by.map do |computed_by_property_expression|
38
+ @computed_model_bindings = Concurrent::Array.new(computed_by.map do |computed_by_property_expression|
39
39
  self.class.new(base_model, computed_by_property_expression)
40
- end
40
+ end)
41
41
  end
42
42
  end
43
43
 
@@ -47,11 +47,9 @@ module Glimmer
47
47
 
48
48
  # e.g. person.address.state returns [person, person.address]
49
49
  def nested_models
50
- @nested_models = [base_model]
50
+ @nested_models = Concurrent::Array.new([base_model])
51
51
  model_property_names.reduce(base_model) do |reduced_model, nested_model_property_name|
52
- if reduced_model.nil?
53
- nil
54
- else
52
+ if !reduced_model.nil?
55
53
  invoke_property_reader(reduced_model, nested_model_property_name).tap do |new_reduced_model|
56
54
  @nested_models << new_reduced_model
57
55
  end
@@ -77,7 +75,7 @@ module Glimmer
77
75
  # If there are any indexed property names, this returns indexes as properties.
78
76
  # e.g. property name expression "addresses[1].state" gives ['addresses', '[1]', 'state']
79
77
  def nested_property_names
80
- @nested_property_names ||= property_name_expression.split(".").map {|pne| pne.match(/([^\[]+)(\[[^\]]+\])?/).to_a.drop(1)}.flatten.compact
78
+ @nested_property_names ||= Concurrent::Array.new(property_name_expression.split(".").map {|pne| pne.match(/([^\[]+)(\[[^\]]+\])?/).to_a.drop(1)}.flatten.compact)
81
79
  end
82
80
 
83
81
  # Final nested property name
@@ -89,7 +87,7 @@ module Glimmer
89
87
  # Model representing nested property names
90
88
  # e.g. property name expression "address.state" gives [:address]
91
89
  def model_property_names
92
- nested_property_names[0...-1]
90
+ Concurrent::Array.new(nested_property_names[0...-1])
93
91
  end
94
92
 
95
93
  def nested_property?
@@ -101,7 +99,7 @@ module Glimmer
101
99
  end
102
100
 
103
101
  def computed_by
104
- [@binding_options[:computed_by]].flatten.compact
102
+ Concurrent::Array.new([@binding_options[:computed_by]].flatten.compact)
105
103
  end
106
104
 
107
105
  def nested_property_observers_for(observer)
@@ -112,7 +110,10 @@ module Glimmer
112
110
  property_name => Observer.proc do |new_value|
113
111
  # Ensure reattaching observers when a higher level nested property is updated (e.g. person.address changes reattaches person.address.street observer)
114
112
  add_observer(observer)
115
- observer.call(evaluate_property)
113
+ converted_value = evaluate_property
114
+ observer.call(converted_value).tap do
115
+ apply_processor(@binding_options[:after_read], converted_value)
116
+ end
116
117
  end
117
118
  )
118
119
  end
@@ -127,7 +128,10 @@ module Glimmer
127
128
  add_nested_observers(observer)
128
129
  else
129
130
  model_binding_observer = Observer.proc do |new_value|
130
- observer.call(evaluate_property)
131
+ converted_value = evaluate_property
132
+ observer.call(converted_value).tap do
133
+ apply_processor(@binding_options[:after_read], converted_value)
134
+ end
131
135
  end
132
136
  observer_registration = model_binding_observer.observe(model, property_name)
133
137
  my_registration = observer.registration_for(self)
@@ -152,7 +156,10 @@ module Glimmer
152
156
  @computed_observer_collection ||= Concurrent::Hash.new
153
157
  unless @computed_observer_collection.has_key?(observer)
154
158
  @computed_observer_collection[observer] = Observer.proc do |new_value|
155
- observer.call(evaluate_property)
159
+ converted_value = evaluate_property
160
+ observer.call(converted_value).tap do
161
+ apply_processor(@binding_options[:after_read], converted_value)
162
+ end
156
163
  end
157
164
  end
158
165
  @computed_observer_collection[observer]
@@ -168,7 +175,7 @@ module Glimmer
168
175
 
169
176
  def add_nested_observers(observer)
170
177
  nested_property_observers = nested_property_observers_for(observer)
171
- nested_models.zip(nested_property_names).each_with_index do |zip, i|
178
+ Concurrent::Array.new(nested_models.zip(nested_property_names)).each_with_index do |zip, i|
172
179
  model, property_name = zip
173
180
  nested_property_observer = nested_property_observers[property_name]
174
181
  previous_index = i - 1
@@ -201,9 +208,7 @@ module Glimmer
201
208
  value = nil
202
209
  value = invoke_property_reader(model, property_name) unless model.nil?
203
210
  apply_processor(@binding_options[:before_read], value)
204
- converted_value = convert_on_read(value)
205
- apply_processor(@binding_options[:after_read], converted_value)
206
- converted_value
211
+ convert_on_read(value)
207
212
  end
208
213
 
209
214
  def evaluate_options_property
@@ -237,7 +242,7 @@ module Glimmer
237
242
 
238
243
  def invoke_proc_with_exact_parameters(proc_object, *args)
239
244
  return if proc_object.nil?
240
- args = args[0...proc_object.parameters.size]
245
+ args = Concurrent::Array.new(args[0...proc_object.parameters.size])
241
246
  proc_object.call(*args)
242
247
  end
243
248
 
@@ -256,7 +261,6 @@ module Glimmer
256
261
  raise "Cannot invoke `#{property_expression}` because ModelBinding#binding_options[:read_only]=true" if @binding_options[:read_only]
257
262
  apply_processor(@binding_options[:before_write], value)
258
263
  converted_value = convert_on_write(value)
259
- apply_processor(@binding_options[:after_write], converted_value)
260
264
  if property_indexed?(property_expression)
261
265
  property_method = '[]='
262
266
  property_argument = property_expression[1...-2]
@@ -265,6 +269,7 @@ module Glimmer
265
269
  else
266
270
  object.send(property_expression, converted_value)
267
271
  end
272
+ apply_processor(@binding_options[:after_write], converted_value)
268
273
  end
269
274
  end
270
275
  end
@@ -29,10 +29,12 @@ module Glimmer
29
29
 
30
30
  class Notifier
31
31
  include Observer
32
+
32
33
  def initialize(observable_model, property_name)
33
34
  @observable_model = observable_model
34
35
  @property_name = property_name
35
36
  end
37
+
36
38
  def call(new_value=nil)
37
39
  @observable_model.notify_observers(@property_name)
38
40
  end
@@ -37,7 +37,7 @@ module Glimmer
37
37
  STATIC_EXPRESSION_METHOD_FACTORY = lambda do |keyword|
38
38
  lambda do |*args, &block|
39
39
  if Glimmer::DSL::Engine.no_dsls?
40
- puts Glimmer::DSL::Engine::MESSAGE_NO_DSLS # TODO consider switching to an error log statement
40
+ Glimmer::Config.logger.error {Glimmer::DSL::Engine::MESSAGE_NO_DSLS}
41
41
  else
42
42
  retrieved_static_expression = Glimmer::DSL::Engine.static_expressions[keyword][Glimmer::DSL::Engine.dsl]
43
43
  # TODO consider replacing Glimmer::DSL::Engine.static_expressions[keyword].keys - Glimmer::DSL::Engine.disabled_dsls with Glimmer::DSL::Engine.enabled_static_expression_dsls(keyword)
@@ -55,6 +55,7 @@ module Glimmer
55
55
  else
56
56
  raise Glimmer::Error, "Unsupported keyword: #{keyword}" unless static_expression_dsl || retrieved_static_expression
57
57
  Glimmer::DSL::Engine.dsl_stack.push(static_expression_dsl || Glimmer::DSL::Engine.dsl)
58
+ Glimmer::Config.logger.info {"Assuming DSL: #{Glimmer::DSL::Engine.dsl_stack.last}"}
58
59
  static_expression = Glimmer::DSL::Engine.static_expressions[keyword][Glimmer::DSL::Engine.dsl]
59
60
  static_expression_can_interpret = nil
60
61
  if static_expression.nil? || !(static_expression_can_interpret = static_expression.can_interpret?(Glimmer::DSL::Engine.parent, keyword, *args, &block))
@@ -169,15 +170,20 @@ module Glimmer
169
170
  dynamic_expression_dsl = (dynamic_expression_chains_of_responsibility.keys - disabled_dsls).first if dsl.nil?
170
171
  # TODO consider pushing this code into interpret_expresion to provide hooks that work around it regardless of static vs dynamic
171
172
  dsl_stack.push(dynamic_expression_dsl || dsl)
173
+ Glimmer::Config.logger.info {"Assuming DSL: #{dsl_stack.last}"}
172
174
  expression = dynamic_expression_chains_of_responsibility[dsl].handle(parent, keyword, *args, &block)
173
175
  interpret_expression(expression, keyword, *args, &block)
174
176
  end
175
177
 
176
178
  def interpret_expression(expression, keyword, *args, &block)
177
- expression.interpret(parent, keyword, *args, &block).tap do |ui_object|
178
- add_content(ui_object, expression, &block)
179
- dsl_stack.pop
179
+ new_parent = nil
180
+ expression.around(parent, keyword, args, block) do
181
+ new_parent = expression.interpret(parent, keyword, *args, &block).tap do |new_parent|
182
+ add_content(new_parent, expression, keyword, *args, &block)
183
+ dsl_stack.pop
184
+ end
180
185
  end
186
+ new_parent
181
187
  end
182
188
 
183
189
  # Adds content block to parent UI object
@@ -185,12 +191,12 @@ module Glimmer
185
191
  # This allows evaluating parent UI object properties and children
186
192
  #
187
193
  # For example, a shell widget would get properties set and children added
188
- def add_content(parent, expression, &block)
194
+ def add_content(new_parent, expression, keyword, *args, &block)
189
195
  if block_given? && expression.is_a?(ParentExpression)
190
196
  dsl_stack.push(expression.class.dsl)
191
- parent_stack.push(parent)
197
+ parent_stack.push(new_parent)
192
198
  begin
193
- expression.add_content(parent, &block)
199
+ expression.add_content(new_parent, keyword, *args, &block)
194
200
  ensure
195
201
  parent_stack.pop
196
202
  dsl_stack.pop
@@ -47,13 +47,23 @@ module Glimmer
47
47
  raise Error, "#interpret must be implemented by an Expression subclass"
48
48
  end
49
49
 
50
- # Adds block content to specified parent UI object (Optional)
50
+ # Adds block content to newly interpreted parent object (Optional)
51
51
  #
52
52
  # Only expressions that receive a content block should implement
53
- def add_content(parent, &block)
53
+ def add_content(new_parent, keyword, *args, &block)
54
54
  # No Op by default
55
55
  end
56
-
56
+
57
+ # Executes code around the `interpret_and_add_content` block,
58
+ # which invokes `interpret` and `add_content` when called without args
59
+ # (parent, keyword, args, block are supplied automatically).
60
+ # Clients may invoke yield as an alternative to calling `interpret_and_add_content` directly.
61
+ # This method takes parent, keyword, args, block in case they are needed
62
+ # in its around logic.
63
+ def around(parent, keyword, args, block, &interpret_and_add_content)
64
+ interpret_and_add_content.call
65
+ end
66
+
57
67
  # Checks if object is a Symbol or a String
58
68
  def textual?(object)
59
69
  object.is_a?(Symbol) or object.is_a?(String)
@@ -25,8 +25,11 @@ module Glimmer
25
25
  module DSL
26
26
  # Mixin that represents expressions that always have a content block
27
27
  module ParentExpression
28
- def add_content(parent, &block)
29
- block.call(parent)
28
+ # Default implementation that simply invokes block content with newly interpreted parent object as an argument
29
+ #
30
+ # Only expressions that receive a content block should implement
31
+ def add_content(new_parent, keyword, *args, &block)
32
+ block.call(new_parent)
30
33
  end
31
34
  end
32
35
  end
@@ -50,7 +50,8 @@ module Glimmer
50
50
  end
51
51
  end
52
52
 
53
- # Subclasses may optionally implement
53
+ # Subclasses may optionally implement, but by default it only ensures that
54
+ # the keyword matches lower case static expression class name minus `Expression`
54
55
  def can_interpret?(parent, keyword, *args, &block)
55
56
  true
56
57
  end
metadata CHANGED
@@ -1,16 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glimmer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - AndyMaleh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-08 00:00:00.000000000 Z
11
+ date: 2021-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
+ name: array_include_methods
14
15
  requirement: !ruby/object:Gem::Requirement
15
16
  requirements:
16
17
  - - ">="
@@ -19,7 +20,6 @@ dependencies:
19
20
  - - "<"
20
21
  - !ruby/object:Gem::Version
21
22
  version: 2.0.0
22
- name: array_include_methods
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -31,6 +31,7 @@ dependencies:
31
31
  - !ruby/object:Gem::Version
32
32
  version: 2.0.0
33
33
  - !ruby/object:Gem::Dependency
34
+ name: facets
34
35
  requirement: !ruby/object:Gem::Requirement
35
36
  requirements:
36
37
  - - ">="
@@ -39,7 +40,6 @@ dependencies:
39
40
  - - "<"
40
41
  - !ruby/object:Gem::Version
41
42
  version: 4.0.0
42
- name: facets
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -51,6 +51,7 @@ dependencies:
51
51
  - !ruby/object:Gem::Version
52
52
  version: 4.0.0
53
53
  - !ruby/object:Gem::Dependency
54
+ name: concurrent-ruby
54
55
  requirement: !ruby/object:Gem::Requirement
55
56
  requirements:
56
57
  - - ">="
@@ -59,7 +60,6 @@ dependencies:
59
60
  - - "<"
60
61
  - !ruby/object:Gem::Version
61
62
  version: 2.0.0
62
- name: concurrent-ruby
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
@@ -71,12 +71,12 @@ dependencies:
71
71
  - !ruby/object:Gem::Version
72
72
  version: 2.0.0
73
73
  - !ruby/object:Gem::Dependency
74
+ name: rspec-mocks
74
75
  requirement: !ruby/object:Gem::Requirement
75
76
  requirements:
76
77
  - - "~>"
77
78
  - !ruby/object:Gem::Version
78
79
  version: 3.5.0
79
- name: rspec-mocks
80
80
  type: :development
81
81
  prerelease: false
82
82
  version_requirements: !ruby/object:Gem::Requirement
@@ -85,12 +85,12 @@ dependencies:
85
85
  - !ruby/object:Gem::Version
86
86
  version: 3.5.0
87
87
  - !ruby/object:Gem::Dependency
88
+ name: rspec
88
89
  requirement: !ruby/object:Gem::Requirement
89
90
  requirements:
90
91
  - - "~>"
91
92
  - !ruby/object:Gem::Version
92
93
  version: 3.5.0
93
- name: rspec
94
94
  type: :development
95
95
  prerelease: false
96
96
  version_requirements: !ruby/object:Gem::Requirement
@@ -99,12 +99,12 @@ dependencies:
99
99
  - !ruby/object:Gem::Version
100
100
  version: 3.5.0
101
101
  - !ruby/object:Gem::Dependency
102
+ name: puts_debuggerer
102
103
  requirement: !ruby/object:Gem::Requirement
103
104
  requirements:
104
105
  - - "~>"
105
106
  - !ruby/object:Gem::Version
106
107
  version: 0.10.0
107
- name: puts_debuggerer
108
108
  type: :development
109
109
  prerelease: false
110
110
  version_requirements: !ruby/object:Gem::Requirement
@@ -113,6 +113,7 @@ dependencies:
113
113
  - !ruby/object:Gem::Version
114
114
  version: 0.10.0
115
115
  - !ruby/object:Gem::Dependency
116
+ name: rake
116
117
  requirement: !ruby/object:Gem::Requirement
117
118
  requirements:
118
119
  - - ">="
@@ -121,7 +122,6 @@ dependencies:
121
122
  - - "<"
122
123
  - !ruby/object:Gem::Version
123
124
  version: 14.0.0
124
- name: rake
125
125
  type: :development
126
126
  prerelease: false
127
127
  version_requirements: !ruby/object:Gem::Requirement
@@ -133,6 +133,7 @@ dependencies:
133
133
  - !ruby/object:Gem::Version
134
134
  version: 14.0.0
135
135
  - !ruby/object:Gem::Dependency
136
+ name: jeweler
136
137
  requirement: !ruby/object:Gem::Requirement
137
138
  requirements:
138
139
  - - ">="
@@ -141,7 +142,6 @@ dependencies:
141
142
  - - "<"
142
143
  - !ruby/object:Gem::Version
143
144
  version: 3.0.0
144
- name: jeweler
145
145
  type: :development
146
146
  prerelease: false
147
147
  version_requirements: !ruby/object:Gem::Requirement
@@ -153,6 +153,7 @@ dependencies:
153
153
  - !ruby/object:Gem::Version
154
154
  version: 3.0.0
155
155
  - !ruby/object:Gem::Dependency
156
+ name: rdoc
156
157
  requirement: !ruby/object:Gem::Requirement
157
158
  requirements:
158
159
  - - ">="
@@ -161,7 +162,6 @@ dependencies:
161
162
  - - "<"
162
163
  - !ruby/object:Gem::Version
163
164
  version: 7.0.0
164
- name: rdoc
165
165
  type: :development
166
166
  prerelease: false
167
167
  version_requirements: !ruby/object:Gem::Requirement
@@ -173,12 +173,12 @@ dependencies:
173
173
  - !ruby/object:Gem::Version
174
174
  version: 7.0.0
175
175
  - !ruby/object:Gem::Dependency
176
+ name: coveralls
176
177
  requirement: !ruby/object:Gem::Requirement
177
178
  requirements:
178
179
  - - ">="
179
180
  - !ruby/object:Gem::Version
180
181
  version: '0'
181
- name: coveralls
182
182
  type: :development
183
183
  prerelease: false
184
184
  version_requirements: !ruby/object:Gem::Requirement
@@ -187,12 +187,12 @@ dependencies:
187
187
  - !ruby/object:Gem::Version
188
188
  version: '0'
189
189
  - !ruby/object:Gem::Dependency
190
+ name: simplecov
190
191
  requirement: !ruby/object:Gem::Requirement
191
192
  requirements:
192
193
  - - "~>"
193
194
  - !ruby/object:Gem::Version
194
195
  version: 0.16.1
195
- name: simplecov
196
196
  type: :development
197
197
  prerelease: false
198
198
  version_requirements: !ruby/object:Gem::Requirement
@@ -201,12 +201,12 @@ dependencies:
201
201
  - !ruby/object:Gem::Version
202
202
  version: 0.16.1
203
203
  - !ruby/object:Gem::Dependency
204
+ name: simplecov-lcov
204
205
  requirement: !ruby/object:Gem::Requirement
205
206
  requirements:
206
207
  - - "~>"
207
208
  - !ruby/object:Gem::Version
208
209
  version: 0.7.0
209
- name: simplecov-lcov
210
210
  type: :development
211
211
  prerelease: false
212
212
  version_requirements: !ruby/object:Gem::Requirement
@@ -215,12 +215,12 @@ dependencies:
215
215
  - !ruby/object:Gem::Version
216
216
  version: 0.7.0
217
217
  - !ruby/object:Gem::Dependency
218
+ name: rake-tui
218
219
  requirement: !ruby/object:Gem::Requirement
219
220
  requirements:
220
221
  - - ">="
221
222
  - !ruby/object:Gem::Version
222
223
  version: '0'
223
- name: rake-tui
224
224
  type: :development
225
225
  prerelease: false
226
226
  version_requirements: !ruby/object:Gem::Requirement
@@ -228,11 +228,12 @@ dependencies:
228
228
  - - ">="
229
229
  - !ruby/object:Gem::Version
230
230
  version: '0'
231
- description: Glimmer is a Ruby DSL Framework consisting of a DSL Engine and an Observable/Observer/Data-Binding
232
- Library. Used in the Glimmer DSL for SWT (JRuby Desktop Development GUI Framework),
233
- the Glimmer DSL for Tk (Ruby Desktop Development GUI Library), the Glimmer DSL for
234
- Opal (Pure Ruby Web GUI and Auto-Webifier of Desktop Apps), the Glimmer DSL for
235
- XML (& HTML), and the Glimmer DSL for CSS.
231
+ description: Glimmer is a Ruby DSL Framework for Ruby GUI and More, consisting of
232
+ a DSL Engine and an Observable/Observer/Data-Binding Library. Used in the Glimmer
233
+ DSL for SWT (JRuby Desktop Development GUI Framework), the Glimmer DSL for Tk (Ruby
234
+ Desktop Development GUI Library), the Glimmer DSL for Opal (Pure Ruby Web GUI and
235
+ Auto-Webifier of Desktop Apps), the Glimmer DSL for XML (& HTML), and the Glimmer
236
+ DSL for CSS.
236
237
  email: andy.am@gmail.com
237
238
  executables: []
238
239
  extensions: []
@@ -283,8 +284,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
283
284
  - !ruby/object:Gem::Version
284
285
  version: '0'
285
286
  requirements: []
286
- rubygems_version: 3.0.6
287
+ rubygems_version: 3.2.3
287
288
  signing_key:
288
289
  specification_version: 4
289
- summary: Glimmer Ruby DSL Engine
290
+ summary: Glimmer - DSL Engine for Ruby GUI and More
290
291
  test_files: []