caesars 0.6.1 → 0.6.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES.txt +10 -2
- data/caesars.gemspec +1 -1
- data/lib/caesars.rb +40 -11
- metadata +2 -2
data/CHANGES.txt
CHANGED
@@ -1,10 +1,18 @@
|
|
1
1
|
CAESARS -- CHANGES
|
2
2
|
|
3
3
|
|
4
|
-
#### 0.6.
|
4
|
+
#### 0.6.2 (2009-05-03) ###############################
|
5
|
+
|
6
|
+
* FIXED: When setting Caesars::Config.verbose it would get reset after a refresh.
|
7
|
+
* FIXED: Handling a keyword that's passed to both forced_hash and chill
|
8
|
+
* ADDED: Print message to STDERR when force refreshing in debug or verbose mode
|
9
|
+
* ADDED: Caesars::SyntaxError
|
5
10
|
|
6
|
-
* ADDED: known_symbol? and known_symbol_by_glass?
|
7
11
|
|
12
|
+
#### 0.6.1 (2009-05-02) ###############################
|
13
|
+
|
14
|
+
* ADDED: known_symbol? and known_symbol_by_glass?
|
15
|
+
|
8
16
|
#### 0.6.0 (2009-04-30) ###############################
|
9
17
|
|
10
18
|
* ADDED: Forced reloading for Caesars::Config.refresh. This allows
|
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.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
@@ -88,9 +88,18 @@ class Caesars
|
|
88
88
|
attr_accessor :caesars_properties
|
89
89
|
|
90
90
|
class Error < RuntimeError
|
91
|
+
attr_accessor :backtrace
|
91
92
|
def initialize(obj=nil); @obj = obj; end
|
92
93
|
def message; "#{self.class}: #{@obj}"; end
|
93
94
|
end
|
95
|
+
class SyntaxError < Caesars::Error
|
96
|
+
def message
|
97
|
+
msg = "Syntax error in #{@obj}"
|
98
|
+
bt = @backtrace
|
99
|
+
msg << " in " << bt.first.scan(/\`(.+?)'/).flatten.first if bt
|
100
|
+
msg
|
101
|
+
end
|
102
|
+
end
|
94
103
|
|
95
104
|
def initialize(name=nil)
|
96
105
|
@caesars_name = name if name
|
@@ -376,7 +385,8 @@ class Caesars
|
|
376
385
|
|
377
386
|
return nil if caesars_names.empty? && b.nil?
|
378
387
|
return method_missing(this_meth, *caesars_names, &b) if caesars_names.empty?
|
379
|
-
|
388
|
+
|
389
|
+
# TODO: This should be a loop
|
380
390
|
caesars_name = caesars_names.shift
|
381
391
|
|
382
392
|
prev = @caesars_pointer
|
@@ -387,17 +397,30 @@ class Caesars
|
|
387
397
|
return
|
388
398
|
end
|
389
399
|
|
390
|
-
|
400
|
+
# The pointer is pointing to the hash that contains "this_meth".
|
401
|
+
# We wan't to make it point to the this_meth hash so when we call
|
402
|
+
# the block, we'll create new entries in there.
|
403
|
+
@caesars_pointer = hash
|
404
|
+
|
391
405
|
if b
|
392
406
|
if Caesars.chilled?(this_meth)
|
407
|
+
# We're done processing this_meth so we want to return the pointer
|
408
|
+
# to the level above.
|
409
|
+
@caesars_pointer = prev
|
393
410
|
@caesars_pointer[this_meth][caesars_name] = b
|
394
411
|
else
|
412
|
+
# Since the pointer is pointing to the this_meth hash, all keys
|
413
|
+
# created in the block we be placed inside.
|
395
414
|
b.call
|
415
|
+
# We're done processing this_meth so we want to return the pointer
|
416
|
+
# to the level above.
|
417
|
+
@caesars_pointer = prev
|
418
|
+
@caesars_pointer[this_meth][caesars_name] = hash
|
396
419
|
end
|
397
420
|
end
|
398
|
-
|
399
|
-
@caesars_pointer
|
400
|
-
|
421
|
+
|
422
|
+
@caesars_pointer = prev
|
423
|
+
|
401
424
|
end
|
402
425
|
}
|
403
426
|
nil
|
@@ -526,8 +549,8 @@ end
|
|
526
549
|
#
|
527
550
|
class Caesars::Config
|
528
551
|
attr_accessor :paths
|
529
|
-
|
530
|
-
|
552
|
+
attr_reader :options
|
553
|
+
attr_reader :verbose
|
531
554
|
|
532
555
|
@@glasses = []
|
533
556
|
|
@@ -556,6 +579,11 @@ class Caesars::Config
|
|
556
579
|
refresh
|
557
580
|
end
|
558
581
|
|
582
|
+
def verbose=(enable)
|
583
|
+
@verbose = enable == true
|
584
|
+
@options[:verbose] = @verbose
|
585
|
+
end
|
586
|
+
|
559
587
|
# Reset all config instance variables to nil.
|
560
588
|
def caesars_init
|
561
589
|
# Remove instance variables used to populate DSL data
|
@@ -593,7 +621,7 @@ class Caesars::Config
|
|
593
621
|
def refresh
|
594
622
|
caesars_init # Delete all current configuration
|
595
623
|
@@glasses.each { |glass| extend glass }
|
596
|
-
|
624
|
+
|
597
625
|
begin
|
598
626
|
current_path = nil # used in error messages
|
599
627
|
@paths.each do |path|
|
@@ -612,15 +640,16 @@ class Caesars::Config
|
|
612
640
|
STDERR.puts "Too many forced refreshed (#{@forced_refreshes})"
|
613
641
|
exit 9
|
614
642
|
end
|
615
|
-
STDERR.puts ex.message if Caesars.debug?
|
643
|
+
STDERR.puts ex.message if @verbose || Caesars.debug?
|
616
644
|
refresh
|
617
645
|
|
618
646
|
#rescue Caesars::Error => ex
|
619
647
|
# STDERR.puts ex.message
|
620
648
|
# STDERR.puts ex.backtrace if Caesars.debug?
|
621
649
|
rescue ArgumentError, SyntaxError => ex
|
622
|
-
|
623
|
-
|
650
|
+
newex = Caesars::SyntaxError.new(current_path)
|
651
|
+
newex.backtrace = ex.backtrace
|
652
|
+
raise newex
|
624
653
|
end
|
625
654
|
end
|
626
655
|
|
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.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-05-
|
12
|
+
date: 2009-05-03 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|