jekyll-minibundle 1.5.0 → 1.5.1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +2 -1
- data/Rakefile +21 -11
- data/lib/jekyll/minibundle/asset_bundle.rb +1 -1
- data/lib/jekyll/minibundle/{asset_file_paths.rb → asset_file_properties.rb} +14 -2
- data/lib/jekyll/minibundle/bundle_file.rb +6 -1
- data/lib/jekyll/minibundle/development_file.rb +2 -2
- data/lib/jekyll/minibundle/environment.rb +3 -3
- data/lib/jekyll/minibundle/stamp_file.rb +2 -2
- data/lib/jekyll/minibundle/version.rb +1 -1
- data/test/support/static_file_api_config.rb +10 -0
- data/test/support/test_case.rb +7 -0
- data/test/unit/asset_bundle_test.rb +2 -2
- data/test/unit/bundle_file_properties_test.rb +50 -0
- data/test/unit/{bundle_file_test.rb → bundle_file_writing_test.rb} +1 -9
- data/test/unit/development_file_collection_properties_test.rb +60 -0
- data/test/unit/{development_file_collection_test.rb → development_file_collection_writing_test.rb} +1 -21
- data/test/unit/environment_test.rb +9 -7
- data/test/unit/stamp_file_properties_test.rb +43 -0
- data/test/unit/{stamp_file_test.rb → stamp_file_writing_test.rb} +8 -13
- metadata +18 -10
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 78d5b4816f385803fa9430a93c45b4400bdc412b
         | 
| 4 | 
            +
              data.tar.gz: 840c54ba92488bf1f8116789267bd3a4890a0ce0
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 768d946a42f110c20029d45bf50a6c5174d665adfac5dff7f56b6eef81538f2d7044f6222d2efc31bafdc1083c3f8fb0639959e8c9dc50be999f950b45832b35
         | 
| 7 | 
            +
              data.tar.gz: 506cc7dd2bc7405b431ebb09815aab616bf786407d46d5b19b93aa510c999a552481d1ed6a6a1711817ae6e618e1252549ac8311c0b32cf751892347c65a45f0
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,3 +1,10 @@ | |
| 1 | 
            +
            # 1.5.1 / 2015-01-29
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            * Improve future compatibility with Jekyll. Minibundle has classes
         | 
| 4 | 
            +
              adhering to `Jekyll::StaticFile` interface, and some method
         | 
| 5 | 
            +
              implementations of the interface were missing.
         | 
| 6 | 
            +
            * Small refactorings and test improvements
         | 
| 7 | 
            +
             | 
| 1 8 | 
             
            # 1.5.0 / 2014-07-27
         | 
| 2 9 |  | 
| 3 10 | 
             
            * Support minifier command specification in `_config.yml` and inside
         | 
    
        data/README.md
    CHANGED
    
    | @@ -8,7 +8,7 @@ for cache busting. | |
| 8 8 | 
             
            There are no runtime dependencies, except for the minification tool
         | 
| 9 9 | 
             
            used for bundling (fingerprinting has no dependencies).
         | 
| 10 10 |  | 
| 11 | 
            -
            Tested with Ruby MRI 1.9.3 | 
| 11 | 
            +
            Tested with Ruby MRI 1.9.3 and 2.x. Ruby 1.8 is *not* supported.
         | 
| 12 12 |  | 
| 13 13 | 
             
            The plugin works with Jekyll's watch (auto-regeneration) mode.
         | 
| 14 14 |  | 
| @@ -216,6 +216,7 @@ For example, in the following snippet we're using `assets/src.css` as | |
| 216 216 | 
             
            asset source to `ministamp` tag:
         | 
| 217 217 |  | 
| 218 218 | 
             
            ``` html
         | 
| 219 | 
            +
            <!-- BAD: unless assets dir is excluded, both src.css and dest.css will be copied to output directory -->
         | 
| 219 220 | 
             
            <link href="{% ministamp assets/src.css assets/dest.css %}" rel="stylesheet" media="screen, projection">
         | 
| 220 221 | 
             
            ```
         | 
| 221 222 |  | 
    
        data/Rakefile
    CHANGED
    
    | @@ -26,29 +26,39 @@ namespace :gem do | |
| 26 26 |  | 
| 27 27 | 
             
              desc 'Package the software as a gem'
         | 
| 28 28 | 
             
              task :build => :test do
         | 
| 29 | 
            -
                sh  | 
| 29 | 
            +
                sh "gem build #{gem_name}.gemspec"
         | 
| 30 30 | 
             
              end
         | 
| 31 31 |  | 
| 32 32 | 
             
              desc 'Install the software as a gem'
         | 
| 33 33 | 
             
              task :install do
         | 
| 34 | 
            -
                sh  | 
| 34 | 
            +
                sh "gem install #{gem_name}-#{Jekyll::Minibundle::VERSION}.gem"
         | 
| 35 35 | 
             
              end
         | 
