class Cattribute

Attributes

count[RW]
key[RW]
name[RW]
recipe[RW]
traits[RW]
type[RW]

Public Class Methods

[]( name ) click to toggle source
# File lib/kittyverse/cattributes.rb, line 23
def self.[]( name ) find_by_name( name ); end
cattributes_by_name() click to toggle source
# File lib/kittyverse/cattributes.rb, line 5
def self.cattributes_by_name()  @@cattributes_by_name ||= {}; end
find_by( **kwargs ) click to toggle source

add “generic” convenience find helper

# File lib/kittyverse/cattributes.rb, line 14
def self.find_by( **kwargs )
  if kwargs[ :name ]
     find_by_name( kwargs[ :name ] )
  else
    ## todo/fix: throw argument except!!!
    nil
  end
end
find_by_name( name ) click to toggle source
# File lib/kittyverse/cattributes.rb, line 7
def self.find_by_name( name )
  ## note: allow string AND symbols (thus, use .to_s !!!)
  ## note: downcase name e.g. allow Savannah too (not just savannah)
  @@cattributes_by_name[ name.downcase.to_s ]
end
new( **kwargs ) click to toggle source
# File lib/kittyverse/cattributes.rb, line 34
def initialize( **kwargs )
  update( kwargs )
end

Public Instance Methods

update( **kwargs ) click to toggle source
# File lib/kittyverse/cattributes.rb, line 38
def update( **kwargs )
  kwargs.each do |name,value|
    send( "#{name}=", value ) ## use "regular" plain/classic attribute setter
  end
  self   ## return self for chaining
end