Sha256: 0c25b3e2f2295e01c6718709a6f388b8e7782827f3a904be6f9dc623bb0a8aeb
Contents?: true
Size: 1.18 KB
Versions: 2
Compression:
Stored size: 1.18 KB
Contents
require 'tempfile' module Dandelion module Backend class MissingFileError < StandardError; end class UnsupportedSchemeError < StandardError; end class MissingDependencyError < StandardError attr_reader :gems def initialize(gems) @gems = gems end end class Backend class << self @@backends = {} def create(config) Dir.glob(File.join(File.dirname(__FILE__), 'backend', '*.rb')) { |file| require file } raise UnsupportedSchemeError unless @@backends.include?(config['scheme']) begin @@backends[config['scheme']].new(config) rescue LoadError raise MissingDependencyError.new(@@backends[config['scheme']].gem_list) end end def scheme(scheme) @@backends[scheme] = self end def gems(*gems) @gems = gems end def gem_list @gems end end protected def temp(file, data) tmp = Tempfile.new(file.gsub('/', '.')) tmp << data tmp.flush yield(tmp.path) tmp.close end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dandelion-0.2.3 | lib/dandelion/backend.rb |
dandelion-0.2.2 | lib/dandelion/backend.rb |