class Hefted::Argument
Public Class Methods
new(**args)
click to toggle source
# File lib/hefted/argument.rb, line 8 def initialize(**args) @name = args.fetch(:name) @join = args.fetch(:join, nil) @first = args.indexer!(:first)[:first] @members = args[:members] || args.select { |key, value| !%i(name join).include?(key) } end
Public Instance Methods
join?()
click to toggle source
# File lib/hefted/argument.rb, line 43 def join? !!@join end
joins()
click to toggle source
# File lib/hefted/argument.rb, line 47 def joins @join.map { |name| name.to_camel } end
keys()
click to toggle source
# File lib/hefted/argument.rb, line 19 def keys case @members when Array raise MissingKeysError if @members.include?(nil) @members when Hash @members.keys else raise MissingKeysError end.map(&:to_sym) end
name()
click to toggle source
# File lib/hefted/argument.rb, line 15 def name @name.to_camel end
values()
click to toggle source
# File lib/hefted/argument.rb, line 31 def values case @members when Array @members.map.with_index(@first) { |key, i| i } when Hash raise MissingValuesError if @members.has_value?(nil) @members.values else raise MissingValuesError end end