class Cradlepoint::Router

Attributes

config_status[RW]
data[RW]
description[RW]
ecm_configuration_manager_data[RW]
ecm_configuration_manager_uri[RW]
ecm_configuration_uri[RW]
ecm_firmware_uri[RW]
full_product_name[RW]
group_name[RW]
id[RW]
ip_address[RW]
mac[RW]
name[RW]
stream_usage_in[RW]
stream_usage_out[RW]
stream_usage_period[RW]

Public Class Methods

index() click to toggle source
# File lib/cradlepoint/router.rb, line 39
def self.index
  build_array_of_routers_from_response(Cradlepoint.make_request(:get, build_url(rel_url)))
end
new(id = nil, options = {}) click to toggle source
# File lib/cradlepoint/router.rb, line 10
def initialize(id = nil, options = {})
  self.id = id
  options.each { |k, v| send("#{ k }=", v) if v }
end
rel_url() click to toggle source
# File lib/cradlepoint/router.rb, line 15
def self.rel_url
  '/routers'
end
rel_url_for_configuration_managers(id) click to toggle source
# File lib/cradlepoint/router.rb, line 31
def self.rel_url_for_configuration_managers(id)
  "#{ Cradlepoint::Router.rel_url_with_id(id) }/confguration_managers/"
end
rel_url_with_id(id) click to toggle source
# File lib/cradlepoint/router.rb, line 23
def self.rel_url_with_id(id)
  "#{ rel_url }/#{ id }/"
end

Private Class Methods

build_array_of_routers_from_response(response) click to toggle source
# File lib/cradlepoint/router.rb, line 131
def self.build_array_of_routers_from_response(response)
  return false unless successful_response?(response)
  response.map { |r| create_and_assign_attributes_from_data(r) }
end
create_and_assign_attributes_from_data(data) click to toggle source
# File lib/cradlepoint/router.rb, line 136
def self.create_and_assign_attributes_from_data(data)
  return unless ecm_object_blob?(data)
  router = Cradlepoint::Router.new(data[:id], data: data)
  router.assign_attributes_from_data
  router
end

Public Instance Methods

apply_new_config(config_settings = {}) click to toggle source
# File lib/cradlepoint/router.rb, line 50
def apply_new_config(config_settings = {})
  config = Cradlepoint::Config.new(self, config_settings)
  config.create_editor
  config.apply_config_to_editor
  config.remove_editor
end
assign_attributes_from_data() click to toggle source
# File lib/cradlepoint/router.rb, line 115
def assign_attributes_from_data
  return unless self.data and self.data.any?

  self.mac                 = self.data[:mac]
  self.name                = self.data[:name]
  self.ip_address          = self.data[:ip_address]
  self.config_status       = self.data[:config_status]
  self.description         = self.data[:description]
  self.full_product_name   = self.data[:full_product_name]
  self.stream_usage_in     = self.data[:stream_usage_in]
  self.stream_usage_out    = self.data[:stream_usage_out]
  self.stream_usage_period = self.data[:stream_usage_period]
end
configuration_manager_data() click to toggle source
# File lib/cradlepoint/router.rb, line 57
def configuration_manager_data
  check_for_id_or_raise_error
  lazy_load_configuration_manager_data unless self.ecm_configuration_manager_data
  self.ecm_configuration_manager_data
end
configuration_uri() click to toggle source
# File lib/cradlepoint/router.rb, line 73
def configuration_uri
  lazy_load_router_data unless self.ecm_configuration_manager_uri
  lazy_load_configuration_manager_data unless self.ecm_configuration_uri
  self.ecm_configuration_uri
end
firmware_data() click to toggle source
# File lib/cradlepoint/router.rb, line 63
def firmware_data
  check_for_id_or_raise_error
  Cradlepoint.make_request(:get, build_url(firmware_uri.split('/api/v1').last)) if firmware_uri
end
firmware_uri() click to toggle source
# File lib/cradlepoint/router.rb, line 68
def firmware_uri
  lazy_load_router_data unless self.ecm_firmware_uri
  self.ecm_firmware_uri
end
get() click to toggle source
# File lib/cradlepoint/router.rb, line 43
def get
  check_for_id_or_raise_error
  self.data = Cradlepoint.make_request(:get, build_url(rel_url_with_id))
  assign_attributes_from_data
  self.data
end
get_configuration_editor_data() click to toggle source
# File lib/cradlepoint/router.rb, line 107
def get_configuration_editor_data
  {
    account: '/api/v1' + Cradlepoint.account.rel_url_with_id,
    firmware: firmware_uri,
    router: '/api/v1' + rel_url_with_id
  }
end
group() click to toggle source
# File lib/cradlepoint/router.rb, line 79
def group
  get unless self.data and self.data.any?
  return nil unless self.data[:group]

  group_data = Cradlepoint.make_request(:get, build_url(self.data[:group].split('/api/v1').last))
  return unless group_data
  self.group_name = group_data[:name]
  group_data
end
group_list() click to toggle source
# File lib/cradlepoint/router.rb, line 89
def group_list
  get unless self.data and self.data.any?
  return nil unless self.data[:group]
  
  Cradlepoint.make_request(:get, build_url(self.data[:group].split('/api/v1').last + '/routers'))
end
lazy_load_configuration_manager_data() click to toggle source
# File lib/cradlepoint/router.rb, line 102
def lazy_load_configuration_manager_data
  self.ecm_configuration_manager_data = Cradlepoint.make_request(:get, build_url(rel_url_for_configuration_managers))
  self.ecm_configuration_uri = self.ecm_configuration_manager_data[:configuration_manager]
end
lazy_load_router_data() click to toggle source
# File lib/cradlepoint/router.rb, line 96
def lazy_load_router_data
  get  # Grab the data from the api.
  self.ecm_firmware_uri = self.data[:actual_firmware]
  self.ecm_configuration_manager_uri = self.data[:configuration_manager]
end
rel_url() click to toggle source
# File lib/cradlepoint/router.rb, line 19
def rel_url
  Cradlepoint::Router.rel_url
end
rel_url_for_configuration_managers() click to toggle source
# File lib/cradlepoint/router.rb, line 35
def rel_url_for_configuration_managers
  Cradlepoint::Router.rel_url_with_id(id)
end
rel_url_with_id() click to toggle source
# File lib/cradlepoint/router.rb, line 27
def rel_url_with_id
  Cradlepoint::Router.rel_url_with_id(id)
end

Private Instance Methods

check_for_id_or_raise_error() click to toggle source
# File lib/cradlepoint/router.rb, line 143
def check_for_id_or_raise_error
  raise 'You must provide an ECM router id' if id.nil?
end