| 36 36 |  | 
| 37 37 | 
             
              desc 'Uninstall the gem'
         | 
| 38 38 | 
             
              task :uninstall => :clean do
         | 
| 39 | 
            -
                sh  | 
| 39 | 
            +
                sh "gem uninstall #{gem_name}"
         | 
| 40 40 | 
             
              end
         | 
| 41 41 | 
             
            end
         | 
| 42 42 |  | 
| 43 | 
            -
            desc 'Run tests;  | 
| 43 | 
            +
            desc 'Run tests; TEST=<test_suite_path>, NAME=<test_name_pattern>, DEBUG=1 to require Pry, PP, enable warnings'
         | 
| 44 44 | 
             
            task :test do
         | 
| 45 | 
            -
               | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
                 | 
| 49 | 
            -
             | 
| 50 | 
            -
             | 
| 51 | 
            -
               | 
| 45 | 
            +
              run_single_test = ENV.key?('TEST')
         | 
| 46 | 
            +
             | 
| 47 | 
            +
              run_selected_or_all = if run_single_test
         | 
| 48 | 
            +
                rb_file = ENV['TEST']
         | 
| 49 | 
            +
                name_opt = ENV.key?('NAME') ? " -n #{ENV['NAME']}" : ''
         | 
| 50 | 
            +
                "#{rb_file}#{name_opt}"
         | 
| 51 | 
            +
              else
         | 
| 52 | 
            +
                requirable_files = Dir['test/{unit,integration}/*_test.rb'].
         | 
| 53 | 
            +
                  map { |file| %r{^test/(.+)\.rb$}.match(file)[1] }.
         | 
| 54 | 
            +
                  shelljoin
         | 
| 55 | 
            +
                eval = "-e 'ARGV.each { |f| require f }'"
         | 
| 56 | 
            +
                "#{eval} #{requirable_files}"
         | 
| 57 | 
            +
              end
         | 
| 58 | 
            +
             | 
| 59 | 
            +
              extra_opts = ENV['DEBUG'] ? '-w -rpp -rpry ' : ''
         | 
| 60 | 
            +
             | 
| 61 | 
            +
              sh "ruby -I lib:test #{extra_opts}#{run_selected_or_all}"
         | 
| 52 62 | 
             
            end
         | 
| 53 63 |  | 
| 54 64 | 
             
            namespace :fixture do
         | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            module Jekyll::Minibundle
         | 
| 2 | 
            -
              module  | 
| 2 | 
            +
              module AssetFileProperties
         | 
| 3 3 | 
             
                def path
         | 
| 4 4 | 
             
                  asset_source_path
         | 
| 5 5 | 
             
                end
         | 
| @@ -16,6 +16,10 @@ module Jekyll::Minibundle | |
| 16 16 | 
             
                  File.join(site_destination_dir, asset_destination_path)
         | 
| 17 17 | 
             
                end
         | 
| 18 18 |  | 
| 19 | 
            +
                def extname
         | 
| 20 | 
            +
                  File.extname(relative_path)
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
             | 
| 19 23 | 
             
                def mtime
         | 
| 20 24 | 
             
                  File.stat(path).mtime.to_i
         | 
| 21 25 | 
             
                end
         | 
| @@ -24,12 +28,20 @@ module Jekyll::Minibundle | |
| 24 28 | 
             
                  stamped_at != mtime
         | 
| 25 29 | 
             
                end
         | 
| 26 30 |  | 
| 31 | 
            +
                def destination_rel_dir
         | 
| 32 | 
            +
                  asset_destination_dir
         | 
| 33 | 
            +
                end
         | 
| 34 | 
            +
             | 
| 27 35 | 
             
                def to_liquid
         | 
| 28 36 | 
             
                  {
         | 
| 29 37 | 
             
                    'path'          => relative_path,
         | 
| 30 38 | 
             
                    'modified_time' => mtime.to_s,
         | 
| 31 | 
            -
                    'extname'       =>  | 
| 39 | 
            +
                    'extname'       => extname
         | 
| 32 40 | 
             
                  }
         | 
| 33 41 | 
             
                end
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                def write?
         | 
| 44 | 
            +
                  true
         | 
| 45 | 
            +
                end
         | 
| 34 46 | 
             
              end
         | 
| 35 47 | 
             
            end
         | 
| @@ -1,12 +1,13 @@ | |
| 1 1 | 
             
            require 'jekyll/minibundle/asset_bundle'
         | 
| 2 2 | 
             
            require 'jekyll/minibundle/asset_file_operations'
         | 
| 3 | 
            +
            require 'jekyll/minibundle/asset_file_properties'
         | 
| 3 4 | 
             
            require 'jekyll/minibundle/asset_stamp'
         | 
| 4 5 | 
             
            require 'jekyll/minibundle/asset_tag_markup'
         | 
| 5 6 |  | 
| 6 7 | 
             
            module Jekyll::Minibundle
         | 
| 7 8 | 
             
              class BundleFile
         | 
