Class: Softlayer::Generator::ModuleFile

Inherits:
ClassFile
  • Object
show all
Defined in:
lib/softlayer/generator/module_file.rb

Defined Under Namespace

Classes: Exception

Instance Method Summary collapse

Methods inherited from ClassFile

#count_steps, #generate_attributes, #generate_autoload, #generate_footer, #generate_method, #generate_methods, #generate_representer, #generate_representer_option, #generate_service_constant, #get_represented_type, #has_params?

Constructor Details

#initialize(name) ⇒ ModuleFile

Returns a new instance of ModuleFile.

Raises:



4
5
6
7
8
9
# File 'lib/softlayer/generator/module_file.rb', line 4

def initialize(name)
  @softlayer_name = name.dup
  @name = Converter.module_name(name)
  raise Exception.new('Not a SoftLayer module') if DataType.object_type(name) == :class
  @autoload = Softlayer::Generator::DataType.autoload_for(@softlayer_name)
end

Instance Method Details

#generateObject



11
12
13
14
15
# File 'lib/softlayer/generator/module_file.rb', line 11

def generate
  content = generate_header
  content << generate_autoload
  content << generate_footer
end

#generate_headerObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/softlayer/generator/module_file.rb', line 17

def generate_header
  header = ""
  full_name = ""
  step = 0
  total_steps = @name.split("::").size
  @name.split("::").each do |class_name|
    # iteration setup
    full_name << class_name
    step.times { header << "  " }

    # add to header
    object_type = object_type(full_name)
    header << object_type + " " + class_name
    header << "\n"

    # iteration teardown
    step = step + 1
    full_name << "::"
  end
  header
end