Module: SocialMedia::Service

Defined in:
lib/social_media/service.rb,
lib/social_media/service/base.rb,
lib/social_media/service/twitter.rb,
lib/social_media/service/facebook.rb,
lib/social_media/service/linkedin.rb

Defined Under Namespace

Classes: Base, Facebook, Linkedin, Twitter

Class Method Summary collapse

Class Method Details

.method_missing(method_sym, *arguments) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/social_media/service.rb', line 19

def self.method_missing method_sym, *arguments
  if service_by_name = service(method_sym)
    return service_by_name if arguments.empty?
    service_by_name.new *arguments
  else
    super
  end
end

.service(name) ⇒ Object



15
16
17
# File 'lib/social_media/service.rb', line 15

def self.service name
  service_classes.detect{ |d| d.name == name.to_sym }
end

.service_classesObject



7
8
9
# File 'lib/social_media/service.rb', line 7

def self.service_classes
  ObjectSpace.each_object(Class).select { |klass| klass < SocialMedia::Service::Base }
end

.servicesObject



11
12
13
# File 'lib/social_media/service.rb', line 11

def self.services
  service_classes.map(&:name)
end