Skip to content

Instantly share code, notes, and snippets.

@jonahoffline
Created March 21, 2013 03:00
Show Gist options
  • Save jonahoffline/5210375 to your computer and use it in GitHub Desktop.
Save jonahoffline/5210375 to your computer and use it in GitHub Desktop.
Using Struct to create a class.
class Person < Struct.new(:name, :email)
def info
"#{self.name} #{self.email}"
end
def first_name
clean_name.first
end
def middle_name
clean_name[1]
end
def last_name
return clean_name.last unless clean_name.length >= 3
case clean_name.length
when 3
"#{clean_name[1]} #{clean_name[2]}"
when 4
"#{clean_name[2]} #{clean_name[3]}"
else
clean_name.last
end
end
def full_name
clean_name.join(' ')
end
def clean_name
name_split = self.name.split
name_split.map { |n| fix_case(n) }
end
def fix_case(name_)
name_.downcase.capitalize
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment