Class: Seam::Resources::BaseResource
- Inherits:
-
Object
- Object
- Seam::Resources::BaseResource
show all
- Defined in:
- lib/seam/base_resource.rb
Direct Known Subclasses
AccessCode, AccessCode::DormakabaOracodeMetadata, AccessCode::Errors, AccessCode::Errors::ModifiedFields, AccessCode::PendingMutations, AccessCode::PendingMutations::From, AccessCode::PendingMutations::To, AccessCode::Warnings, AccessCode::Warnings::ModifiedFields, AccessGrant, AccessGrant::Errors, AccessGrant::PendingMutations, AccessGrant::PendingMutations::From, AccessGrant::PendingMutations::To, AccessGrant::RequestedAccessMethods, AccessGrant::Warnings, AccessGrant::Warnings::FailedDevices, AccessMethod, AccessMethod::Errors, AccessMethod::PendingMutations, AccessMethod::PendingMutations::From, AccessMethod::PendingMutations::To, AccessMethod::Warnings, AcsAccessGroup, AcsAccessGroup::AccessSchedule, AcsAccessGroup::Errors, AcsAccessGroup::PendingMutations, AcsAccessGroup::PendingMutations::From, AcsAccessGroup::PendingMutations::To, AcsAccessGroup::Warnings, AcsCredential, AcsCredential::AssaAbloyVostioMetadata, AcsCredential::Errors, AcsCredential::VisionlineMetadata, AcsCredential::Warnings, AcsEncoder, AcsEncoder::Errors, AcsEntrance, AcsEntrance::AkilesMetadata, AcsEntrance::AkilesMetadata::Actions, AcsEntrance::AssaAbloyVostioMetadata, AcsEntrance::AvigilonAltaMetadata, AcsEntrance::BrivoMetadata, AcsEntrance::DormakabaAmbianceMetadata, AcsEntrance::DormakabaCommunityMetadata, AcsEntrance::Errors, AcsEntrance::HotekMetadata, AcsEntrance::LatchMetadata, AcsEntrance::SaltoKsMetadata, AcsEntrance::SaltoSpaceMetadata, AcsEntrance::VisionlineMetadata, AcsEntrance::VisionlineMetadata::Profiles, AcsEntrance::Warnings, AcsSystem, AcsSystem::Errors, AcsSystem::Location, AcsSystem::VisionlineMetadata, AcsSystem::Warnings, AcsUser, AcsUser::AccessSchedule, AcsUser::Errors, AcsUser::PendingMutations, AcsUser::PendingMutations::From, AcsUser::PendingMutations::To, AcsUser::SaltoKsMetadata, AcsUser::SaltoSpaceMetadata, AcsUser::Warnings, ActionAttempt, ActionAttempt::Error, ActionAttempt::Result, ActionAttempt::Result::AcsCredentialOnEncoder, ActionAttempt::Result::AcsCredentialOnEncoder::VisionlineMetadata, ActionAttempt::Result::AcsCredentialOnSeam, ActionAttempt::Result::AcsCredentialOnSeam::AssaAbloyVostioMetadata, ActionAttempt::Result::AcsCredentialOnSeam::Errors, ActionAttempt::Result::AcsCredentialOnSeam::VisionlineMetadata, ActionAttempt::Result::AcsCredentialOnSeam::Warnings, ActionAttempt::Result::AssaAbloyVostioMetadata, ActionAttempt::Result::Errors, ActionAttempt::Result::PendingMutations, ActionAttempt::Result::PendingMutations::From, ActionAttempt::Result::PendingMutations::To, ActionAttempt::Result::VisionlineMetadata, ActionAttempt::Result::Warnings, Batch, ClientSession, ConnectWebview, ConnectedAccount, ConnectedAccount::Errors, ConnectedAccount::Errors::SaltoKsMetadata, ConnectedAccount::Errors::SaltoKsMetadata::Sites, ConnectedAccount::UserIdentifier, ConnectedAccount::Warnings, ConnectedAccount::Warnings::SaltoKsMetadata, ConnectedAccount::Warnings::SaltoKsMetadata::Sites, CustomerPortal, Device, Device::DeviceManufacturer, Device::DeviceProvider, Device::Errors, Device::Location, Device::Properties, Device::Properties::AccessoryKeypad, Device::Properties::AccessoryKeypad::Battery, Device::Properties::ActiveThermostatSchedule, Device::Properties::ActiveThermostatSchedule::Errors, Device::Properties::AkilesMetadata, Device::Properties::Appearance, Device::Properties::AqaraMetadata, Device::Properties::AssaAbloyCredentialServiceMetadata, Device::Properties::AssaAbloyCredentialServiceMetadata::Endpoints, Device::Properties::AssaAbloyVostioMetadata, Device::Properties::AugustMetadata, Device::Properties::AvailableClimatePresets, Device::Properties::AvailableClimatePresets::EcobeeMetadata, Device::Properties::AvigilonAltaMetadata, Device::Properties::Battery, Device::Properties::BrivoMetadata, Device::Properties::CodeConstraints, Device::Properties::ControlbywebMetadata, Device::Properties::CurrentClimateSetting, Device::Properties::CurrentClimateSetting::EcobeeMetadata, Device::Properties::DefaultClimateSetting, Device::Properties::DefaultClimateSetting::EcobeeMetadata, Device::Properties::DormakabaOracodeMetadata, Device::Properties::DormakabaOracodeMetadata::DeviceId, Device::Properties::DormakabaOracodeMetadata::PredefinedTimeSlots, Device::Properties::EcobeeMetadata, Device::Properties::FourSuitesMetadata, Device::Properties::GenieMetadata, Device::Properties::HoneywellResideoMetadata, Device::Properties::IglooMetadata, Device::Properties::IgloohomeMetadata, Device::Properties::KeynestMetadata, Device::Properties::KeypadBattery, Device::Properties::KisiMetadata, Device::Properties::KorelockMetadata, Device::Properties::KwiksetMetadata, Device::Properties::LocklyMetadata, Device::Properties::MinutMetadata, Device::Properties::MinutMetadata::LatestSensorValues, Device::Properties::MinutMetadata::LatestSensorValues::AccelerometerZ, Device::Properties::MinutMetadata::LatestSensorValues::Humidity, Device::Properties::MinutMetadata::LatestSensorValues::Pressure, Device::Properties::MinutMetadata::LatestSensorValues::Sound, Device::Properties::MinutMetadata::LatestSensorValues::Temperature, Device::Properties::Model, Device::Properties::NestMetadata, Device::Properties::NoiseawareMetadata, Device::Properties::NukiMetadata, Device::Properties::OfflineTimeFrameOptions, Device::Properties::OfflineTimeFrameOptions::TimePairs, Device::Properties::OmnitecMetadata, Device::Properties::OnlineTimeFrameOptions, Device::Properties::OnlineTimeFrameOptions::TimePairs, Device::Properties::RingMetadata, Device::Properties::SaltoKsMetadata, Device::Properties::SaltoMetadata, Device::Properties::SaltoSpaceCredentialServiceMetadata, Device::Properties::SchlageMetadata, Device::Properties::SeamBridgeMetadata, Device::Properties::SensiMetadata, Device::Properties::SmartthingsMetadata, Device::Properties::TadoMetadata, Device::Properties::TedeeMetadata, Device::Properties::TemperatureThreshold, Device::Properties::ThermostatDailyPrograms, Device::Properties::ThermostatDailyPrograms::Periods, Device::Properties::ThermostatWeeklyProgram, Device::Properties::TtlockMetadata, Device::Properties::TtlockMetadata::Features, Device::Properties::TtlockMetadata::WirelessKeypads, Device::Properties::TwoNMetadata, Device::Properties::UltraloqMetadata, Device::Properties::VisionlineMetadata, Device::Properties::WyzeMetadata, Device::Warnings, DeviceProvider, InstantKey, InstantKey::Customization, NoiseThreshold, Pagination, Phone, Phone::Errors, Phone::Properties, Phone::Properties::AssaAbloyCredentialServiceMetadata, Phone::Properties::AssaAbloyCredentialServiceMetadata::Endpoints, Phone::Properties::SaltoSpaceCredentialServiceMetadata, Phone::Warnings, SeamEvent, SeamEvent::AccessCodeErrors, SeamEvent::AccessCodeWarnings, SeamEvent::AcsSystemErrors, SeamEvent::AcsSystemWarnings, SeamEvent::ChangedProperties, SeamEvent::ConnectedAccountErrors, SeamEvent::ConnectedAccountWarnings, SeamEvent::DeviceErrors, SeamEvent::DeviceWarnings, SeamEvent::From, SeamEvent::Reason, SeamEvent::RequestedMutations, SeamEvent::To, Space, Space::CustomerData, Space::Geolocation, ThermostatDailyProgram, ThermostatDailyProgram::Periods, ThermostatSchedule, ThermostatSchedule::Errors, UnmanagedAccessCode, UnmanagedAccessCode::DormakabaOracodeMetadata, UnmanagedAccessCode::Errors, UnmanagedAccessCode::Errors::ModifiedFields, UnmanagedAccessCode::Warnings, UnmanagedAccessCode::Warnings::ModifiedFields, UnmanagedAccessGrant, UnmanagedAccessGrant::Errors, UnmanagedAccessGrant::PendingMutations, UnmanagedAccessGrant::PendingMutations::From, UnmanagedAccessGrant::PendingMutations::To, UnmanagedAccessGrant::RequestedAccessMethods, UnmanagedAccessGrant::Warnings, UnmanagedAccessGrant::Warnings::FailedDevices, UnmanagedAccessMethod, UnmanagedAccessMethod::Errors, UnmanagedAccessMethod::PendingMutations, UnmanagedAccessMethod::PendingMutations::From, UnmanagedAccessMethod::PendingMutations::To, UnmanagedAccessMethod::Warnings, UnmanagedDevice, UnmanagedDevice::Errors, UnmanagedDevice::Location, UnmanagedDevice::Properties, UnmanagedDevice::Properties::AccessoryKeypad, UnmanagedDevice::Properties::AccessoryKeypad::Battery, UnmanagedDevice::Properties::Battery, UnmanagedDevice::Properties::Model, UnmanagedDevice::Warnings, UnmanagedUserIdentity, UnmanagedUserIdentity::Errors, UnmanagedUserIdentity::Warnings, UserIdentity, UserIdentity::Errors, UserIdentity::Warnings, Webhook, Workspace, Workspace::ConnectWebviewCustomization
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(data, client = nil) ⇒ BaseResource
Returns a new instance of BaseResource.
11
12
13
14
15
|
# File 'lib/seam/base_resource.rb', line 11
def initialize(data, client = nil)
@data = data
@client = client
process_data_attributes(@data)
end
|
Instance Attribute Details
#client ⇒ Object
Returns the value of attribute client.
9
10
11
|
# File 'lib/seam/base_resource.rb', line 9
def client
@client
end
|
#data ⇒ Object
Returns the value of attribute data.
9
10
11
|
# File 'lib/seam/base_resource.rb', line 9
def data
@data
end
|
Class Method Details
.date_accessor(*attrs) ⇒ Object
73
74
75
76
77
78
79
80
81
|
# File 'lib/seam/base_resource.rb', line 73
def self.date_accessor(*attrs)
attrs.each do |attr|
define_method(attr) do
value = instance_variable_get(:"@#{attr}")
value.nil? ? nil : parse_datetime(value)
end
end
end
|
.load_from_response(data, client = nil) ⇒ Object
22
23
24
25
26
27
28
29
30
|
# File 'lib/seam/base_resource.rb', line 22
def self.load_from_response(data, client = nil)
return nil if data.nil?
if data.is_a?(Array)
data.map { |d| new(d, client) }
else
new(data, client)
end
end
|
.resource_accessor(attr, resource_class) ⇒ Object
48
49
50
51
|
# File 'lib/seam/base_resource.rb', line 48
def self.resource_accessor(attr, resource_class)
resource_accessors[attr.to_s] = resource_class
attr_accessor attr
end
|
.resource_accessors ⇒ Object
65
66
67
|
# File 'lib/seam/base_resource.rb', line 65
def self.resource_accessors
@resource_accessors ||= {}
end
|
.resource_list_accessor(attr, resource_class) ⇒ Object
53
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/seam/base_resource.rb', line 53
def self.resource_list_accessor(attr, resource_class)
resource_list_accessors[attr.to_s] = resource_class
attr_writer attr
define_method(attr) do
value = instance_variable_get(:"@#{attr}")
value.is_a?(Array) ? value : []
end
end
|
.resource_list_accessors ⇒ Object
69
70
71
|
# File 'lib/seam/base_resource.rb', line 69
def self.resource_list_accessors
@resource_list_accessors ||= {}
end
|
Instance Method Details
#[](key) ⇒ Object
41
42
43
44
45
46
|
# File 'lib/seam/base_resource.rb', line 41
def [](key)
name = key.to_s
return nil unless respond_to?(name)
public_send(name)
end
|
#inspect ⇒ Object
32
33
34
35
36
37
38
39
|
# File 'lib/seam/base_resource.rb', line 32
def inspect
"<#{self.class.name}:#{"0x00%x" % (object_id << 1)}\n" + instance_variables
.map { |k| k.to_s.sub("@", "") }
.filter { |k| k != "data" and k != "client" and respond_to? k }
.map { |k| " #{k}=#{send(k).inspect}" }
.join("\n") + ">"
end
|
#update_from_response(data) ⇒ Object
17
18
19
20
|
# File 'lib/seam/base_resource.rb', line 17
def update_from_response(data)
@data = data
process_data_attributes(@data)
end
|