Class: Alonzo::Generator::RbClassGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/alonzo/generator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(klass_names, root) ⇒ RbClassGenerator

Returns a new instance of RbClassGenerator.



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/alonzo/generator.rb', line 11

def initialize(klass_names, root)
  self.klass_names = klass_names
  self.root        = root

  @files = []

  klass_names.each do |klass_name|
    @files << klass_file(klass_name)
    @files << spec_file(klass_name)
  end
end

Instance Attribute Details

#filesObject (readonly)

Returns the value of attribute files.



9
10
11
# File 'lib/alonzo/generator.rb', line 9

def files
  @files
end

#klass_namesObject

Returns the value of attribute klass_names.



8
9
10
# File 'lib/alonzo/generator.rb', line 8

def klass_names
  @klass_names
end

#rootObject

Returns the value of attribute root.



8
9
10
# File 'lib/alonzo/generator.rb', line 8

def root
  @root
end

Instance Method Details

#klass_file(klass_name) ⇒ Object



23
24
25
26
# File 'lib/alonzo/generator.rb', line 23

def klass_file(klass_name)
  { name: klass_file_path(klass_name),
    content: klass_file_template(klass_name) }
end

#klass_file_path(klass_name) ⇒ Object



28
29
30
# File 'lib/alonzo/generator.rb', line 28

def klass_file_path(klass_name)
  File.join(root, "lib", "#{klass_name.underscore}.rb")
end

#klass_file_template(klass_name) ⇒ Object



32
33
34
35
36
# File 'lib/alonzo/generator.rb', line 32

def klass_file_template(klass_name)
  template = ""
  wrap_modules(template, klass_name.split("::"))
  template
end

#spec_file(klass_name) ⇒ Object



38
39
40
41
# File 'lib/alonzo/generator.rb', line 38

def spec_file(klass_name)
  { name: spec_file_path(klass_name),
    content: spec_file_template(klass_name) }
end

#spec_file_path(klass_name) ⇒ Object



43
44
45
# File 'lib/alonzo/generator.rb', line 43

def spec_file_path(klass_name)
  File.join(root, "spec", "#{klass_name.underscore}_spec.rb")
end

#spec_file_template(klass_name) ⇒ Object



47
48
49
50
51
# File 'lib/alonzo/generator.rb', line 47

def spec_file_template(klass_name)
  template = "require 'spec_helper'\n\n"
  wrap_modules(template, klass_name.split("::"), 0, true)
  template
end