class Smess::Config
Attributes
configured_outputs[RW]
default_output[RW]
default_sender_id[RW]
nothing[RW]
output_by_country_code[RW]
output_types[RW]
Public Class Methods
new()
click to toggle source
# File lib/smess.rb, line 58 def initialize @nothing = false @default_output = nil @default_sender_id = "Smess" @output_types = %i{auto card_board_fish clickatell global_mouth link_mobility iconectiv mblox smsglobal twilio} @configured_outputs = {} @output_by_country_code = {} if ENV["RAILS_ENV"] == "test" @configured_outputs = {test: {type: :test, config: nil}} end register_output({ name: :auto, country_codes: [], type: :auto, config: {} }) end
Public Instance Methods
add_country_code(cc, output=default_output)
click to toggle source
# File lib/smess.rb, line 78 def add_country_code(cc, output=default_output) raise ArgumentError.new("Invalid country code") unless cc.to_i.to_s == cc.to_s raise ArgumentError.new("Unknown output specified") unless outputs.include? output.to_sym output_by_country_code[cc.to_s] = output.to_sym true end
country_codes()
click to toggle source
# File lib/smess.rb, line 104 def country_codes output_by_country_code.keys end
outputs()
click to toggle source
# File lib/smess.rb, line 100 def outputs configured_outputs.keys end
register_output(options)
click to toggle source
# File lib/smess.rb, line 85 def register_output(options) name = options.fetch(:name).to_sym type = options.fetch(:type).to_sym countries = options.fetch(:country_codes) config = options.fetch(:config) raise ArgumentError.new("Duplicate output name") if outputs.include? name raise ArgumentError.new("Unknown output type specified") unless output_types.include? type configured_outputs[name] = {type: type, config: config} countries.each do |cc| add_country_code(cc, name) end end