class Trello::BasicData
Attributes
client[W]
Public Class Methods
client()
click to toggle source
# File lib/trello/basic_data.rb, line 102 def self.client Trello.client end
create(options)
click to toggle source
# File lib/trello/basic_data.rb, line 20 def create(options) client.create(path_name, options) end
find(id, params = {})
click to toggle source
# File lib/trello/basic_data.rb, line 16 def find(id, params = {}) client.find(path_name, id, params) end
many(name, opts = {})
click to toggle source
# File lib/trello/basic_data.rb, line 87 def self.many(name, opts = {}) class_eval do define_method(:"#{name}") do |*args| options = opts.dup resource = options.delete(:in) || self.class.to_s.split("::").last.downcase.pluralize klass = options.delete(:via) || Trello.const_get(name.to_s.singularize.camelize) path = options.delete(:path) || name params = options.merge(args[0] || {}) resources = client.find_many(klass, "/#{resource}/#{id}/#{path}", params) MultiAssociation.new(self, resources).proxy end end end
new(fields = {})
click to toggle source
# File lib/trello/basic_data.rb, line 110 def initialize(fields = {}) update_fields(fields) end
one(name, opts = {})
click to toggle source
# File lib/trello/basic_data.rb, line 70 def self.one(name, opts = {}) class_eval do define_method(:"#{name}") do |*args| options = opts.dup klass = options.delete(:via) || Trello.const_get(name.to_s.camelize) ident = options.delete(:using) || :id path = options.delete(:path) if path client.find(path, self.send(ident)) else klass.find(self.send(ident)) end end end end
parse(response) { |basic_data| ... }
click to toggle source
# File lib/trello/basic_data.rb, line 30 def parse(response) from_response(response).tap do |basic_data| yield basic_data if block_given? end end
parse_many(response) { |d| ... }
click to toggle source
# File lib/trello/basic_data.rb, line 36 def parse_many(response) from_response(response).map do |data| data.tap do |d| yield d if block_given? end end end
path_name()
click to toggle source
# File lib/trello/basic_data.rb, line 12 def path_name name.split("::").last.underscore end
register_attributes(*names)
click to toggle source
# File lib/trello/basic_data.rb, line 45 def self.register_attributes(*names) options = { readonly: [] } options.merge!(names.pop) if names.last.kind_of? Hash # Defines the attribute getter and setters. class_eval do define_method :attributes do @attributes ||= names.reduce({}) { |hash, k| hash.merge(k.to_sym => nil) } end names.each do |key| define_method(:"#{key}") { @attributes[key] } unless options[:readonly].include?(key.to_sym) define_method :"#{key}=" do |val| send(:"#{key}_will_change!") unless val == @attributes[key] @attributes[key] = val end end end define_attribute_methods names end end
save(options) { |basic_data| ... }
click to toggle source
# File lib/trello/basic_data.rb, line 24 def save(options) new(options).tap do |basic_data| yield basic_data if block_given? end.save end
Public Instance Methods
==(other)
click to toggle source
Two objects are equal if their id methods are equal.
# File lib/trello/basic_data.rb, line 124 def ==(other) id == other.id end
client()
click to toggle source
# File lib/trello/basic_data.rb, line 128 def client @client ||= self.class.client end
refresh!()
click to toggle source
Refresh the contents of our object.
# File lib/trello/basic_data.rb, line 119 def refresh! self.class.find(id) end
update_fields(fields)
click to toggle source
# File lib/trello/basic_data.rb, line 114 def update_fields(fields) raise NotImplementedError, "#{self.class} does not implement update_fields." end