| 8 9 | 
             
                include AssetFileOperations
         | 
| 9 | 
            -
                include  | 
| 10 | 
            +
                include AssetFileProperties
         | 
| 10 11 |  | 
| 11 12 | 
             
                attr_reader :stamped_at
         | 
| 12 13 |  | 
| @@ -39,6 +40,10 @@ module Jekyll::Minibundle | |
| 39 40 | 
             
                  asset_bundle.path
         | 
| 40 41 | 
             
                end
         | 
| 41 42 |  | 
| 43 | 
            +
                def asset_destination_dir
         | 
| 44 | 
            +
                  File.dirname(@destination_path)
         | 
| 45 | 
            +
                end
         | 
| 46 | 
            +
             | 
| 42 47 | 
             
                def asset_destination_path
         | 
| 43 48 | 
             
                  "#{@destination_path}-#{asset_stamp}.#{@type}"
         | 
| 44 49 | 
             
                end
         | 
| @@ -1,10 +1,10 @@ | |
| 1 1 | 
             
            require 'jekyll/minibundle/asset_file_operations'
         | 
| 2 | 
            -
            require 'jekyll/minibundle/ | 
| 2 | 
            +
            require 'jekyll/minibundle/asset_file_properties'
         | 
| 3 3 |  | 
| 4 4 | 
             
            module Jekyll::Minibundle
         | 
| 5 5 | 
             
              class DevelopmentFile
         | 
| 6 6 | 
             
                include AssetFileOperations
         | 
| 7 | 
            -
                include  | 
| 7 | 
            +
                include AssetFileProperties
         | 
| 8 8 |  | 
| 9 9 | 
             
                attr_reader :asset_source_path, :asset_destination_dir, :asset_destination_basename, :stamped_at
         | 
| 10 10 |  | 
| @@ -12,15 +12,15 @@ module Jekyll::Minibundle | |
| 12 12 | 
             
                  end
         | 
| 13 13 |  | 
| 14 14 | 
             
                  def find_site_config(site, keys, type)
         | 
| 15 | 
            -
                    value =  | 
| 15 | 
            +
                    value = traverse_keys(site.config, keys)
         | 
| 16 16 | 
             
                    if value && !value.is_a?(type)
         | 
| 17 17 | 
             
                      fail "Invalid site configuration for key #{keys.join('.')}; expecting type #{type}"
         | 
| 18 18 | 
             
                    end
         | 
| 19 19 | 
             
                    value
         | 
| 20 20 | 
             
                  end
         | 
| 21 21 |  | 
| 22 | 
            -
                  def  | 
| 23 | 
            -
                    value =  | 
| 22 | 
            +
                  def traverse_keys(obj, keys)
         | 
| 23 | 
            +
                    value = obj
         | 
| 24 24 | 
             
                    keys.each do |key|
         | 
| 25 25 | 
             
                      return nil unless value
         | 
| 26 26 | 
             
                      value = value[key]
         | 
| @@ -1,11 +1,11 @@ | |
| 1 1 | 
             
            require 'jekyll/minibundle/asset_file_operations'
         | 
| 2 | 
            -
            require 'jekyll/minibundle/ | 
| 2 | 
            +
            require 'jekyll/minibundle/asset_file_properties'
         | 
| 3 3 | 
             
            require 'jekyll/minibundle/asset_stamp'
         | 
| 4 4 |  | 
| 5 5 | 
             
            module Jekyll::Minibundle
         | 
| 6 6 | 
             
              class StampFile
         | 
| 7 7 | 
             
                include AssetFileOperations
         | 
| 8 | 
            -
                include  | 
| 8 | 
            +
                include AssetFileProperties
         | 
| 9 9 |  | 
| 10 10 | 
             
                attr_reader :asset_source_path, :asset_destination_dir, :stamped_at
         | 
| 11 11 |  | 
    
        data/test/support/test_case.rb
    CHANGED
    
    | @@ -114,6 +114,13 @@ module Jekyll::Minibundle::Test | |
| 114 114 | 
             
                  end
         | 
| 115 115 | 
             
                end
         | 
| 116 116 |  | 
| 117 | 
            +
                def get_send_results(obj, method_names)
         | 
| 118 | 
            +
                  method_names.reduce({}) do |acc, method_name|
         | 
| 119 | 
            +
                    acc[method_name] = obj.send(method_name)
         | 
| 120 | 
            +
                    acc
         | 
| 121 | 
            +
                  end
         | 
| 122 | 
            +
                end
         | 
| 123 | 
            +
             | 
| 117 124 | 
             
                private
         | 
| 118 125 |  | 
| 119 126 | 
             
                def _copy_fixture_site_dir(dir)
         | 
| @@ -5,8 +5,8 @@ module Jekyll::Minibundle::Test | |
| 5 5 | 
             
              class AssetBundleTest < TestCase
         | 
| 6 6 | 
             
                def test_raise_exception_if_bundle_command_fails
         | 
| 7 7 | 
             
                  capture_io do
         | 
