jbundle 0.0.7 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile.lock +1 -1
 - data/README.md +24 -1
 - data/lib/jbundle/builder.rb +20 -10
 - data/lib/jbundle/config.rb +3 -3
 - data/lib/jbundle/version.rb +1 -1
 - data/spec/JFile +12 -1
 - data/spec/jbundle_spec.rb +4 -4
 - data/spec/test_src/file4.js +2 -1
 - data/spec/test_src/license.txt +1 -1
 - metadata +4 -4
 
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | 
         @@ -23,7 +23,7 @@ Define a set of javascript files to bundle and minify 
     | 
|
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
                  # Filters can be use for string substitution
         
     | 
| 
       25 
25 
     | 
    
         
             
                  filter do |src, config|
         
     | 
| 
       26 
     | 
    
         
            -
                    src.gsub 
     | 
| 
      
 26 
     | 
    
         
            +
                    src.gsub(/<VERSION>/, config.version)
         
     | 
| 
       27 
27 
     | 
    
         
             
                  end
         
     | 
| 
       28 
28 
     | 
    
         | 
| 
       29 
29 
     | 
    
         
             
                  target_dir 'dist'
         
     | 
| 
         @@ -74,6 +74,29 @@ You can bundle licenses in bundles. Licenses will not be minified even though th 
     | 
|
| 
       74 
74 
     | 
    
         | 
| 
       75 
75 
     | 
    
         
             
            All defined filters will run on the src for all these cases.
         
     | 
| 
       76 
76 
     | 
    
         | 
| 
      
 77 
     | 
    
         
            +
            ## Filters
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
            You can filter both minified and un-minified source and license content with the filter method
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
                # Filters can be use for string substitution
         
     | 
| 
      
 82 
     | 
    
         
            +
                filter do |src, config|
         
     | 
| 
      
 83 
     | 
    
         
            +
                  src.gsub(/<VERSION>/, config.version)
         
     | 
| 
      
 84 
     | 
    
         
            +
                end
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
            You can declare filters that run on un-minified output only
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
                filter :src do |src, config|
         
     | 
| 
      
 89 
     | 
    
         
            +
                  src.gsub(/<SRC_MODE>/, 'full source')
         
     | 
| 
      
 90 
     | 
    
         
            +
                end
         
     | 
| 
      
 91 
     | 
    
         
            +
             
     | 
| 
      
 92 
     | 
    
         
            +
            ... And minified output only
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
                filter :min do |src, config|
         
     | 
| 
      
 95 
     | 
    
         
            +
                  src.gsub(/<SRC_MODE>/, 'minified source')
         
     | 
| 
      
 96 
     | 
    
         
            +
                end
         
     | 
| 
      
 97 
     | 
    
         
            +
                
         
     | 
| 
      
 98 
     | 
    
         
            +
            All filters must return a copy of the source, so use src.gsub instead of src.gsub!
         
     | 
| 
      
 99 
     | 
    
         
            +
             
     | 
| 
       77 
100 
     | 
    
         
             
            ## Jfile
         
     | 
| 
       78 
101 
     | 
    
         | 
| 
       79 
102 
     | 
    
         
             
            You can add configuration in a Jfile in the root of your project.
         
     | 
    
        data/lib/jbundle/builder.rb
    CHANGED
    
    | 
         @@ -8,8 +8,8 @@ module JBundle 
     | 
