Sha256: 4275e59f9e091577adb9cc942834f629aabcf3621c59fe34c5bc6d94a35d7d24

Contents?: true

Size: 1.11 KB

Versions: 13

Compression:

Stored size: 1.11 KB

Contents

require 'itamae'
require 'itamae/resource/base'
require 'itamae/resource/file'
require 'itamae/resource/package'
require 'itamae/resource/remote_file'
require 'itamae/resource/directory'
require 'itamae/resource/template'
require 'itamae/resource/execute'
require 'itamae/resource/mail_alias'
require 'itamae/resource/service'
require 'itamae/resource/link'
require 'itamae/resource/local_ruby_block'
require 'itamae/resource/git'
require 'itamae/resource/user'

module Itamae
  module Resource
    Error = Class.new(StandardError)
    AttributeMissingError = Class.new(StandardError)
    InvalidTypeError = Class.new(StandardError)
    ParseError = Class.new(StandardError)

    class << self
      def get_resource_class_name(method)
        method.to_s.split('_').map {|part| part.capitalize}.join
      end

      def get_resource_class(method)
        const_get(get_resource_class_name(method))
      end

      def parse_description(desc)
        if /\A([^\[]+)\[([^\]]+)\]\z/ =~ desc
          [$1, $2]
        else
          raise ParseError, "'#{desc}' doesn't represent a resource."
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
itamae-1.0.0.beta36 lib/itamae/resource.rb
itamae-1.0.0.beta35 lib/itamae/resource.rb
itamae-1.0.0.beta34 lib/itamae/resource.rb
itamae-1.0.0.beta33 lib/itamae/resource.rb
itamae-1.0.0.beta32 lib/itamae/resource.rb
itamae-1.0.0.beta31 lib/itamae/resource.rb
itamae-1.0.0.beta30 lib/itamae/resource.rb
itamae-1.0.0.beta29 lib/itamae/resource.rb
itamae-1.0.0.beta28 lib/itamae/resource.rb
itamae-1.0.0.beta27 lib/itamae/resource.rb
itamae-1.0.0.beta26 lib/itamae/resource.rb
itamae-1.0.0.beta25 lib/itamae/resource.rb
itamae-1.0.0.beta24 lib/itamae/resource.rb