Class: TicketSharing::Base
- Inherits:
-
Object
- Object
- TicketSharing::Base
show all
- Defined in:
- lib/ticket_sharing/base.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(attrs = {}) ⇒ Base
Returns a new instance of Base.
27
28
29
30
31
|
# 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
|
Class Method Details
.field_list ⇒ Object
11
12
13
|
# File 'lib/ticket_sharing/base.rb', line 11
def self.field_list
@fields || []
end
|
.fields(*args) ⇒ Object
6
7
8
9
|
# File 'lib/ticket_sharing/base.rb', line 6
def self.fields(*args)
@fields = args
attr_accessor *args
end
|
.first_ancestor ⇒ Object
15
16
17
|
# File 'lib/ticket_sharing/base.rb', line 15
def self.first_ancestor
ancestors.detect { |a| a != self }
end
|
Instance Method Details
#as_json(_options = {}) ⇒ Object
33
34
35
36
37
38
|
# 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 ⇒ Object
19
20
21
22
23
24
25
|
# 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 = {}) ⇒ Object
40
41
42
|
# File 'lib/ticket_sharing/base.rb', line 40
def to_json(_options = {})
JsonSupport.encode(as_json)
end
|