Sha256: a9ea7d726c6a65b8279ef4422812c4dbde31c4d5d6f8eef66677f0a2519f64ac
Contents?: true
Size: 656 Bytes
Versions: 2
Compression:
Stored size: 656 Bytes
Contents
require_relative 'service/base' require_relative 'service/facebook' require_relative 'service/twitter' require_relative 'service/linkedin' module SocialMedia::Service def self.service_classes ObjectSpace.each_object(Class).select { |klass| klass < SocialMedia::Service::Base } end def self.services service_classes.map(&:name) end def self.service name service_classes.detect{ |d| d.name == name.to_sym } end 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 end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
social_media-0.0.3 | lib/social_media/service.rb |
social_media-0.0.1 | lib/social_media/service.rb |