Sha256: 97d696d3c6e03b5e6dcc842f773b8ca340d88c96385933d1445b7e0f528276ba
Contents?: true
Size: 1.18 KB
Versions: 4
Compression:
Stored size: 1.18 KB
Contents
class Array def args flatten.map{|a| a.args}.flatten end def last_option default = self.last_arg last = self.flatten.last last.kind_of?(Hash) ? last : default end def last_arg default = {} last = self.flatten.last last.kind_of?(Hash) ? last : default end def last_arg_value default = nil last = self.flatten.last raise ArgumentError, "Default value must be a Hash, was #{default}" if !default.kind_of? Hash key = default.keys.first return default[key] if !last.kind_of? Hash last[key] ? last[key] : default[key] end end class Symbol def args [to_s] end end class String def args (self =~ /\w+\s+\w+/) ? self.split : self end end def last_option *args default = last_arg({}, *args) last = args.flatten.last last.kind_of?(Hash) ? last : default end def last_arg default, *args last = args.flatten.last last.kind_of?(Hash) ? last : default end def last_arg_value default, *args last = args.flatten.last raise ArgumentError, "Default value must be a Hash, was #{default}" if !default.kind_of? Hash key = default.keys.first return default[key] if !last.kind_of? Hash last[key] ? last[key] : default[key] end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
sugar-high-0.7.3 | lib/sugar-high/arguments.rb |
sugar-high-0.7.2 | lib/sugar-high/arguments.rb |
sugar-high-0.7.1 | lib/sugar-high/arguments.rb |
sugar-high-0.7.0 | lib/sugar-high/arguments.rb |