class Enlighten::System

Constants

END_POINTS

Attributes

params[R]
systems[R]

Public Class Methods

config(args={}) click to toggle source
# File lib/enlighten.rb, line 31
def config(args={})
  @default_params = @default_params.merge(args).freeze unless args.empty?
  @default_params
end
Also aliased as: default_options=
default_options=(args={})

Allows to set defaults through app configuration:

config.action_mailer.default_options = { from: "no-reply@example.org" }
Alias for: config
default_params() click to toggle source
# File lib/enlighten.rb, line 57
def self.default_params
  @default_params
end
find(id) click to toggle source
# File lib/enlighten.rb, line 53
def self.find(id)
  new(:id=>id)
end
new(params={}) click to toggle source
# File lib/enlighten.rb, line 45
def initialize(params={})
  @id = params[:id].to_i
  #overide the default config with parameters passed in, like (user_id)
  @params=self.class.default_params.merge(params)
  @systems = fetch(nil).systems
  @attributes = @systems.select{|system| system['system_id'] == @id  }[0] rescue {}
end
url() click to toggle source
# File lib/enlighten.rb, line 61
def self.url
  "https://#{@default_params[:host]}#{@default_params[:path]}"
end

Public Instance Methods

method_missing(method,*args) click to toggle source
Calls superclass method
# File lib/enlighten.rb, line 41
def method_missing(method,*args)
  @attributes[method.to_s] || super
end

Protected Instance Methods

api_response(method,args={}) click to toggle source
# File lib/enlighten.rb, line 72
def api_response(method,args={})
  Net::HTTP.get(URI(format_url(method,args)))
end
date_format(date) click to toggle source
# File lib/enlighten.rb, line 85
def date_format(date)
  date ? (date.respond_to?(:strftime)?date.strftime('%Y-%m-%d'):date.to_s) : ''
end
fetch(method, args={}) click to toggle source
# File lib/enlighten.rb, line 66
def fetch(method, args={})
  result = OpenStruct.new(JSON.parse(api_response(method,args)))
  raise(EnlightenApiError.new(result)) if result.respond_to?(:reason)
  result
end
format_url(method,args={}) click to toggle source
# File lib/enlighten.rb, line 76
def format_url(method,args={})
  params = {key: @params[:key], user_id: @params[:user_id]}.merge(args||{})
  self.class.url + '/' + (method && (@id.to_s + '/' + method.to_s)||'') + '?' + query_string(params)
end
query_string(args) click to toggle source
# File lib/enlighten.rb, line 81
def query_string(args)
  args.map{|k,v|value= (['start_at','end_at'].include? k.to_s)  ? v.to_i.to_s : date_format(v);"#{k.to_s}=#{CGI.escape(value)}"}.join('&')
end