class SocialUrl::Message

Public Class Methods

new(params) click to toggle source
# File lib/social_url/message.rb, line 4
def initialize(params)
  @params = SocialUrl.normalize(params)

  init_networks
end

Public Instance Methods

method_missing(method) click to toggle source
# File lib/social_url/message.rb, line 10
def method_missing(method)
  network = /(.+)_url/.match(method)
  return unless network

  networks = SocialUrl.networks.join(", ")
  raise SocialUrl::UnsupportedNetworkError,
       "Unsupported network: '#{network[1]}'. Available networks: #{networks}."
end

Private Instance Methods

init_networks() click to toggle source
# File lib/social_url/message.rb, line 20
def init_networks
  SocialUrl.networks.each do |network|
    self.class.send(:define_method, "#{network}_url") do
      klass = network.to_s.capitalize
      SocialUrl::Networks.const_get(klass).new(@params).url
    end
  end
end