Class: Furikake::Resource

Inherits:
Object
  • Object
show all
Defined in:
lib/furikake/resource.rb

Class Method Summary collapse

Class Method Details

.generateObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/furikake/resource.rb', line 3

def self.generate
  documents = ''
  load_resource_type.each do |type|
    if type.include?('addon')
      $LOAD_PATH.push(Dir.pwd + '/addons')
      require "#{type}"
      type_name = type.split('-')[-1]
      eval "documents.concat(Furikake::Resources::Addons::#{type_name.camelize}.report)"
      documents.concat("\n\n")
    else
      begin
        require "furikake/resources/#{type}"
        eval "documents.concat(Furikake::Resources::#{type.camelize}.report)"
        documents.concat("\n\n")
      rescue LoadError
        puts "リソースタイプ: #{type} を読み込めませんでした."
      rescue
        puts "リソースタイプ: #{type} の情報を取得出来ませんでした."
      end
    end
  end
  documents
end

.load_addons_resource_typeObject



48
49
50
51
52
53
54
# File 'lib/furikake/resource.rb', line 48

def self.load_addons_resource_type
  addons_resource_type = []
  Dir.glob(Dir.pwd + '/addons/furikake-resource-addon-*').each do |r|
    addons_resource_type << File.basename(r, '.rb')
  end
  addons_resource_type.sort
end

.load_config_resource_type(path = nil) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/furikake/resource.rb', line 56

def self.load_config_resource_type(path = nil)
  path = '.furikake.yml' if path.nil?
  begin
    config = YAML.load_file(path)
    config['resources']['aws'].sort
  rescue Errno::ENOENT
    puts '.furikake.yml が存在していません.'
  rescue => ex
    puts '.furikake.yml の読み込みに失敗しました. ' + ex.message
    exit 1
  end
end

.load_default_resource_typeObject



40
41
42
43
44
45
46
# File 'lib/furikake/resource.rb', line 40

def self.load_default_resource_type
  default_resource_type = []
  Dir.glob(File.dirname(__FILE__) + '/resources/*').each do |r|
    default_resource_type << File.basename(r, '.rb') unless r.include?('stub')
  end
  default_resource_type.sort
end

.load_resource_typeObject



27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/furikake/resource.rb', line 27

def self.load_resource_type
  type = []
  config_defined_resources = load_config_resource_type
  default_resources = load_default_resource_type
  if default_resources == config_defined_resources
    type.push(default_resources)
  else
    type.push(config_defined_resources)
  end
  type.push(load_addons_resource_type)
  type.flatten
end