class Smshelper::Api::Base
Attributes
extra_options[RW]
sent_message_ids[R]
sent_message_statuses[R]
Public Class Methods
new(*args)
click to toggle source
# File lib/smshelper/api/base.rb, line 8 def initialize(*args) @sent_message_ids, @sent_message_statuses = Array.new, Hash.new @response_code = ResponseCodes.new @extra_options = (args.empty? ? {} : args.shift) @uuid = UUID.new class_factory 'DeliveryReport', 'InboundMessage', 'UnknownReply', 'HlrReport' end
Protected Class Methods
_load(str)
click to toggle source
# File lib/smshelper/api/base.rb, line 49 def self._load(str) self.class.new(YAML.load(str)) end
Protected Instance Methods
_dump(level)
click to toggle source
I was lazy to lookup which method takes precedence in what situation, hence:
# File lib/smshelper/api/base.rb, line 37 def _dump(level) attributes.to_yaml end
class_factory(*names)
click to toggle source
# File lib/smshelper/api/base.rb, line 17 def class_factory(*names) names.each do |name| unless self.class.const_defined?(name) klass = self.class.const_set(name, Class.new) klass.class_eval do include Virtus define_method(:initialize) do |args = {}| args.each do |k,v| # Sinatra params has splat, captures unless k.to_s =~ (/splat/ || /captures/) self.class.attribute(k, v.class, :default => v) end end self.class.attribute(:uuid, String, :default => UUID.generate) unless args[:uuid] self.class.attribute(:service, String, :default => self.class.name.split('::')[2]) end # I was lazy to lookup which method takes precedence in # what situation, hence: def _dump(level) attributes.to_yaml end def marshal_dump attributes.to_yaml end def marshal_load(str) self.class.new(YAML.load(str)) end def self._load(str) self.class.new(YAML.load(str)) end end end end end
marshal_dump()
click to toggle source
# File lib/smshelper/api/base.rb, line 41 def marshal_dump attributes.to_yaml end
marshal_load(str)
click to toggle source
# File lib/smshelper/api/base.rb, line 45 def marshal_load(str) self.class.new(YAML.load(str)) end