| 8 | 
            -
                    err = assert_raises(RuntimeError) { make_bundle('false') }
         | 
| 9 | 
            -
                    assert_equal 'Bundling js assets failed with exit status 1, command: false', err.to_s
         | 
| 8 | 
            +
                    err = assert_raises(RuntimeError) { make_bundle('read _ignore ; false') }
         | 
| 9 | 
            +
                    assert_equal 'Bundling js assets failed with exit status 1, command: read _ignore ; false', err.to_s
         | 
| 10 10 | 
             
                  end
         | 
| 11 11 | 
             
                end
         | 
| 12 12 |  | 
| @@ -0,0 +1,50 @@ | |
| 1 | 
            +
            require 'support/test_case'
         | 
| 2 | 
            +
            require 'support/fixture_config'
         | 
| 3 | 
            +
            require 'support/static_file_api_config'
         | 
| 4 | 
            +
            require 'jekyll/minibundle/bundle_file'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            module Jekyll::Minibundle::Test
         | 
| 7 | 
            +
              class BundleFilePropertiesTest < TestCase
         | 
| 8 | 
            +
                include FixtureConfig
         | 
| 9 | 
            +
                include StaticFileAPIConfig
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                def setup
         | 
| 12 | 
            +
                  @results ||= with_fake_site do |site|
         | 
| 13 | 
            +
                    file = BundleFile.new(site, bundle_config(minifier_cmd_to_remove_comments))
         | 
| 14 | 
            +
                    get_send_results(file, STATIC_FILE_API_PROPERTIES)
         | 
| 15 | 
            +
                  end
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                def test_to_liquid
         | 
| 19 | 
            +
                  hash = @results.fetch(:to_liquid)
         | 
| 20 | 
            +
                  assert_match(%r{/jekyll-minibundle-.+\.js\z}, hash['path'])
         | 
| 21 | 
            +
                  refute_empty hash['modified_time']
         | 
| 22 | 
            +
                  assert_equal '.js', hash['extname']
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                def test_extname
         | 
| 26 | 
            +
                  assert_equal '.js', @results.fetch(:extname)
         | 
| 27 | 
            +
                end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                def test_destination_rel_dir
         | 
| 30 | 
            +
                  assert_equal 'assets', @results.fetch(:destination_rel_dir)
         | 
| 31 | 
            +
                end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                def test_write?
         | 
| 34 | 
            +
                  assert @results.fetch(:write?)
         | 
| 35 | 
            +
                end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                private
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                def bundle_config(minifier_cmd)
         | 
| 40 | 
            +
                  {
         | 
| 41 | 
            +
                    'type'             => :js,
         | 
| 42 | 
            +
                    'source_dir'       => JS_BUNDLE_SOURCE_DIR,
         | 
| 43 | 
            +
                    'assets'           => %w{dependency app},
         | 
| 44 | 
            +
                    'destination_path' => JS_BUNDLE_DESTINATION_PATH,
         | 
| 45 | 
            +
                    'attributes'       => {},
         | 
| 46 | 
            +
                    'minifier_cmd'     => minifier_cmd
         | 
| 47 | 
            +
                  }
         | 
| 48 | 
            +
                end
         | 
| 49 | 
            +
              end
         | 
| 50 | 
            +
            end
         | 
| @@ -3,7 +3,7 @@ require 'support/fixture_config' | |
| 3 3 | 
             
            require 'jekyll/minibundle/bundle_file'
         | 
| 4 4 |  | 
| 5 5 | 
             
            module Jekyll::Minibundle::Test
         | 
| 6 | 
            -
              class  | 
| 6 | 
            +
              class BundleFileWritingTest < TestCase
         | 
| 7 7 | 
             
                include FixtureConfig
         | 
| 8 8 |  | 
| 9 9 | 
             
                def test_calling_markup_determines_fingerprint_and_destination_write
         | 
| @@ -84,14 +84,6 @@ module Jekyll::Minibundle::Test | |
| 84 84 | 
             
                  end
         | 
| 85 85 | 
             
                end
         | 
| 86 86 |  | 
| 87 | 
            -
                def test_to_liquid
         | 
| 88 | 
            -
                  with_fake_site do |site|
         | 
| 89 | 
            -
                    hash = BundleFile.new(site, bundle_config(minifier_cmd_to_remove_comments)).to_liquid
         | 
| 90 | 
            -
                    assert_match(/jekyll-minibundle-js-/, hash['path'])
         | 
| 91 | 
            -
                    refute_empty hash['modified_time']
         | 
| 92 | 
            -
                  end
         | 
| 93 | 
            -
                end
         | 
| 94 | 
            -
             | 
| 95 87 | 
             
                private
         | 
| 96 88 |  | 
| 97 89 | 
             
                def bundle_config(minifier_cmd)
         | 
| @@ -0,0 +1,60 @@ | |
| 1 | 
            +
            require 'support/test_case'
         | 
| 2 | 
            +
            require 'support/fixture_config'
         | 
