Class: KeyValueName::FileBuilder

Inherits:
KeyValueBuilder show all
Defined in:
lib/key_value_name/builders/file_builder.rb

Overview

Build a file KeyValueName.

Instance Method Summary collapse

Methods inherited from KeyValueBuilder

#include_keys, #key, #singular?

Constructor Details

#initialize(name, *extension, class_name: nil, &block) ⇒ FileBuilder



8
9
10
11
12
13
14
# File 'lib/key_value_name/builders/file_builder.rb', line 8

def initialize(name, *extension, class_name: nil, &block)
  KeyValueName.check_symbol(name) if name
  @name = name
  @extension = extension
  @class_name = class_name
  super(&block)
end

Instance Method Details

#buildObject



29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/key_value_name/builders/file_builder.rb', line 29

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

    class <<self
      include FileName::ClassMethods
    end
  end
  klass.key_value_name_spec = make_spec
  klass
end

#class_nameObject



25
26
27
# File 'lib/key_value_name/builders/file_builder.rb', line 25

def class_name
  @class_name || default_class_name
end

#extension(extension) ⇒ Object



16
17
18
19
# File 'lib/key_value_name/builders/file_builder.rb', line 16

def extension(extension)
  raise 'extension already set' if @extension.any?
  @extension = Array(extension)
end

#nameObject



21
22
23
# File 'lib/key_value_name/builders/file_builder.rb', line 21

def name
  name_parts.join('_').to_sym
end