class TicketSharing::Base

Public Class Methods

field_list() click to toggle source
# File lib/ticket_sharing/base.rb, line 11
def self.field_list
  @fields || []
end
fields(*args) click to toggle source
# File lib/ticket_sharing/base.rb, line 6
def self.fields(*args)
  @fields = args
  attr_accessor *args
end
first_ancestor() click to toggle source
# File lib/ticket_sharing/base.rb, line 15
def self.first_ancestor
  ancestors.detect { |a| a != self }
end
new(attrs = {}) click to toggle source
# File lib/ticket_sharing/base.rb, line 27
def initialize(attrs = {})
  field_list.each do |attribute|
    self.send("#{attribute}=", attrs[attribute.to_s]) if attrs.has_key?(attribute.to_s)
  end
end

Public Instance Methods

as_json(_options = {}) click to toggle source
# File lib/ticket_sharing/base.rb, line 33
def as_json(_options = {})
  field_list.inject({}) do |attrs, field|
    attrs[field.to_s] = send(field)
    attrs
  end
end
field_list() click to toggle source
# File lib/ticket_sharing/base.rb, line 19
def field_list
  if self.class.field_list.any?
    self.class.field_list
  else
    self.class.first_ancestor.field_list
  end
end
to_json(_options = {}) click to toggle source
# File lib/ticket_sharing/base.rb, line 40
def to_json(_options = {})
  JsonSupport.encode(as_json)
end