Sha256: 8f6ccdc20d6fc2ac00266d057fbb922c059bd6a87fd10ca1450fb5447ac7ae91

Contents?: true

Size: 1.27 KB

Versions: 4

Compression:

Stored size: 1.27 KB

Contents

module JBundle
  
  class Config
    
    attr_reader :bundles, :files, :filters, :after_write_blocks
    
    def initialize
      @bundles = []
      @files = []
      @filters = {:all => [], :min => [], :src => []}
      @after_write_blocks = []
      @version_options = {:directory => true}
    end
    
    def versioned_directories?
      @version_options[:directory]
    end
    
    def version(v = nil, opts = {})
      @version_options.merge! opts
      @version = JBundle::Version.new(v) if v
      @version
    end
    
    def src_dir(dir = nil)
      @src_dir = dir if dir
      @src_dir || './'
    end
    
    def target_dir(dir = nil)
      @target_dir = dir if dir
      @target_dir || './'
    end
    
    def bundle(names, &block)
      name = (names.is_a?(Hash) ? names.keys.first : names).to_sym
      if !b = @bundles.detect{|a| a.name == name}
        b = Bundle.new(names)
        @bundles << b
      end
      b.instance_eval &block if block_given?
      b
    end
    
    def file(f)
      @files << JBundle::File.new(f)
    end
    
    def filter(mode = :all, &block)
      filters[mode.to_sym] << block
    end
    
    def after_write(&block)
      after_write_blocks << block
    end
    
    def bundles_and_files
      @bundles + @files
    end
    
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
jbundle-0.1.4 lib/jbundle/config.rb
jbundle-0.1.3 lib/jbundle/config.rb
jbundle-0.1.2 lib/jbundle/config.rb
jbundle-0.1.1 lib/jbundle/config.rb