| 3 | 
            +
            require 'support/static_file_api_config'
         | 
| 4 | 
            +
            require 'jekyll/minibundle/development_file'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            module Jekyll::Minibundle::Test
         | 
| 7 | 
            +
              class DevelopmentFileCollectionPropertiesTest < TestCase
         | 
| 8 | 
            +
                include FixtureConfig
         | 
| 9 | 
            +
                include StaticFileAPIConfig
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                def setup
         | 
| 12 | 
            +
                  @results ||= with_fake_site do |site|
         | 
| 13 | 
            +
                    files = DevelopmentFileCollection.new(site, bundle_config).instance_variable_get('@files')
         | 
| 14 | 
            +
                    {
         | 
| 15 | 
            +
                      dependency: get_send_results(files[0], STATIC_FILE_API_PROPERTIES),
         | 
| 16 | 
            +
                      app: get_send_results(files[1], STATIC_FILE_API_PROPERTIES)
         | 
| 17 | 
            +
                    }
         | 
| 18 | 
            +
                  end
         | 
| 19 | 
            +
                end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                def test_to_liquid
         | 
| 22 | 
            +
                  hash = @results.fetch(:dependency).fetch(:to_liquid)
         | 
| 23 | 
            +
                  assert_equal "/#{JS_BUNDLE_SOURCE_DIR}/dependency.js", hash['path']
         | 
| 24 | 
            +
                  refute_empty hash['modified_time']
         | 
| 25 | 
            +
                  assert_equal '.js', hash['extname']
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                  hash = @results.fetch(:app).fetch(:to_liquid)
         | 
| 28 | 
            +
                  assert_equal "/#{JS_BUNDLE_SOURCE_DIR}/app.js", hash['path']
         | 
| 29 | 
            +
                  refute_empty hash['modified_time']
         | 
| 30 | 
            +
                  assert_equal '.js', hash['extname']
         | 
| 31 | 
            +
                end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                def test_extname
         | 
| 34 | 
            +
                  assert_equal '.js', @results.fetch(:dependency).fetch(:extname)
         | 
| 35 | 
            +
                  assert_equal '.js', @results.fetch(:app).fetch(:extname)
         | 
| 36 | 
            +
                end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                def test_destination_rel_dir
         | 
| 39 | 
            +
                  assert_equal 'assets/site', @results.fetch(:dependency).fetch(:destination_rel_dir)
         | 
| 40 | 
            +
                  assert_equal 'assets/site', @results.fetch(:app).fetch(:destination_rel_dir)
         | 
| 41 | 
            +
                end
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                def test_write?
         | 
| 44 | 
            +
                  assert @results.fetch(:dependency).fetch(:write?)
         | 
| 45 | 
            +
                  assert @results.fetch(:app).fetch(:write?)
         | 
| 46 | 
            +
                end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                private
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                def bundle_config
         | 
| 51 | 
            +
                  {
         | 
| 52 | 
            +
                   'type'             => :js,
         | 
| 53 | 
            +
                   'source_dir'       => JS_BUNDLE_SOURCE_DIR,
         | 
| 54 | 
            +
                   'assets'           => %w{dependency app},
         | 
| 55 | 
            +
                   'destination_path' => JS_BUNDLE_DESTINATION_PATH,
         | 
| 56 | 
            +
                   'attributes'       => {}
         | 
| 57 | 
            +
                  }
         | 
| 58 | 
            +
                end
         | 
| 59 | 
            +
              end
         | 
| 60 | 
            +
            end
         | 
    
        data/test/unit/{development_file_collection_test.rb → development_file_collection_writing_test.rb}
    RENAMED
    
    | @@ -3,7 +3,7 @@ require 'support/fixture_config' | |
| 3 3 | 
             
            require 'jekyll/minibundle/development_file'
         | 
| 4 4 |  | 
| 5 5 | 
             
            module Jekyll::Minibundle::Test
         | 
| 6 | 
            -
              class  | 
| 6 | 
            +
              class DevelopmentFileCollectionWritingTest < TestCase
         | 
| 7 7 | 
             
                include FixtureConfig
         | 
| 8 8 |  | 
| 9 9 | 
             
                def test_calling_write_before_destination_path_for_markup_writes_destination
         | 
| @@ -24,26 +24,6 @@ module Jekyll::Minibundle::Test | |
| 24 24 | 
             
                  end
         | 
| 25 25 | 
             
                end
         | 
| 26 26 |  | 
| 27 | 
            -
                def test_to_liquid
         | 
| 28 | 
            -
                  with_fake_site do |site|
         | 
| 29 | 
            -
                    files = DevelopmentFileCollection.new(site, bundle_config).
         | 
| 30 | 
            -
                        instance_variable_get('@files').
         | 
| 31 | 
            -
                        sort_by { |f| f.path }
         | 
| 32 | 
            -
             | 
| 33 | 
            -
                    hash = files[0].to_liquid
         | 
