Class: Softlayer::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/softlayer/generator.rb,
lib/softlayer/generator/service.rb,
lib/softlayer/generator/converter.rb,
lib/softlayer/generator/data_type.rb,
lib/softlayer/generator/class_file.rb,
lib/softlayer/generator/downloader.rb,
lib/softlayer/generator/module_file.rb

Defined Under Namespace

Modules: DataType Classes: ClassFile, Converter, Downloader, ModuleFile, Service

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.downloadObject



15
16
17
18
19
20
21
# File 'lib/softlayer/generator.rb', line 15

def download
  # services = Downloader.get_services
  FileUtils.mkdir_p('data')
  Downloader.download_xsd
  Downloader.download_wsdl
  Downloader.
end

Instance Method Details

#is_module?(klass) ⇒ Boolean

Returns:



64
65
# File 'lib/softlayer/generator.rb', line 64

def is_module?(klass)
end

#needs_parent?(klass) ⇒ Boolean

Returns:



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/softlayer/generator.rb', line 39

def needs_parent?(klass)
  return false if klass.match(/\AArray\[/)
  parent_klass = Converter.module_name(klass).deconstantize
  parent_file_name = "lib/" + parent_klass.underscore + ".rb"
  parent_softlayer_name = Converter.to_softlayer_name(parent_klass)

  return false if parent_klass == "Softlayer"

  if DataType.object_type(parent_softlayer_name) == :module && !File.exist?(parent_file_name)
    # write parent module file
    file_directory = File.dirname(parent_file_name)
    FileUtils.mkdir_p file_directory
    content = Softlayer::Generator::ModuleFile.new(parent_softlayer_name).generate
    File.open(parent_file_name, 'w') { |file| file.write(content) }

    # loop to parent
    needs_parent?(parent_softlayer_name)
  end

  false
end

#runnerObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/softlayer/generator.rb', line 24

def runner
  puts "Started #{DateTime.now}"
  DataType.types.each do |klass|
    puts "Go #{klass}..."
    file_name = "lib/" + Converter.type(klass).underscore + ".rb"
    file_directory = File.dirname(file_name)
    FileUtils.mkdir_p file_directory
    content = Softlayer::Generator::ClassFile.new(klass).generate
    File.open(file_name, 'w') { |file| file.write(content) }
    
    needs_parent?(klass)
  end
  puts "Finished #{DateTime.now}"
end

#write_parent(klass) ⇒ Object



61
62
# File 'lib/softlayer/generator.rb', line 61

def write_parent(klass)
end