Sha256: 71a91210b7679ff82d17e8a4ce9ef108154a732fffc73abe3fc05b2d87c3cd7c

Contents?: true

Size: 697 Bytes

Versions: 20

Compression:

Stored size: 697 Bytes

Contents

class Array
  def args
    flatten.map{|a| a.args}.flatten
  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

20 entries across 20 versions & 1 rubygems

Version Path
sugar-high-0.4.5 lib/sugar-high/arguments.rb
sugar-high-0.4.4.2 lib/sugar-high/arguments.rb
sugar-high-0.4.4.1 lib/sugar-high/arguments.rb
sugar-high-0.4.4 lib/sugar-high/arguments.rb
sugar-high-0.4.3 lib/sugar-high/arguments.rb
sugar-high-0.4.0 lib/sugar-high/arguments.rb
sugar-high-0.3.7 lib/sugar-high/arguments.rb
sugar-high-0.3.6 lib/sugar-high/arguments.rb
sugar-high-0.3.5 lib/sugar-high/arguments.rb
sugar-high-0.3.4 lib/sugar-high/arguments.rb
sugar-high-0.3.3 lib/sugar-high/arguments.rb
sugar-high-0.3.2 lib/sugar-high/arguments.rb
sugar-high-0.3.1 lib/sugar-high/arguments.rb
sugar-high-0.3.0 lib/sugar-high/arguments.rb
sugar-high-0.2.12 lib/sugar-high/arguments.rb
sugar-high-0.2.11 lib/sugar-high/arguments.rb
sugar-high-0.2.10 lib/sugar-high/arguments.rb
sugar-high-0.2.9 lib/sugar-high/arguments.rb
sugar-high-0.2.8 lib/sugar-high/arguments.rb
sugar-high-0.2.7 lib/sugar-high/arguments.rb