metaruby 1.0.0.rc3 → 1.0.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/.gitignore +1 -0
- data/.travis.yml +2 -0
- data/README.md +4 -2
- data/Rakefile +1 -0
- data/lib/metaruby/{inherited_attribute.rb → attributes.rb} +23 -53
- data/lib/metaruby/gui/exception_rendering.rb +1 -1
- data/lib/metaruby/gui/html/page.rb +1 -1
- data/lib/metaruby/gui/html.rb +1 -0
- data/lib/metaruby/gui/ruby_constants_item_model.rb +1 -1
- data/lib/metaruby/{class.rb → model_as_class.rb} +20 -10
- data/lib/metaruby/{module.rb → model_as_module.rb} +45 -17
- data/lib/metaruby/registration.rb +5 -11
- data/lib/metaruby/version.rb +1 -1
- data/lib/metaruby.rb +8 -3
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 209d7c5d2bfb1aef6d4370e9b87d5635f4cbe093
|
4
|
+
data.tar.gz: ebbba741e3cb1511ebf7f05a6e4e4d242b23ffda
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6fffccb4135deee4fa523fc09b79a9ab66eb8783ec7de35bc88a29876842909210795adca46afc8514b4ae28de51ed9c4045a0e8f54da06cf8948424629edc2c
|
7
|
+
data.tar.gz: 2b832a3185e0b0a4c657979a1b0a86f362541d4cb09364355b40c50d7bbcd86de4fe5356131f36af6d669ea8dd08f7d7faadb5710d303abff23d1ff488d0779c
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
-
|
1
|
+
[](https://travis-ci.org/rock-core/tools-metaruby)
|
2
|
+
[](http://badge.fury.io/rb/metaruby)
|
3
|
+
[](http://rubydoc.info/gems/metaruby/frames)
|
2
4
|
|
3
|
-
|
5
|
+
# Metamodelling in the Ruby type system
|
4
6
|
|
5
7
|
MetaRuby is a library that allows to (ab)use the Ruby type system to create
|
6
8
|
reflexive programs: create a specialized modelling API (a.k.a. "a DSL") at the
|
data/Rakefile
CHANGED
@@ -36,35 +36,6 @@ module MetaRuby
|
|
36
36
|
# end
|
37
37
|
# end
|
38
38
|
module Attributes
|
39
|
-
# Internal representation of inherited attributes
|
40
|
-
class InheritedAttribute < Struct.new(:single_value, :name, :accessor_name, :init)
|
41
|
-
end
|
42
|
-
|
43
|
-
# The set of inherited attributes defined on this object
|
44
|
-
# @return [Array<InheritedAttribute>]
|
45
|
-
attribute(:inherited_attributes) { Array.new }
|
46
|
-
|
47
|
-
# Tests for the existence of an inherited attribute by its name
|
48
|
-
#
|
49
|
-
# @param [String] name the attribute name
|
50
|
-
# @return [Boolean] true if there is an attribute defined with the given
|
51
|
-
# name
|
52
|
-
def inherited_attribute_defined?(name)
|
53
|
-
inherited_attributes.any? { |ih| ih.name == name }
|
54
|
-
end
|
55
|
-
|
56
|
-
# Returns the inherited attribute definition that matches the given name
|
57
|
-
#
|
58
|
-
# @param [String] name the attribute name
|
59
|
-
# @return [InheritedAttribute] the attribute definition
|
60
|
-
# @raise [ArgumentError] if no attribute with that name exists
|
61
|
-
def inherited_attribute_by_name(name)
|
62
|
-
if attr = inherited_attributes.find { |ih| ih.name == name }
|
63
|
-
return attr
|
64
|
-
else raise ArgumentError, "#{self} has no inherited attribute called #{name}"
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
39
|
def included(mod)
|
69
40
|
mod.extend Attributes
|
70
41
|
end
|
@@ -288,20 +259,19 @@ module MetaRuby
|
|
288
259
|
# B.enum_for(:each_mapped, 'name').to_a # => ["B"]
|
289
260
|
# B.enum_for(:each_mapped, 'name', false).to_a # => ["B", "A"]
|
290
261
|
#
|
291
|
-
def inherited_attribute(name, attribute_name = name,
|
262
|
+
def inherited_attribute(name, attribute_name = name, yield_key: true, map: false, enum_with: :each, &init) # :nodoc:
|
292
263
|
# Set up the attribute accessor
|
293
264
|
attribute(attribute_name, &init)
|
294
265
|
class_eval { private "#{attribute_name}=" }
|
295
266
|
|
296
267
|
promote = method_defined?("promote_#{name}")
|
297
|
-
options[:enum_with] ||= :each
|
298
268
|
|
299
269
|
class_eval <<-EOF, __FILE__, __LINE__+1
|
300
270
|
def all_#{name}; each_#{name}.to_a end
|
301
271
|
def self_#{name}; @#{attribute_name} end
|
302
272
|
EOF
|
303
273
|
|
304
|
-
if
|
274
|
+
if map
|
305
275
|
class_eval <<-EOF, __FILE__, __LINE__+1
|
306
276
|
def find_#{name}(key)
|
307
277
|
raise ArgumentError, "nil cannot be used as a key in find_#{name}" if !key
|
@@ -343,16 +313,16 @@ module MetaRuby
|
|
343
313
|
EOF
|
344
314
|
|
345
315
|
if !promote
|
346
|
-
if
|
347
|
-
class_eval(*Attributes.map_without_promotion(name, attribute_name,
|
316
|
+
if map
|
317
|
+
class_eval(*Attributes.map_without_promotion(name, attribute_name, yield_key: yield_key, enum_with: enum_with))
|
348
318
|
else
|
349
|
-
class_eval(*Attributes.nomap_without_promotion(name, attribute_name,
|
319
|
+
class_eval(*Attributes.nomap_without_promotion(name, attribute_name, enum_with: enum_with))
|
350
320
|
end
|
351
321
|
else
|
352
|
-
if
|
353
|
-
class_eval(*Attributes.map_with_promotion(name, attribute_name,
|
322
|
+
if map
|
323
|
+
class_eval(*Attributes.map_with_promotion(name, attribute_name, yield_key: yield_key, enum_with: enum_with))
|
354
324
|
else
|
355
|
-
class_eval(*Attributes.nomap_with_promotion(name, attribute_name,
|
325
|
+
class_eval(*Attributes.nomap_with_promotion(name, attribute_name, enum_with: enum_with))
|
356
326
|
end
|
357
327
|
end
|
358
328
|
end
|
@@ -361,7 +331,7 @@ module MetaRuby
|
|
361
331
|
#
|
362
332
|
# Helper class that defines the iteration method for inherited_attribute
|
363
333
|
# when :map is set and there is not promotion method
|
364
|
-
def self.map_without_promotion(name, attribute_name,
|
334
|
+
def self.map_without_promotion(name, attribute_name, yield_key: true, enum_with: :each)
|
365
335
|
code, file, line =<<-EOF, __FILE__, __LINE__+1
|
366
336
|
def each_#{name}(key = nil, uniq = true)
|
367
337
|
if !block_given?
|
@@ -384,7 +354,7 @@ module MetaRuby
|
|
384
354
|
elsif !uniq
|
385
355
|
for klass in ancestors
|
386
356
|
if klass.instance_variable_defined?(:@#{attribute_name})
|
387
|
-
klass.#{attribute_name}.#{
|
357
|
+
klass.#{attribute_name}.#{enum_with} do |el|
|
388
358
|
yield(el)
|
389
359
|
end
|
390
360
|
end
|
@@ -393,10 +363,10 @@ module MetaRuby
|
|
393
363
|
seen = Set.new
|
394
364
|
for klass in ancestors
|
395
365
|
if klass.instance_variable_defined?(:@#{attribute_name})
|
396
|
-
klass.#{attribute_name}.#{
|
397
|
-
|
398
|
-
seen <<
|
399
|
-
yield(el)
|
366
|
+
klass.#{attribute_name}.#{enum_with} do |el_key, el|
|
367
|
+
if !seen.include?(el_key)
|
368
|
+
seen << el_key
|
369
|
+
#{if yield_key then 'yield(el_key, el)' else 'yield(el)' end}
|
400
370
|
end
|
401
371
|
end
|
402
372
|
end
|
@@ -413,7 +383,7 @@ module MetaRuby
|
|
413
383
|
#
|
414
384
|
# Helper class that defines the iteration method for inherited_attribute
|
415
385
|
# when :map is not set and there is no promotion method
|
416
|
-
def self.nomap_without_promotion(name, attribute_name,
|
386
|
+
def self.nomap_without_promotion(name, attribute_name, enum_with: :each)
|
417
387
|
code, file, line =<<-EOF, __FILE__, __LINE__+1
|
418
388
|
def each_#{name}
|
419
389
|
if !block_given?
|
@@ -426,7 +396,7 @@ module MetaRuby
|
|
426
396
|
end
|
427
397
|
for klass in ancestors
|
428
398
|
if klass.instance_variable_defined?(:@#{attribute_name})
|
429
|
-
klass.#{attribute_name}.#{
|
399
|
+
klass.#{attribute_name}.#{enum_with} { |el| yield(el) }
|
430
400
|
end
|
431
401
|
end
|
432
402
|
self
|
@@ -439,7 +409,7 @@ module MetaRuby
|
|
439
409
|
#
|
440
410
|
# Helper class that defines the iteration method for inherited_attribute
|
441
411
|
# when :map is set and there is a promotion method
|
442
|
-
def self.map_with_promotion(name, attribute_name,
|
412
|
+
def self.map_with_promotion(name, attribute_name, yield_key: true, enum_with: :each)
|
443
413
|
code, file, line =<<-EOF, __FILE__, __LINE__+1
|
444
414
|
def each_#{name}(key = nil, uniq = true)
|
445
415
|
if !block_given?
|
@@ -469,11 +439,11 @@ module MetaRuby
|
|
469
439
|
promotions = []
|
470
440
|
for klass in ancestors
|
471
441
|
if klass.instance_variable_defined?(:@#{attribute_name})
|
472
|
-
klass.#{attribute_name}.#{
|
442
|
+
klass.#{attribute_name}.#{enum_with} do |k, v|
|
473
443
|
for p in promotions
|
474
444
|
v = p.promote_#{name}(k, v)
|
475
445
|
end
|
476
|
-
yield(k, v)
|
446
|
+
#{if yield_key then 'yield(k, v)' else 'yield(v)' end}
|
477
447
|
end
|
478
448
|
end
|
479
449
|
promotions.unshift(klass) if klass.respond_to?("promote_#{name}")
|
@@ -483,13 +453,13 @@ module MetaRuby
|
|
483
453
|
promotions = []
|
484
454
|
for klass in ancestors
|
485
455
|
if klass.instance_variable_defined?(:@#{attribute_name})
|
486
|
-
klass.#{attribute_name}.#{
|
456
|
+
klass.#{attribute_name}.#{enum_with} do |k, v|
|
487
457
|
unless seen.include?(k)
|
488
458
|
for p in promotions
|
489
459
|
v = p.promote_#{name}(k, v)
|
490
460
|
end
|
491
461
|
seen << k
|
492
|
-
yield(k, v)
|
462
|
+
#{if yield_key then 'yield(k, v)' else 'yield(v)' end}
|
493
463
|
end
|
494
464
|
end
|
495
465
|
end
|
@@ -506,7 +476,7 @@ module MetaRuby
|
|
506
476
|
#
|
507
477
|
# Helper class that defines the iteration method for inherited_attribute
|
508
478
|
# when :map is not set and there is a promotion method
|
509
|
-
def self.nomap_with_promotion(name, attribute_name,
|
479
|
+
def self.nomap_with_promotion(name, attribute_name, enum_with: :each)
|
510
480
|
code, file, line =<<-EOF, __FILE__, __LINE__+1
|
511
481
|
def each_#{name}
|
512
482
|
if !block_given?
|
@@ -520,7 +490,7 @@ module MetaRuby
|
|
520
490
|
promotions = []
|
521
491
|
for klass in ancestors
|
522
492
|
if klass.instance_variable_defined?(:@#{attribute_name})
|
523
|
-
klass.#{attribute_name}.#{
|
493
|
+
klass.#{attribute_name}.#{enum_with} do |value|
|
524
494
|
for p in promotions
|
525
495
|
value = p.promote_#{name}(value)
|
526
496
|
end
|
@@ -194,7 +194,7 @@ module MetaRuby
|
|
194
194
|
each_exception_from(e) do |exception|
|
195
195
|
if !seen.include?(exception)
|
196
196
|
seen << exception
|
197
|
-
html << render_single_exception(
|
197
|
+
html << render_single_exception(exception, "#{id}-#{counter += 1}")
|
198
198
|
end
|
199
199
|
end
|
200
200
|
html.join("\n")
|
@@ -71,7 +71,7 @@ module MetaRuby::GUI
|
|
71
71
|
@templates = Hash.new
|
72
72
|
@auto_id = 0
|
73
73
|
|
74
|
-
if page.kind_of?(Qt::WebPage)
|
74
|
+
if defined?(Qt::WebPage) && page.kind_of?(Qt::WebPage)
|
75
75
|
page.link_delegation_policy = Qt::WebPage::DelegateAllLinks
|
76
76
|
Qt::Object.connect(page, SIGNAL('linkClicked(const QUrl&)'), self, SLOT('pageLinkClicked(const QUrl&)'))
|
77
77
|
end
|
data/lib/metaruby/gui/html.rb
CHANGED
@@ -156,7 +156,7 @@ module MetaRuby
|
|
156
156
|
end
|
157
157
|
|
158
158
|
children_modules = children_modules.map do |child_name|
|
159
|
-
next if !mod.
|
159
|
+
next if !mod.const_defined?(child_name, false)
|
160
160
|
# Ruby issues a warning when one tries to access Config
|
161
161
|
# (it has been deprecated in favor of RbConfig). Ignore
|
162
162
|
# it explicitly
|
@@ -37,17 +37,15 @@ module MetaRuby
|
|
37
37
|
#
|
38
38
|
# @return [String] the assigned name
|
39
39
|
def name=(name)
|
40
|
-
# This is dynamically defined. The reason is that there is no way to
|
41
|
-
# call 'super' to get the default Class#name, so we define our name
|
42
|
-
# only when it is explicitely assigned
|
43
|
-
def self.name
|
44
|
-
if @name then @name
|
45
|
-
else super
|
46
|
-
end
|
47
|
-
end
|
48
40
|
@name = name
|
49
41
|
end
|
50
42
|
|
43
|
+
def name
|
44
|
+
if @name then @name
|
45
|
+
else super
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
51
49
|
# The model next in the ancestry chain, or nil if +self+ is root
|
52
50
|
#
|
53
51
|
# @return [Class]
|
@@ -78,10 +76,10 @@ module MetaRuby
|
|
78
76
|
Thread.current[FROM_NEW_SUBMODEL_TLS] = true
|
79
77
|
model = self.class.new(self)
|
80
78
|
model.permanent_model = false
|
79
|
+
setup_submodel(model, **submodel_options, &block)
|
81
80
|
if name
|
82
81
|
model.name = name
|
83
82
|
end
|
84
|
-
setup_submodel(model, **submodel_options, &block)
|
85
83
|
model
|
86
84
|
end
|
87
85
|
|
@@ -92,6 +90,8 @@ module MetaRuby
|
|
92
90
|
|
93
91
|
# Called at the end of the definition of a new submodel
|
94
92
|
def setup_submodel(submodel, register: true, **options, &block)
|
93
|
+
submodel.instance_variable_set :@name, nil
|
94
|
+
|
95
95
|
if register
|
96
96
|
register_submodel(submodel)
|
97
97
|
end
|
@@ -106,7 +106,12 @@ module MetaRuby
|
|
106
106
|
from_new_submodel = Thread.current[FROM_NEW_SUBMODEL_TLS]
|
107
107
|
Thread.current[FROM_NEW_SUBMODEL_TLS] = false
|
108
108
|
|
109
|
-
subclass.definition_location =
|
109
|
+
subclass.definition_location =
|
110
|
+
if MetaRuby.keep_definition_location?
|
111
|
+
call_stack
|
112
|
+
else Array.new
|
113
|
+
end
|
114
|
+
subclass.instance_variable_set :@name, nil
|
110
115
|
super
|
111
116
|
subclass.permanent_model = subclass.accessible_by_name? &&
|
112
117
|
subclass.permanent_definition_context?
|
@@ -120,6 +125,11 @@ module MetaRuby
|
|
120
125
|
include model_as_module
|
121
126
|
end
|
122
127
|
|
128
|
+
def self.extend_object(klass)
|
129
|
+
super
|
130
|
+
klass.instance_variable_set :@name, nil
|
131
|
+
end
|
132
|
+
|
123
133
|
# Tests whether the given model-as-module is provided by self
|
124
134
|
def provides?(model_as_module)
|
125
135
|
self <= model_as_module
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'utilrb/module/const_defined_here_p'
|
2
|
-
|
3
1
|
module MetaRuby
|
4
2
|
# Extend in modules that are used as models
|
5
3
|
#
|
@@ -60,7 +58,7 @@ module MetaRuby
|
|
60
58
|
def self.create_and_register_submodel(namespace, name, base_model, *args, &block)
|
61
59
|
ModelAsModule.validate_constant_name(name)
|
62
60
|
|
63
|
-
if namespace.
|
61
|
+
if namespace.const_defined?(name, false)
|
64
62
|
model = namespace.const_get(name)
|
65
63
|
base_model.setup_submodel(model, *args, &block)
|
66
64
|
else
|
@@ -96,14 +94,20 @@ module MetaRuby
|
|
96
94
|
#
|
97
95
|
# @return [String] the assigned name
|
98
96
|
def name=(name)
|
99
|
-
def self.name
|
100
|
-
if @name then @name
|
101
|
-
else super
|
102
|
-
end
|
103
|
-
end
|
104
97
|
@name = name
|
105
98
|
end
|
106
99
|
|
100
|
+
def name
|
101
|
+
if @name then @name
|
102
|
+
else super
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
def self.extend_object(obj)
|
107
|
+
obj.instance_variable_set :@name, nil
|
108
|
+
super
|
109
|
+
end
|
110
|
+
|
107
111
|
# Set or get the root model
|
108
112
|
attr_accessor :supermodel
|
109
113
|
|
@@ -117,10 +121,15 @@ module MetaRuby
|
|
117
121
|
def new_submodel(name: nil, type: self.class, **submodel_options, &block)
|
118
122
|
model = type.new
|
119
123
|
model.extend ModelAsModule
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
+
model.name =
|
125
|
+
if name
|
126
|
+
name.dup
|
127
|
+
end
|
128
|
+
model.definition_location =
|
129
|
+
if MetaRuby.keep_definition_location?
|
130
|
+
call_stack
|
131
|
+
else Array.new
|
132
|
+
end
|
124
133
|
setup_submodel(model, submodel_options, &block)
|
125
134
|
model
|
126
135
|
end
|
@@ -158,15 +167,34 @@ module MetaRuby
|
|
158
167
|
class_eval(&block)
|
159
168
|
end
|
160
169
|
|
170
|
+
# Tests whether self provides the given model
|
171
|
+
#
|
172
|
+
# @param [Module] model
|
173
|
+
def provides?(model)
|
174
|
+
self <= model
|
175
|
+
end
|
176
|
+
|
161
177
|
# Declares that this model also provides this other given model
|
162
178
|
def provides(model)
|
163
179
|
include model
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
180
|
+
|
181
|
+
model_root =
|
182
|
+
if model.root? then model
|
183
|
+
else model.supermodel
|
184
|
+
end
|
185
|
+
|
186
|
+
if !supermodel
|
187
|
+
self.supermodel = model_root
|
188
|
+
self.supermodel.register_submodel(self)
|
189
|
+
elsif supermodel != model_root
|
190
|
+
if model_root.provides?(supermodel)
|
191
|
+
self.supermodel = model_root
|
192
|
+
elsif !supermodel.provides?(model_root)
|
193
|
+
raise ArgumentError, "#{model}'s root is #{model_root} while #{self} is #{supermodel}, which are unrelated"
|
194
|
+
end
|
195
|
+
self.supermodel.register_submodel(self)
|
168
196
|
end
|
169
|
-
|
197
|
+
|
170
198
|
self.parent_models.merge(model.parent_models)
|
171
199
|
self.parent_models << model
|
172
200
|
end
|
@@ -27,16 +27,6 @@ module MetaRuby
|
|
27
27
|
# @return [Array<WeakRef>] the set of models that are children of this one
|
28
28
|
attribute(:submodels) { Array.new }
|
29
29
|
|
30
|
-
# Returns the model that is parent of this one
|
31
|
-
#
|
32
|
-
# The default implementation returns superclass if it is extended by
|
33
|
-
# this Registration module, and nil otherwise
|
34
|
-
def supermodel
|
35
|
-
if superclass.respond_to?(:register_submodel)
|
36
|
-
superclass
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
30
|
# Returns whether a model is a submodel of self
|
41
31
|
def has_submodel?(model)
|
42
32
|
each_submodel.any? { |m| m == model }
|
@@ -80,7 +70,11 @@ module MetaRuby
|
|
80
70
|
# Call to register a model that is a submodel of +self+
|
81
71
|
def register_submodel(klass)
|
82
72
|
if !klass.definition_location
|
83
|
-
klass.definition_location =
|
73
|
+
klass.definition_location =
|
74
|
+
if MetaRuby.keep_definition_location?
|
75
|
+
call_stack
|
76
|
+
else Array.new
|
77
|
+
end
|
84
78
|
end
|
85
79
|
|
86
80
|
submodels << WeakRef.new(klass)
|
data/lib/metaruby/version.rb
CHANGED
data/lib/metaruby.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
require 'utilrb/object/attribute'
|
2
2
|
require 'weakref'
|
3
3
|
|
4
|
-
require 'metaruby/
|
4
|
+
require 'metaruby/attributes'
|
5
5
|
require 'metaruby/registration'
|
6
|
-
require 'metaruby/
|
7
|
-
require 'metaruby/
|
6
|
+
require 'metaruby/model_as_module'
|
7
|
+
require 'metaruby/model_as_class'
|
8
8
|
|
9
9
|
require 'utilrb/logger'
|
10
10
|
|
@@ -20,5 +20,10 @@ module MetaRuby
|
|
20
20
|
LIB_DIR = File.expand_path('metaruby', File.dirname(__FILE__))
|
21
21
|
|
22
22
|
extend Logger::Root('MetaRuby', Logger::WARN)
|
23
|
+
|
24
|
+
class << self
|
25
|
+
attr_predicate :keep_definition_location?, true
|
26
|
+
end
|
27
|
+
self.keep_definition_location = true
|
23
28
|
end
|
24
29
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metaruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sylvain Joyeux
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-04-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: utilrb
|
@@ -101,7 +101,7 @@ files:
|
|
101
101
|
- Rakefile
|
102
102
|
- bin/.gitattributes
|
103
103
|
- lib/metaruby.rb
|
104
|
-
- lib/metaruby/
|
104
|
+
- lib/metaruby/attributes.rb
|
105
105
|
- lib/metaruby/dsls.rb
|
106
106
|
- lib/metaruby/dsls/doc.rb
|
107
107
|
- lib/metaruby/dsls/find_through_method_missing.rb
|
@@ -127,8 +127,8 @@ files:
|
|
127
127
|
- lib/metaruby/gui/model_selector.rb
|
128
128
|
- lib/metaruby/gui/rendering_manager.rb
|
129
129
|
- lib/metaruby/gui/ruby_constants_item_model.rb
|
130
|
-
- lib/metaruby/
|
131
|
-
- lib/metaruby/
|
130
|
+
- lib/metaruby/model_as_class.rb
|
131
|
+
- lib/metaruby/model_as_module.rb
|
132
132
|
- lib/metaruby/registration.rb
|
133
133
|
- lib/metaruby/test.rb
|
134
134
|
- lib/metaruby/version.rb
|
@@ -150,9 +150,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
150
150
|
version: '0'
|
151
151
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
152
152
|
requirements:
|
153
|
-
- - "
|
153
|
+
- - ">="
|
154
154
|
- !ruby/object:Gem::Version
|
155
|
-
version:
|
155
|
+
version: '0'
|
156
156
|
requirements: []
|
157
157
|
rubyforge_project:
|
158
158
|
rubygems_version: 2.2.3
|