Sha256: b76a59b0cb1e4272292cc7c00e0145846842b676726e6fe7484ab4aa7883a5f5

Contents?: true

Size: 1.03 KB

Versions: 5

Compression:

Stored size: 1.03 KB

Contents

require 'yaml'
require 'erb'
module Plugems
	class Manifest

		attr_accessor :manifest

    [:name, :version, :description, :author, :executables].each do |property|
      define_method(property) { manifest[property] }
    end
    
		def initialize(file_name = nil)
			begin
				@manifest = load_file(file_name || self.class.manifest_file)
			rescue Exception => e
				puts "#{e}. Manifest file is not set? (via Plugems::Manifest.manifest_file =)"
				puts e
			end
		end

		def dependencies
			manifest[:dependencies] || []
		end

		module ClassMethods
		  
		  @@manifest_file = nil
			
			def manifest_file
				 @@manifest_file || default_manifest_file
			end

			def load(file_name)
				new(file_name)
			end

			def default_manifest_file
			  "#{RAILS_ROOT}/config/manifest.yml"
			end

			def manifest_file=(file)
			   @@manifest_file = file
		  end
		  
		end

		extend ClassMethods
		
	private
		  
		  def load_file(file)
		    YAML.load(ERB.new(IO.read(file)).result)
	    end

	end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
plugems-1.1.1 lib/plugems/manifest.rb
plugems-1.1.2 lib/plugems/manifest.rb
plugems-1.1.6 lib/plugems/manifest.rb
plugems-1.1.0 lib/plugems/manifest.rb
plugems-1.1.5 lib/plugems/manifest.rb