module Spaceship::ConnectAPI::Model
Attributes
id[RW]
Public Class Methods
included(base)
click to toggle source
# File spaceship/lib/spaceship/connect_api/model.rb, line 4 def self.included(base) Spaceship::ConnectAPI::Models.types ||= [] Spaceship::ConnectAPI::Models.types << base base.extend(Spaceship::ConnectAPI::Model) end
new(id, attributes)
click to toggle source
# File spaceship/lib/spaceship/connect_api/model.rb, line 12 def initialize(id, attributes) self.id = id update_attributes(attributes) end
Public Instance Methods
attr_mapping(attr_map)
click to toggle source
Example: { “minOsVersion” => “min_os_version” }
Creates attr_write and attr_reader for :min_os_version Creates alias for :minOsVersion to :min_os_version
# File spaceship/lib/spaceship/connect_api/model.rb, line 31 def attr_mapping(attr_map) attr_map.each do |key, value| # Actual reader = value.to_sym writer = "#{value}=".to_sym has_reader = instance_methods.include?(reader) has_writer = instance_methods.include?(writer) send(:attr_reader, value) unless has_reader send(:attr_writer, value) unless has_writer # Alias key_reader = key.to_sym key_writer = "#{key}=".to_sym # Alias the API response name to attribute name alias_method(key_reader, reader) alias_method(key_writer, writer) end end
update_attributes(attributes)
click to toggle source
# File spaceship/lib/spaceship/connect_api/model.rb, line 17 def update_attributes(attributes) attributes.each do |key, value| method = "#{key}=".to_sym self.send(method, value) if self.respond_to?(method) end end