summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2009-10-06 21:46:19 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2011-06-30 08:08:41 +0200
commitc829d9395bc1152fac97ed16f2fcf6ed93fb60ee (patch)
treefb871aaf1c07ebd5818d81893f48c32e153f8b87 /lib
parent0cd373cb04619724a29c0bb241774c8bd61698c1 (diff)
downloadayk-c829d9395bc1152fac97ed16f2fcf6ed93fb60ee.zip
ayk-c829d9395bc1152fac97ed16f2fcf6ed93fb60ee.tar.gz
update options and spec
Diffstat (limited to 'lib')
-rw-r--r--lib/ayk/options.rb25
1 files changed, 5 insertions, 20 deletions
diff --git a/lib/ayk/options.rb b/lib/ayk/options.rb
index 13b3e40..5650609 100644
--- a/lib/ayk/options.rb
+++ b/lib/ayk/options.rb
@@ -48,10 +48,8 @@ module AYK
def option doc, key, value, other = {}, &block
ks = key.to_sym
raise OptionsError.new("Overriding existing option #{key}") if pedantic? and @hash.has_key? ks
- trigger = block || other[:trigger]
- convert = {:doc => doc.to_s, :value => value}
- convert[:trigger] = trigger if trigger
- @hash[ks] = other.merge(convert)
+ other[:trigger] = block if block
+ @hash[ks] = other.merge( :doc=>doc.to_s, :value=>value )
end
alias o option
#
@@ -73,14 +71,14 @@ module AYK
# this block should behave like Proc.new { |new_value,prev_value| ... }
def trigger key, &block
ks = key.to_sym
- raise OptionError.new("Setting trigger for unknown option : #{key}") if pedantic? and not @hash.has_key? ks
+ raise OptionsError.new("Setting trigger for unknown option : #{key}") if pedantic? and not @hash.has_key? ks
@hash[ks][:trigger] = block
end
#
# To avoid lookup on the parent, we can set a default to the internal Hash.
# Parameters as in {Options#o}, but without the +key+.
def default doc, value, other={}
- @hash.default = other.merge(:doc => doc, :value => value)
+ @hash.default = other.merge(:doc=>doc, :value=>value)
end
#
# Try to retrieve the corresponding Hash for the passed keys, will try to
@@ -97,7 +95,7 @@ module AYK
nil
end
elsif sub_options = get(key)
- sub_options.get(*keys)
+ sub_options[*keys]
end
end
private :get
@@ -132,19 +130,6 @@ module AYK
self[meth]
end
end
-# #
-# # @param [Array] keys
-# # @param [Object] value
-# def set_value(keys, value)
-# got = get(*keys)
-# return got[:value] = value if got
-# raise(IndexError, "There is no option available for %p" % [keys])
-# end
-# def merge!(hash)
-# hash.each_pair do |key, value|
-# set_value(key.to_s.split('.'), value)
-# end
-# end
#
def to_hash; @hash end
def each &block; @hash.each(&block) end