| 34 | 
            -
             | 
| 35 | 
            -
                    assert_equal "/#{JS_BUNDLE_SOURCE_DIR}/app.js", hash['path']
         | 
| 36 | 
            -
                    refute_empty hash['modified_time']
         | 
| 37 | 
            -
                    assert_equal '.js', hash['extname']
         | 
| 38 | 
            -
             | 
| 39 | 
            -
                    hash = files[1].to_liquid
         | 
| 40 | 
            -
             | 
| 41 | 
            -
                    assert_equal "/#{JS_BUNDLE_SOURCE_DIR}/dependency.js", hash['path']
         | 
| 42 | 
            -
                    refute_empty hash['modified_time']
         | 
| 43 | 
            -
                    assert_equal '.js', hash['extname']
         | 
| 44 | 
            -
                  end
         | 
| 45 | 
            -
                end
         | 
| 46 | 
            -
             | 
| 47 27 | 
             
                private
         | 
| 48 28 |  | 
| 49 29 | 
             
                def bundle_config
         | 
| @@ -3,15 +3,17 @@ require 'jekyll/minibundle/environment' | |
| 3 3 |  | 
| 4 4 | 
             
            module Jekyll::Minibundle::Test
         | 
| 5 5 | 
             
              class EnvironmentTest < TestCase
         | 
| 6 | 
            -
                def  | 
| 7 | 
            -
                  assert_equal 1, Environment. | 
