caesars 0.6.6 → 0.6.7
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES.txt +6 -1
- data/bin/example +1 -1
- data/caesars.gemspec +1 -1
- data/lib/caesars.rb +15 -6
- metadata +3 -3
data/CHANGES.txt
CHANGED
@@ -1,11 +1,16 @@
|
|
1
1
|
CAESARS -- CHANGES
|
2
2
|
|
3
3
|
|
4
|
+
#### 0.6.7 (2009-05-23) ###############################
|
5
|
+
|
6
|
+
* FIXED: Bug in inherited when calling from an anonymous class
|
7
|
+
* ADDED: tryouts/
|
8
|
+
|
4
9
|
#### 0.6.6 (2009-05-12) ###############################
|
5
10
|
|
6
11
|
* CHANGE: Renamed OrderedHash to Caesars::OrderedHash to eliminate change of namespace conflicts
|
7
12
|
* CHANGE: Caesars::VERSION is now a String an includes the TINY (0.6.6)
|
8
|
-
*
|
13
|
+
* FIXED: OrderedHash.merge was making an inappropriate call to dup
|
9
14
|
|
10
15
|
|
11
16
|
#### 0.6.5 (2009-05-10) ###############################
|
data/bin/example
CHANGED
data/caesars.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
@spec = Gem::Specification.new do |s|
|
2
2
|
s.name = "caesars"
|
3
3
|
s.rubyforge_project = "caesars"
|
4
|
-
s.version = "0.6.
|
4
|
+
s.version = "0.6.7"
|
5
5
|
s.specification_version = 1 if s.respond_to? :specification_version=
|
6
6
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
7
7
|
|
data/lib/caesars.rb
CHANGED
@@ -277,10 +277,10 @@ class Caesars
|
|
277
277
|
end
|
278
278
|
|
279
279
|
# Returns the lowercase name of the class. i.e. Some::Taste # => taste
|
280
|
-
def glass; @glass ||= (self.class.to_s.split(/::/))
|
280
|
+
def glass; @glass ||= (self.class.to_s.split(/::/)).last.downcase.to_sym; end
|
281
281
|
|
282
282
|
# Returns the lowercase name of +klass+. i.e. Some::Taste # => taste
|
283
|
-
def self.glass(klass); (klass.to_s.split(/::/))
|
283
|
+
def self.glass(klass); (klass.to_s.split(/::/)).last.downcase.to_sym; end
|
284
284
|
|
285
285
|
# This method handles all of the attributes that are not forced hashes
|
286
286
|
# It's used in the DSL for handling attributes dyanamically (that weren't defined
|
@@ -506,11 +506,19 @@ class Caesars
|
|
506
506
|
# end
|
507
507
|
#
|
508
508
|
def self.inherited(modname)
|
509
|
+
STDERR.puts "INHERITED: #{modname}" if Caesars.debug?
|
510
|
+
|
509
511
|
# NOTE: We may be able to replace this without an eval using Module.nesting
|
510
|
-
meth = (modname.to_s.split(/::/))
|
512
|
+
meth = (modname.to_s.split(/::/)).last.downcase # Some::HighBall => highball
|
513
|
+
|
514
|
+
# The method name "meth" is now a known symbol
|
515
|
+
# for the short class name (also "meth").
|
511
516
|
Caesars.add_known_symbol(meth, meth)
|
512
|
-
|
513
|
-
|
517
|
+
|
518
|
+
# We execute a module_eval form the namespace of the inherited class
|
519
|
+
# so when we define the new module DSL it will be Some::HighBall::DSL.
|
520
|
+
modname.module_eval %Q{
|
521
|
+
module DSL
|
514
522
|
def #{meth}(*args, &b)
|
515
523
|
name = !args.empty? ? args.first.to_s : nil
|
516
524
|
varname = "@#{meth.to_s}"
|
@@ -522,7 +530,8 @@ class Caesars
|
|
522
530
|
return inst if b.nil?
|
523
531
|
|
524
532
|
# Add to existing instance, if it exists. Otherwise create one anew.
|
525
|
-
|
533
|
+
# NOTE: Module.nesting[1] == modname (e.g. Some::HighBall)
|
534
|
+
inst = instance_variable_set(varname, inst || Module.nesting[1].new(name))
|
526
535
|
inst.instance_eval(&b)
|
527
536
|
inst
|
528
537
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: caesars
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Delano Mandelbaum
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-05-
|
12
|
+
date: 2009-05-23 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -62,7 +62,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
62
62
|
requirements: []
|
63
63
|
|
64
64
|
rubyforge_project: caesars
|
65
|
-
rubygems_version: 1.3.
|
65
|
+
rubygems_version: 1.3.3
|
66
66
|
signing_key:
|
67
67
|
specification_version: 1
|
68
68
|
summary: "Caesars: Rapid DSL prototyping in Ruby."
|