|
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
                attr_reader :name, :src_dir, :dir
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
     | 
    
         
            -
                def initialize(name, file_list,  
     | 
| 
       12 
     | 
    
         
            -
                  @file_list, @src_dir = file_list, src_dir
         
     | 
| 
      
 11 
     | 
    
         
            +
                def initialize(name, file_list, config)
         
     | 
| 
      
 12 
     | 
    
         
            +
                  @config, @file_list, @src_dir = config, file_list, config.src_dir
         
     | 
| 
       13 
13 
     | 
    
         
             
                  @name, @dir = parse_name(name)
         
     | 
| 
       14 
14 
     | 
    
         
             
                end
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
         @@ -23,11 +23,19 @@ module JBundle 
     | 
|
| 
       23 
23 
     | 
    
         
             
                end
         
     | 
| 
       24 
24 
     | 
    
         | 
| 
       25 
25 
     | 
    
         
             
                def src
         
     | 
| 
       26 
     | 
    
         
            -
                  @src ||=  
     | 
| 
      
 26 
     | 
    
         
            +
                  @src ||= filter(filtered_licenses + filtered_src, :src)
         
     | 
| 
       27 
27 
     | 
    
         
             
                end
         
     | 
| 
       28 
28 
     | 
    
         | 
| 
       29 
29 
     | 
    
         
             
                def min
         
     | 
| 
       30 
     | 
    
         
            -
                  @min ||=  
     | 
| 
      
 30 
     | 
    
         
            +
                  @min ||= filter(filtered_licenses, :min) + Closure::Compiler.new.compile(filter(filtered_src, :min))
         
     | 
| 
      
 31 
     | 
    
         
            +
                end
         
     | 
| 
      
 32 
     | 
    
         
            +
                
         
     | 
| 
      
 33 
     | 
    
         
            +
                def filtered_licenses
         
     | 
| 
      
 34 
     | 
    
         
            +
                  @filtered_licenses ||= filter(licenses, :all)
         
     | 
| 
      
 35 
     | 
    
         
            +
                end
         
     | 
| 
      
 36 
     | 
    
         
            +
                
         
     | 
| 
      
 37 
     | 
    
         
            +
                def filtered_src
         
     | 
| 
      
 38 
     | 
    
         
            +
                  @filtered_src ||= filter(raw_src, :all)
         
     | 
| 
       31 
39 
     | 
    
         
             
                end
         
     | 
| 
       32 
40 
     | 
    
         | 
| 
       33 
41 
     | 
    
         
             
                def min_name
         
     | 
| 
         @@ -65,6 +73,13 @@ module JBundle 
     | 
|
| 
       65 
73 
     | 
    
         
             
                  [n,d]
         
     | 
| 
       66 
74 
     | 
    
         
             
                end
         
     | 
| 
       67 
75 
     | 
    
         | 
| 
      
 76 
     | 
    
         
            +
                def filter(content, mode)
         
     | 
| 
      
 77 
     | 
    
         
            +
                  @config.filters[mode].each do |filter|
         
     | 
| 
      
 78 
     | 
    
         
            +
                    content = filter.call(content, @config)
         
     | 
| 
      
 79 
     | 
    
         
            +
                  end
         
     | 
| 
      
 80 
     | 
    
         
            +
                  content
         
     | 
| 
      
 81 
     | 
    
         
            +
                end
         
     | 
| 
      
 82 
     | 
    
         
            +
                
         
     | 
| 
       68 
83 
     | 
    
         
             
              end
         
     | 
| 
       69 
84 
     | 
    
         | 
| 
       70 
85 
     | 
    
         | 
| 
         @@ -82,12 +97,7 @@ module JBundle 
     | 
|
| 
       82 
97 
     | 
    
         
             
                end
         
     | 
| 
       83 
98 
     | 
    
         | 
| 
       84 
99 
     | 
    
         
             
                def build_one(f)
         
     | 
| 
       85 
     | 
    
         
            -
                   
     | 
| 
       86 
     | 
    
         
            -
                  @config.filters.each do |filter|
         
     | 
| 
       87 
     | 
    
         
            -
                    filter.call(compiler.licenses, @config)
         
     | 
| 
       88 
     | 
    
         
            -
                    filter.call(compiler.raw_src, @config)
         
     | 
| 
       89 
     | 
    
         
            -
                  end
         
     | 
| 
       90 
     | 
    
         
            -
                  compiler
         
     | 
| 
      
 100 
     | 
    
         
            +
                  Compiler.new(f.name, f, @config)
         
     | 
| 
       91 
101 
     | 
    
         
             
                end
         
     | 
| 
       92 
102 
     | 
    
         | 
| 
       93 
103 
     | 
    
         
             
              end
         
     | 
    
        data/lib/jbundle/config.rb
    CHANGED
    
    | 
         @@ -7,7 +7,7 @@ module JBundle 
     | 
|
| 
       7 
7 
     | 
    
         
             
                def initialize
         
     | 
| 
       8 
8 
     | 
    
         
             
                  @bundles = []
         
     | 
| 
       9 
9 
     | 
    
         
             
                  @files = []
         
     | 
| 
       10 
     | 
    
         
            -
                  @filters = []
         
     | 
| 
      
 10 
     | 
    
         
            +
                  @filters = {:all => [], :min => [], :src => []}
         
     | 
| 
       11 
11 
     | 
    
         
             
                  @after_write_blocks = []
         
     | 
| 
       12 
12 
     | 
    
         
             
                end
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
         @@ -40,8 +40,8 @@ module JBundle 
     | 
|
| 
       40 
40 
     | 
    
         
             
                  @files << JBundle::File.new(f)
         
     | 
| 
       41 
41 
     | 
    
         
             
                end
         
     | 
| 
       42 
42 
     | 
    
         | 
| 
       43 
     | 
    
         
            -
                def filter(&block)
         
     | 
| 
       44 
     | 
    
         
            -
                  filters << block
         
     | 
| 
      
 43 
     | 
    
         
            +
                def filter(mode = :all, &block)
         
     | 
| 
      
 44 
     | 
    
         
            +
                  filters[mode.to_sym] << block
         
     | 
| 
       45 
45 
     | 
    
         
             
                end
         
     | 
| 
       46 
46 
     | 
    
         | 
| 
       47 
47 
     | 
    
         
             
                def after_write(&block)
         
     | 
    
        data/lib/jbundle/version.rb
    CHANGED
    
    
    
        data/spec/JFile
    CHANGED
    
    | 
         @@ -22,8 +22,19 @@ file 'nested/foo.txt' 
     | 
|
| 
       22 
22 
     | 
    
         | 
| 
       23 
23 
     | 
    
         
             
            file 'nested/foo.txt' => 'flat_foo.txt'
         
     | 
| 
       24 
24 
     | 
    
         | 
| 
      
 25 
     | 
    
         
            +
            # Filter all
         
     | 
| 
       25 
26 
     | 
    
         
             
            filter do |src, config|
         
     | 
| 
       26 
     | 
    
         
            -
              src.gsub 
     | 
| 
      
 27 
     | 
    
         
            +
              src.gsub(/<VERSION>/, config.version.full)
         
     | 
| 
      
 28 
     | 
    
         
            +
            end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            # filter full src only
         
     | 
| 
      
 31 
     | 
    
         
            +
            filter :src do |src, config|
         
     | 
| 
      
 32 
     | 
    
         
            +
              src.gsub(/<SRC_MODE>/, 'src')
         
     | 
| 
      
 33 
     | 
    
         
            +
            end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            # filter minified src only
         
     | 
| 
      
 36 
     | 
    
         
            +
            filter :min do |src, config|
         
     | 
| 
      
 37 
     | 
    
         
            +
              src.gsub(/<SRC_MODE>/, 'min')
         
     | 
| 
       27 
38 
     | 
    
         
             
            end
         
     | 
| 
       28 
39 
     | 
    
         | 
| 
       29 
40 
     | 
    
         
             
            after_write do |config|
         
     | 
    
        data/spec/jbundle_spec.rb
    CHANGED
    
    | 
         @@ -22,7 +22,7 @@ describe "JBundle" do 
     | 
|
| 
       22 
22 
     | 
    
         | 
| 
       23 
23 
     | 
    
         
             
                it 'should build single bundles' do
         
     | 
| 
       24 
24 
     | 
    
         
             
                  JBundle.build('foo.js').src.should == "var VERSION = '1.6.1';\nvar a1 = 1;\nvar a2 = 2;\n"
         
     | 
| 
       25 
     | 
    
         
            -
                  JBundle.build('file4.js').min.should == "var a4=4;\n"
         
     | 
| 
      
 25 
     | 
    
         
            +
                  JBundle.build('file4.js').min.should == "var a4=4,src_mode=\"min\";\n"
         
     | 
| 
       26 
26 
     | 
    
         
             
                end
         
     | 
| 
       27 
27 
     | 
    
         | 
| 
       28 
28 
     | 
    
         
             
                it 'should bundle bundles' do
         
     | 
| 
         @@ -32,9 +32,9 @@ describe "JBundle" do 
     | 
|
| 
       32 
32 
     | 
    
         
             
                  JBundle.output[0].min.should == "var VERSION=\"1.6.1\",a1=1,a2=2;\n"
         
     | 
| 
       33 
33 
     | 
    
         
             
                end
         
     | 
| 
       34 
34 
     | 
    
         | 
| 
       35 
     | 
    
         
            -
                it 'should not minify licenses' do
         
     | 
| 
       36 
     | 
    
         
            -
                  JBundle.build('foo2.js').src.should == "/* Version: 1.6.1 
     | 
| 
       37 
     | 
    
         
            -
                  JBundle.build('foo2.js').min.should == "/* Version: 1.6.1 
     | 
| 
      
 35 
     | 
    
         
            +
                it 'should not minify licenses and run min and src filters' do
         
     | 
| 
      
 36 
     | 
    
         
            +
                  JBundle.build('foo2.js').src.should == "/* Version: 1.6.1. This is the src version.\nThis is a license\n-----------------------*/\nvar a3 = 3;\nvar a4 = 4;\nvar src_mode = 'src';\n"
         
     | 
| 
      
 37 
     | 
    
         
            +
                  JBundle.build('foo2.js').min.should == "/* Version: 1.6.1. This is the min version.\nThis is a license\n-----------------------*/\nvar a3=3,a4=4,src_mode=\"min\";\n"
         
     | 
| 
       38 
38 
     | 
    
         
             
                end
         
     | 
| 
       39 
39 
     | 
    
         | 
| 
       40 
40 
     | 
    
         
             
              end
         
     | 
    
        data/spec/test_src/file4.js
    CHANGED
    
    | 
         @@ -1 +1,2 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            var a4 = 4;
         
     | 
| 
      
 1 
     | 
    
         
            +
            var a4 = 4;
         
     | 
| 
      
 2 
     | 
    
         
            +
            var src_mode = '<SRC_MODE>';
         
     | 
    
        data/spec/test_src/license.txt
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,13 +1,13 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: jbundle
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              hash:  
     | 
| 
      
 4 
     | 
    
         
            +
              hash: 15
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       6 
6 
     | 
    
         
             
              segments: 
         
     | 
| 
       7 
7 
     | 
    
         
             
              - 0
         
     | 
| 
       8 
8 
     | 
    
         
             
              - 0
         
     | 
| 
       9 
     | 
    
         
            -
              -  
     | 
| 
       10 
     | 
    
         
            -
              version: 0.0. 
     | 
| 
      
 9 
     | 
    
         
            +
              - 8
         
     | 
| 
      
 10 
     | 
    
         
            +
              version: 0.0.8
         
     | 
| 
       11 
11 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       12 
12 
     | 
    
         
             
            authors: 
         
     | 
| 
       13 
13 
     | 
    
         
             
            - Ismael Celis
         
     | 
| 
         @@ -15,7 +15,7 @@ autorequire: 
     | 
|
| 
       15 
15 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       16 
16 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
            date: 2011-01- 
     | 
| 
      
 18 
     | 
    
         
            +
            date: 2011-01-21 00:00:00 -03:00
         
     | 
| 
       19 
19 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       20 
20 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       21 
21 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     |