Class: Mooset::Endpoints::Endpoint

Inherits:
Object
  • Object
show all
Defined in:
lib/mooset/endpoints/endpoint.rb

Direct Known Subclasses

ConsoleLogger, Gitlab, Ldap, Null

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(endpoint_name, *args) ⇒ Endpoint

Returns a new instance of Endpoint.



10
11
12
13
14
# File 'lib/mooset/endpoints/endpoint.rb', line 10

def initialize(endpoint_name, *args)
  @endpoint_name = endpoint_name

  super(*args)
end

Instance Attribute Details

#endpoint_nameObject (readonly)

Returns the value of attribute endpoint_name.



8
9
10
# File 'lib/mooset/endpoints/endpoint.rb', line 8

def endpoint_name
  @endpoint_name
end

Class Method Details

.create(name, endpoint_name, *args) ⇒ Object



35
36
37
# File 'lib/mooset/endpoints/endpoint.rb', line 35

def self.create(name, endpoint_name, *args)
  descendants[name].new(endpoint_name, *args)
end

.descendantsObject



23
24
25
# File 'lib/mooset/endpoints/endpoint.rb', line 23

def self.descendants
  @descendants ||= {}
end

.inherited(klass) ⇒ Object



16
17
18
19
20
21
# File 'lib/mooset/endpoints/endpoint.rb', line 16

def self.inherited(klass)
  super

  name = underscore(klass.name.split('::').last)
  descendants[name.to_sym] = klass
end

.underscore(camel_cased_word) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/mooset/endpoints/endpoint.rb', line 27

def self.underscore(camel_cased_word)
  camel_cased_word.to_s.gsub(/::/, '/').
    gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
    gsub(/([a-z\d])([A-Z])/,'\1_\2').
    tr("-", "_").
    downcase
end