Class: Payrex::Services::ServiceFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/services/service_factory.rb

Class Method Summary collapse

Class Method Details

.get(name) ⇒ Object

Raises:

  • (ArgumentError)


5
6
7
8
9
10
11
12
# File 'lib/services/service_factory.rb', line 5

def self.get(name)
  service_name = name.to_s.split("_").map(&:capitalize).join
  service_class = Payrex::Services.const_get("#{service_name}Service")

  raise ArgumentError, "Unknown service: #{name}" if !service_class.is_a?(Class)

  service_class
end

.namesObject



14
15
16
17
18
19
# File 'lib/services/service_factory.rb', line 14

def self.names
  Payrex::Services.constants
    .map { |c| Payrex::Services.const_get(c) }
    .select { |c| c.is_a?(Class) }
    .map { |c| c.to_s.split("::").last.sub(/Service$/, "").gsub(/([a-z\d])([A-Z])/, '\1_\2').downcase }
end