| 8 | 
            -
                  assert_equal({leaf: 1}, Environment. | 
| 6 | 
            +
                def test_traverse_keys_returns_value_when_found
         | 
| 7 | 
            +
                  assert_equal 1, Environment.traverse_keys({top: {middle: {leaf: 1}}}, [:top, :middle, :leaf])
         | 
| 8 | 
            +
                  assert_equal({leaf: 1}, Environment.traverse_keys({top: {middle: {leaf: 1}}}, [:top, :middle]))
         | 
| 9 | 
            +
                  assert_equal 1, Environment.traverse_keys({top: [{}, {leaf: 1}]}, [:top, 1, :leaf])
         | 
| 9 10 | 
             
                end
         | 
| 10 11 |  | 
| 11 | 
            -
                def  | 
| 12 | 
            -
                  assert_nil Environment. | 
| 13 | 
            -
                  assert_nil Environment. | 
| 14 | 
            -
                  assert_nil Environment. | 
| 12 | 
            +
                def test_traverse_keys_returns_nil_when_not_found
         | 
| 13 | 
            +
                  assert_nil Environment.traverse_keys({}, [:top, :no_such_leaf])
         | 
| 14 | 
            +
                  assert_nil Environment.traverse_keys({top: {}}, [:top, :no_such_leaf])
         | 
| 15 | 
            +
                  assert_nil Environment.traverse_keys({top: {leaf: 1}}, [:top, :no_such_leaf])
         | 
| 16 | 
            +
                  assert_nil Environment.traverse_keys({top: []}, [:top, 0])
         | 
| 15 17 | 
             
                end
         | 
| 16 18 |  | 
| 17 19 | 
             
                def test_find_site_config_returns_value_when_found
         | 
| @@ -0,0 +1,43 @@ | |
| 1 | 
            +
            require 'support/test_case'
         | 
| 2 | 
            +
            require 'support/fixture_config'
         | 
| 3 | 
            +
            require 'support/static_file_api_config'
         | 
| 4 | 
            +
            require 'jekyll/minibundle/stamp_file'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            module Jekyll::Minibundle::Test
         | 
| 7 | 
            +
              class StampFilePropertiesTest < TestCase
         | 
| 8 | 
            +
                include FixtureConfig
         | 
| 9 | 
            +
                include StaticFileAPIConfig
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                def setup
         | 
| 12 | 
            +
                  @results ||= with_fake_site do |site|
         | 
| 13 | 
            +
                    file = StampFile.new(site, STAMP_SOURCE_PATH, STAMP_DESTINATION_PATH, &stamp_basenamer)
         | 
| 14 | 
            +
                    get_send_results(file, STATIC_FILE_API_PROPERTIES)
         | 
| 15 | 
            +
                  end
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                def test_to_liquid
         | 
| 19 | 
            +
                  hash = @results.fetch(:to_liquid)
         | 
| 20 | 
            +
                  assert_equal "/#{STAMP_SOURCE_PATH}", hash['path']
         | 
| 21 | 
            +
                  refute_empty hash['modified_time']
         | 
| 22 | 
            +
                  assert_equal '.css', hash['extname']
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                def test_extname
         | 
| 26 | 
            +
                  assert_equal '.css', @results.fetch(:extname)
         | 
| 27 | 
            +
                end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                def test_destination_rel_dir
         | 
| 30 | 
            +
                  assert_equal 'assets', @results.fetch(:destination_rel_dir)
         | 
| 31 | 
            +
                end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                def test_write?
         | 
| 34 | 
            +
                  assert @results.fetch(:write?)
         | 
| 35 | 
            +
                end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                private
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                def stamp_basenamer
         | 
| 40 | 
            +
                  ->(base, ext, stamper) { "#{base}-#{stamper.call}#{ext}" }
         | 
| 41 | 
            +
                end
         | 
| 42 | 
            +
              end
         | 
| 43 | 
            +
            end
         | 
| @@ -3,12 +3,12 @@ require 'support/fixture_config' | |
| 3 3 | 
             
            require 'jekyll/minibundle/stamp_file'
         | 
| 4 4 |  | 
| 5 5 | 
             
            module Jekyll::Minibundle::Test
         | 
| 6 | 
            -
              class  | 
| 6 | 
            +
              class StampFileWritingTest < TestCase
         | 
| 7 7 | 
             
                include FixtureConfig
         | 
| 8 8 |  | 
| 9 9 | 
             
                def test_calling_destination_path_for_markup_determines_fingerprint_and_destination_write
         | 
| 10 10 | 
             
                  with_fake_site do |site|
         | 
| 11 | 
            -
                    stamp_file =  | 
| 11 | 
            +
                    stamp_file = new_stamp_file(site)
         | 
| 12 12 | 
             
                    source = source_path(STAMP_SOURCE_PATH)
         | 
| 13 13 | 
             
                    old_destination = destination_path(STAMP_DESTINATION_FINGERPRINT_PATH)
         | 
| 14 14 | 
             
                    org_markup = stamp_file.destination_path_for_markup
         | 
| @@ -40,7 +40,7 @@ module Jekyll::Minibundle::Test | |
| 40 40 |  | 
| 41 41 | 
             
                def test_many_consecutive_destination_path_for_markup_calls_trigger_one_destination_write
         | 
| 42 42 | 
             
                  with_fake_site do |site|
         | 
| 43 | 
            -
                    stamp_file =  | 
| 43 | 
            +
                    stamp_file = new_stamp_file(site)
         | 
| 44 44 | 
             
                    source = source_path(STAMP_SOURCE_PATH)
         | 
| 45 45 | 
             
                    destination = destination_path(STAMP_DESTINATION_FINGERPRINT_PATH)
         | 
| 46 46 | 
             
                    org_markup = stamp_file.destination_path_for_markup
         | 
| @@ -62,7 +62,7 @@ module Jekyll::Minibundle::Test | |
| 62 62 |  | 
| 63 63 | 
             
                def test_calling_write_before_destination_path_for_markup_has_no_effect
         | 
| 64 64 | 
             
                  with_fake_site do |site|
         | 
| 65 | 
            -
                    stamp_file =  | 
| 65 | 
            +
                    stamp_file = new_stamp_file(site)
         | 
| 66 66 |  | 
| 67 67 | 
             
                    refute stamp_file.write('_site')
         | 
| 68 68 | 
             
                    assert_empty Dir[destination_path('assets/*.css')]
         | 
| @@ -74,17 +74,12 @@ module Jekyll::Minibundle::Test | |
| 74 74 | 
             
                  end
         | 
| 75 75 | 
             
                end
         | 
| 76 76 |  | 
| 77 | 
            -
                def test_to_liquid
         | 
| 78 | 
            -
                  with_fake_site do |site|
         | 
| 79 | 
            -
                    hash = StampFile.new(site, STAMP_SOURCE_PATH, STAMP_DESTINATION_PATH, &stamp_basenamer).to_liquid
         | 
| 80 | 
            -
                    assert_equal "/#{STAMP_SOURCE_PATH}", hash['path']
         | 
| 81 | 
            -
                    refute_empty hash['modified_time']
         | 
| 82 | 
            -
                    assert_equal '.css', hash['extname']
         | 
| 83 | 
            -
                  end
         | 
| 84 | 
            -
                end
         | 
| 85 | 
            -
             | 
| 86 77 | 
             
                private
         | 
| 87 78 |  | 
| 79 | 
            +
                def new_stamp_file(site)
         | 
| 80 | 
            +
                  StampFile.new(site, STAMP_SOURCE_PATH, STAMP_DESTINATION_PATH, &stamp_basenamer)
         | 
| 81 | 
            +
                end
         | 
| 82 | 
            +
             | 
| 88 83 | 
             
                def stamp_basenamer
         | 
| 89 84 | 
             
                  ->(base, ext, stamper) { "#{base}-#{stamper.call}#{ext}" }
         | 
| 90 85 | 
             
                end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: jekyll-minibundle
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.5. | 
| 4 | 
            +
              version: 1.5.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Tuomas Kareinen
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2015-01-29 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: jekyll
         | 
| @@ -85,7 +85,7 @@ files: | |
| 85 85 | 
             
            - lib/jekyll/minibundle.rb
         | 
| 86 86 | 
             
            - lib/jekyll/minibundle/asset_bundle.rb
         | 
| 87 87 | 
             
            - lib/jekyll/minibundle/asset_file_operations.rb
         | 
| 88 | 
            -
            - lib/jekyll/minibundle/ | 
| 88 | 
            +
            - lib/jekyll/minibundle/asset_file_properties.rb
         | 
| 89 89 | 
             
            - lib/jekyll/minibundle/asset_file_registry.rb
         | 
| 90 90 | 
             
            - lib/jekyll/minibundle/asset_stamp.rb
         | 
| 91 91 | 
             
            - lib/jekyll/minibundle/asset_tag_markup.rb
         | 
| @@ -115,18 +115,22 @@ files: | |
| 115 115 | 
             
            - test/integration/ministamp_test.rb
         | 
| 116 116 | 
             
            - test/integration/static_files_as_asset_sources_test.rb
         | 
| 117 117 | 
             
            - test/support/fixture_config.rb
         | 
| 118 | 
            +
            - test/support/static_file_api_config.rb
         | 
| 118 119 | 
             
            - test/support/test_case.rb
         | 
| 119 120 | 
             
            - test/unit/asset_bundle_test.rb
         | 
| 120 121 | 
             
            - test/unit/asset_file_registry_test.rb
         | 
| 121 122 | 
             
            - test/unit/asset_tag_markup_test.rb
         | 
| 122 | 
            -
            - test/unit/ | 
| 123 | 
            -
            - test/unit/ | 
| 123 | 
            +
            - test/unit/bundle_file_properties_test.rb
         | 
| 124 | 
            +
            - test/unit/bundle_file_writing_test.rb
         | 
| 125 | 
            +
            - test/unit/development_file_collection_properties_test.rb
         | 
| 126 | 
            +
            - test/unit/development_file_collection_writing_test.rb
         | 
| 124 127 | 
             
            - test/unit/environment_test.rb
         | 
| 125 128 | 
             
            - test/unit/jekyll_payload_test.rb
         | 
| 126 129 | 
             
            - test/unit/jekyll_static_file_api_test.rb
         | 
| 127 130 | 
             
            - test/unit/mini_bundle_block_test.rb
         | 
| 128 131 | 
             
            - test/unit/mini_stamp_tag_test.rb
         | 
| 129 | 
            -
            - test/unit/ | 
| 132 | 
            +
            - test/unit/stamp_file_properties_test.rb
         | 
| 133 | 
            +
            - test/unit/stamp_file_writing_test.rb
         | 
| 130 134 | 
             
            homepage: https://github.com/tkareine/jekyll-minibundle
         | 
| 131 135 | 
             
            licenses:
         | 
| 132 136 | 
             
            - MIT
         | 
| @@ -152,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 152 156 | 
             
                  version: '0'
         | 
| 153 157 | 
             
            requirements: []
         | 
| 154 158 | 
             
            rubyforge_project: 
         | 
| 155 | 
            -
            rubygems_version: 2.4. | 
| 159 | 
            +
            rubygems_version: 2.4.5
         | 
| 156 160 | 
             
            signing_key: 
         | 
| 157 161 | 
             
            specification_version: 4
         | 
| 158 162 | 
             
            summary: A minimalistic asset bundling plugin for Jekyll
         | 
| @@ -174,15 +178,19 @@ test_files: | |
| 174 178 | 
             
            - test/integration/ministamp_test.rb
         | 
| 175 179 | 
             
            - test/integration/static_files_as_asset_sources_test.rb
         | 
| 176 180 | 
             
            - test/support/fixture_config.rb
         | 
| 181 | 
            +
            - test/support/static_file_api_config.rb
         | 
| 177 182 | 
             
            - test/support/test_case.rb
         | 
| 178 183 | 
             
            - test/unit/asset_bundle_test.rb
         | 
| 179 184 | 
             
            - test/unit/asset_file_registry_test.rb
         | 
| 180 185 | 
             
            - test/unit/asset_tag_markup_test.rb
         | 
| 181 | 
            -
            - test/unit/ | 
| 182 | 
            -
            - test/unit/ | 
| 186 | 
            +
            - test/unit/bundle_file_properties_test.rb
         | 
| 187 | 
            +
            - test/unit/bundle_file_writing_test.rb
         | 
| 188 | 
            +
            - test/unit/development_file_collection_properties_test.rb
         | 
| 189 | 
            +
            - test/unit/development_file_collection_writing_test.rb
         | 
| 183 190 | 
             
            - test/unit/environment_test.rb
         | 
| 184 191 | 
             
            - test/unit/jekyll_payload_test.rb
         | 
| 185 192 | 
             
            - test/unit/jekyll_static_file_api_test.rb
         | 
| 186 193 | 
             
            - test/unit/mini_bundle_block_test.rb
         | 
| 187 194 | 
             
            - test/unit/mini_stamp_tag_test.rb
         | 
| 188 | 
            -
            - test/unit/ | 
| 195 | 
            +
            - test/unit/stamp_file_properties_test.rb
         | 
| 196 | 
            +
            - test/unit/stamp_file_writing_test.rb
         |