Class: KeyValueName::FolderBuilder

Inherits:
KeyValueBuilder show all
Includes:
ContainerBuilder
Defined in:
lib/key_value_name/builders/folder_builder.rb

Overview

Build a folder KeyValueName.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ContainerBuilder

#extend_with_builders, #file, #folder

Methods inherited from KeyValueBuilder

#include_keys, #key, #singular?

Constructor Details

#initialize(name, class_name: nil, &block) ⇒ FolderBuilder

Returns a new instance of FolderBuilder.



10
11
12
13
14
15
16
# File 'lib/key_value_name/builders/folder_builder.rb', line 10

def initialize(name, class_name: nil, &block)
  KeyValueName.check_symbol(name)
  @name = name
  @class_name = class_name
  @builders = []
  super(&block)
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



18
19
20
# File 'lib/key_value_name/builders/folder_builder.rb', line 18

def name
  @name
end

Instance Method Details

#buildObject



24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/key_value_name/builders/folder_builder.rb', line 24

def build
  klass = super
  klass.class_eval do
    include FolderName::InstanceMethods

    class <<self
      include FolderName::ClassMethods
    end
  end
  klass.key_value_name_spec = make_spec
  extend_with_builders(klass)
end

#class_nameObject



20
21
22
# File 'lib/key_value_name/builders/folder_builder.rb', line 20

def class_name
  @class_name || KeyValueName.camelize(name)
end