class Furikake::Resource

Public Class Methods

generate(cli, resources) click to toggle source
# File lib/furikake/resource.rb, line 3
def self.generate(cli, resources)
  documents = ''
  load_resource_type(cli, resources).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)"
      logger.info("リソースタイプ: #{type_name} の情報を取得しました.")
      documents.concat("\n\n")
    else
      begin
        require "furikake/resources/#{type}"
        eval "documents.concat(Furikake::Resources::#{type.camelize}.report)"
        logger.info("リソースタイプ: #{type} の情報を取得しました.")
        documents.concat("\n\n")
      rescue LoadError
        logger.warn("リソースタイプ: #{type} を読み込めませんでした.")
      rescue
        logger.warn("リソースタイプ: #{type} の情報を取得出来ませんでした.")
      end
    end
  end
  documents
end
load_addons_resource_type() click to toggle source
# File lib/furikake/resource.rb, line 50
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) click to toggle source
# File lib/furikake/resource.rb, line 58
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
    logger.error('.furikake.yml が存在していません.')
    exit 1
  rescue => ex
    logger.error('.furikake.yml の読み込みに失敗しました. ' + ex.message)
    exit 1
  end
end
load_default_resource_type() click to toggle source
# File lib/furikake/resource.rb, line 42
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_type(cli, resources) click to toggle source
# File lib/furikake/resource.rb, line 29
def self.load_resource_type(cli, resources)
  type = []
  config_defined_resources = cli ? load_config_resource_type : resources['aws'].sort
  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
logger() click to toggle source
# File lib/furikake/resource.rb, line 72
def self.logger
  $stdout.sync = true
  Logger.new($stdout)
end