Class: Perennial::Manifest

Inherits:
Object show all
Defined in:
lib/perennial/manifest.rb

Defined Under Namespace

Modules: Mixin

Constant Summary collapse

@@manifest_mapping =
{}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, klass) ⇒ Manifest

Returns a new instance of Manifest.



9
10
11
12
13
# File 'lib/perennial/manifest.rb', line 9

def initialize(name, klass)
  self.app_name  = name
  self.namespace = klass
  @@manifest_mapping[klass.name] = self
end

Instance Attribute Details

#app_nameObject

Returns the value of attribute app_name.



7
8
9
# File 'lib/perennial/manifest.rb', line 7

def app_name
  @app_name
end

#namespaceObject

Returns the value of attribute namespace.



7
8
9
# File 'lib/perennial/manifest.rb', line 7

def namespace
  @namespace
end

Class Method Details

.[](klass) ⇒ Object



19
20
21
22
# File 'lib/perennial/manifest.rb', line 19

def self.[](klass)
  klass = klass.name if klass.respond_to?(:name)
  @@manifest_mapping[klass.split("::", 2).first]
end

.add_manifest(name, klass) ⇒ Object



24
25
26
# File 'lib/perennial/manifest.rb', line 24

def self.add_manifest(name, klass)
  self.new(name, klass)
end

Instance Method Details

#inspectObject



15
16
17
# File 'lib/perennial/manifest.rb', line 15

def inspect
  "#<#{self.class.name} app_name: #{self.app_name.inspect}, namespace: #{self.namespace.inspect}>"
end