caesars 0.7.1 → 0.7.2
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.
- data/CHANGES.txt +11 -0
- data/caesars.gemspec +1 -1
- data/lib/caesars.rb +13 -4
- data/lib/caesars/hash.rb +8 -2
- data/lib/caesars/orderedhash.rb +0 -3
- metadata +2 -2
data/CHANGES.txt
CHANGED
@@ -1,6 +1,17 @@
|
|
1
1
|
CAESARS -- CHANGES
|
2
2
|
|
3
3
|
|
4
|
+
#### 0.7.2 (2009-06-13) ###############################
|
5
|
+
|
6
|
+
* FIXED: Caesars::Hash method missing now correctly returns
|
7
|
+
hash values for element keys which are Strings.
|
8
|
+
* ADDED: Caesars::Hash.__class__ method which returns
|
9
|
+
one of: Hash (Ruby 1.9) or Caesars::OrderedHash (Ruby 1.8)
|
10
|
+
* CHANGE: All arguments to forced_hash methods now reference
|
11
|
+
the value of the first argument. They were previously
|
12
|
+
ignored but now mimic the default behavior.
|
13
|
+
|
14
|
+
|
4
15
|
#### 0.7.1 (2009-06-08) ###############################
|
5
16
|
|
6
17
|
* FIXED: Updated file manifest in gemspec
|
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.7.
|
4
|
+
s.version = "0.7.2"
|
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
@@ -13,7 +13,7 @@ class Caesars
|
|
13
13
|
require 'caesars/exceptions'
|
14
14
|
require 'caesars/config'
|
15
15
|
|
16
|
-
VERSION = "0.7.
|
16
|
+
VERSION = "0.7.2"
|
17
17
|
@@debug = false
|
18
18
|
@@chilled = {}
|
19
19
|
@@forced_array = {}
|
@@ -249,6 +249,7 @@ class Caesars
|
|
249
249
|
# previously) and also in subclasses of Caesars for returning the appropriate
|
250
250
|
# attribute values.
|
251
251
|
def method_missing(meth, *args, &b)
|
252
|
+
STDERR.puts "Caesars.method_missing: #{meth}" if Caesars.debug?
|
252
253
|
add_known_symbol(meth)
|
253
254
|
if Caesars.forced_ignore?(meth)
|
254
255
|
STDERR.puts "Forced ignore: #{meth}" if Caesars.debug?
|
@@ -355,6 +356,7 @@ class Caesars
|
|
355
356
|
module_eval %Q{
|
356
357
|
def #{caesars_meth}(*caesars_names,&b)
|
357
358
|
this_meth = :'#{caesars_meth}'
|
359
|
+
|
358
360
|
add_known_symbol(this_meth)
|
359
361
|
if Caesars.forced_ignore?(this_meth)
|
360
362
|
STDERR.puts "Forced ignore: \#{this_meth}" if Caesars.debug?
|
@@ -368,11 +370,12 @@ class Caesars
|
|
368
370
|
return nil if caesars_names.empty? && b.nil?
|
369
371
|
return method_missing(this_meth, *caesars_names, &b) if caesars_names.empty?
|
370
372
|
|
371
|
-
#
|
373
|
+
# Take the first argument in the list provided to "caesars_meth"
|
372
374
|
caesars_name = caesars_names.shift
|
373
375
|
|
374
376
|
prev = @caesars_pointer
|
375
377
|
@caesars_pointer[this_meth] ||= Caesars::Hash.new
|
378
|
+
|
376
379
|
hash = Caesars::Hash.new
|
377
380
|
if @caesars_pointer[this_meth].has_key?(caesars_name)
|
378
381
|
STDERR.puts "duplicate key ignored: \#{caesars_name}"
|
@@ -400,8 +403,14 @@ class Caesars
|
|
400
403
|
@caesars_pointer = prev
|
401
404
|
@caesars_pointer[this_meth][caesars_name] = hash
|
402
405
|
end
|
403
|
-
|
404
|
-
|
406
|
+
|
407
|
+
# All other arguments provided to "caesars_meth"
|
408
|
+
# will reference the value for the first argument.
|
409
|
+
caesars_names.each do |name|
|
410
|
+
@caesars_pointer[this_meth][name] = @caesars_pointer[this_meth][caesars_name]
|
411
|
+
end
|
412
|
+
|
413
|
+
@caesars_pointer = prev # Make sure we're back up one level
|
405
414
|
end
|
406
415
|
}
|
407
416
|
nil
|
data/lib/caesars/hash.rb
CHANGED
@@ -6,8 +6,10 @@
|
|
6
6
|
#
|
7
7
|
class Caesars
|
8
8
|
class Hash < HASH_TYPE
|
9
|
+
|
9
10
|
def method_missing(meth)
|
10
|
-
|
11
|
+
STDERR.puts "Caesars::Hash.method_missing: #{meth}" if Caesars.debug?
|
12
|
+
self[meth] || self[meth.to_s]
|
11
13
|
end
|
12
14
|
|
13
15
|
# Returns a clone of itself and all children cast as ::Hash objects
|
@@ -26,6 +28,10 @@ class Caesars
|
|
26
28
|
end
|
27
29
|
target
|
28
30
|
end
|
29
|
-
|
31
|
+
|
32
|
+
def __class__
|
33
|
+
HASH_TYPE
|
34
|
+
end
|
35
|
+
|
30
36
|
end
|
31
37
|
end
|
data/lib/caesars/orderedhash.rb
CHANGED
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.7.
|
4
|
+
version: 0.7.2
|
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-06-
|
12
|
+
date: 2009-06-13 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|