roger 1.8.0 → 1.9.0
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 +5 -5
- data/.rubocop.yml +10 -0
- data/.travis.yml +3 -2
- data/CHANGELOG.md +6 -0
- data/lib/roger/generators.rb +6 -4
- data/lib/roger/rack/roger.rb +1 -1
- data/lib/roger/release.rb +28 -18
- data/lib/roger/release/finalizers/git_branch.rb +1 -1
- data/lib/roger/release/finalizers/rsync.rb +1 -0
- data/lib/roger/release/injector.rb +4 -5
- data/lib/roger/release/processors.rb +0 -1
- data/lib/roger/rogerfile.rb +1 -1
- data/lib/roger/template.rb +1 -1
- data/lib/roger/version.rb +1 -1
- data/roger.gemspec +4 -5
- data/test/project/Gemfile +2 -2
- data/test/project/Rogerfile +1 -2
- data/test/project/lib/tests/noop/lib/cli.rb +1 -2
- data/test/unit/generators/generator_test.rb +1 -0
- data/test/unit/generators/new_test.rb +1 -0
- data/test/unit/generators_test.rb +1 -2
- data/test/unit/release_test.rb +2 -10
- data/test/unit/renderer/renderer_base_test.rb +2 -1
- data/test/unit/renderer/renderer_content_for_test.rb +1 -0
- data/test/unit/renderer/renderer_helper_test.rb +1 -0
- data/test/unit/renderer/renderer_layout_test.rb +1 -0
- data/test/unit/renderer/renderer_partial_test.rb +1 -0
- data/test/unit/server_test.rb +1 -3
- data/test/unit/template/template_base_test.rb +2 -1
- data/test/unit/test_test.rb +3 -2
- metadata +11 -28
- data/lib/roger/release/processors/url_relativizer.rb +0 -74
- data/test/unit/release/processors/url_relativizer_test.rb +0 -35
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
             | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 2 | 
            +
            SHA256:
         | 
| 3 | 
            +
              metadata.gz: 69986cc9095a927deaa4d0c24ded5939d2ed1ea5373a2e3646af631bf0601c50
         | 
| 4 | 
            +
              data.tar.gz: e2fa26c7a1aed9f93fa55b236acbbd7ecece390c615978c3bf3cc5867621743a
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 43991d9924c031c0ffae6f413d4a32186c09ad5e4fd64187ca528b97f227b3fa7db5f47476d4b2667900a83516bb20cbcd973165b3cf98b814f06afeb582753d
         | 
| 7 | 
            +
              data.tar.gz: 87cb05672e3960e1c8ca8622af06bcf360e0ddebe73d56ce81a6b3122bacf8d7eff4ec9972bec9fdfe35f2e5e1c4cfbbbaf53f902ac20c3fa508d181b404a9e3
         | 
    
        data/.rubocop.yml
    CHANGED
    
    | @@ -1,3 +1,7 @@ | |
| 1 | 
            +
            Style/PercentLiteralDelimiters:
         | 
| 2 | 
            +
              PreferredDelimiters:
         | 
| 3 | 
            +
                "%w": "()"
         | 
| 4 | 
            +
             | 
| 1 5 | 
             
            LineLength:
         | 
| 2 6 | 
             
              Description: 'Limit lines to 100 characters.'
         | 
| 3 7 | 
             
              Max: 100
         | 
| @@ -18,10 +22,16 @@ Metrics/MethodLength: | |
| 18 22 | 
             
            Metrics/AbcSize:
         | 
| 19 23 | 
             
              Max: 20
         | 
| 20 24 |  | 
| 25 | 
            +
            Metrics/BlockLength:
         | 
| 26 | 
            +
              Max: 35
         | 
| 27 | 
            +
             | 
| 21 28 | 
             
            Style/ClassAndModuleChildren:
         | 
| 22 29 | 
             
              EnforcedStyle: compact
         | 
| 23 30 | 
             
              Enabled: false
         | 
| 24 31 |  | 
| 32 | 
            +
            Style/SymbolArray:
         | 
| 33 | 
            +
              Enabled: false
         | 
| 34 | 
            +
             | 
| 25 35 | 
             
            # By default, the rails cops are not run. Override in project or home
         | 
| 26 36 | 
             
            # directory .rubocop.yml files, or by giving the -R/--rails option.
         | 
| 27 37 | 
             
            Rails:
         | 
    
        data/.travis.yml
    CHANGED
    
    
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,5 +1,11 @@ | |
| 1 1 | 
             
            # Changelog
         | 
| 2 2 |  | 
| 3 | 
            +
            ## Version 1.9.0
         | 
| 4 | 
            +
            * Render all *.erb files by default
         | 
| 5 | 
            +
            * Update dependencies
         | 
| 6 | 
            +
            * Rsync finalizer now uses `--delete`
         | 
| 7 | 
            +
            * Removed hpricot dependency and URL relativizer (now lives in roger_url)relativizer gem)
         | 
| 8 | 
            +
             | 
| 3 9 | 
             
            ## Version 1.8.0
         | 
| 4 10 | 
             
            * Roger Rack application now adheres to match/skip options. Pass them in the rogerfile as follows:
         | 
| 5 11 | 
             
                ```
         | 
    
        data/lib/roger/generators.rb
    CHANGED
    
    | @@ -12,10 +12,12 @@ module Roger | |
| 12 12 | 
             
                def self.register(name, klass = nil)
         | 
| 13 13 | 
             
                  name, klass = generator_name(name, klass)
         | 
| 14 14 |  | 
| 15 | 
            -
                   | 
| 16 | 
            -
                     | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 15 | 
            +
                  if Cli::Generate.tasks.key?(name)
         | 
| 16 | 
            +
                    raise(
         | 
| 17 | 
            +
                      ArgumentError,
         | 
| 18 | 
            +
                      "Generator name '#{name.inspect}' already in use"
         | 
| 19 | 
            +
                    )
         | 
| 20 | 
            +
                  end
         | 
| 19 21 |  | 
| 20 22 | 
             
                  usage = "#{name} #{klass.arguments.map(&:banner).join(' ')}"
         | 
| 21 23 | 
             
                  long_desc = klass.desc || "Run #{name} generator"
         | 
    
        data/lib/roger/rack/roger.rb
    CHANGED
    
    
    
        data/lib/roger/release.rb
    CHANGED
    
    | @@ -235,33 +235,43 @@ module Roger | |
| 235 235 | 
             
                # Checks if build path exists (and cleans it up)
         | 
| 236 236 | 
             
                # Checks if target path exists (if not, creates it)
         | 
| 237 237 | 
             
                def validate_paths!
         | 
| 238 | 
            -
                   | 
| 239 | 
            -
             | 
| 240 | 
            -
             | 
| 241 | 
            -
                  end
         | 
| 238 | 
            +
                  ensure_clean_build_path!
         | 
| 239 | 
            +
                  ensure_existing_target_path!
         | 
| 240 | 
            +
                end
         | 
| 242 241 |  | 
| 243 | 
            -
             | 
| 244 | 
            -
             | 
| 245 | 
            -
             | 
| 246 | 
            -
                   | 
| 242 | 
            +
                def ensure_clean_build_path!
         | 
| 243 | 
            +
                  return unless build_path.exist?
         | 
| 244 | 
            +
             | 
| 245 | 
            +
                  log self, "Cleaning up previous build \"#{build_path}\""
         | 
| 246 | 
            +
                  rm_rf(build_path)
         | 
| 247 | 
            +
                end
         | 
| 248 | 
            +
             | 
| 249 | 
            +
                def ensure_existing_target_path!
         | 
| 250 | 
            +
                  return if target_path.exist?
         | 
| 251 | 
            +
             | 
| 252 | 
            +
                  log self, "Creating target path \"#{target_path}\""
         | 
| 253 | 
            +
                  mkdir target_path
         | 
| 247 254 | 
             
                end
         | 
| 248 255 |  | 
| 249 256 | 
             
                # Checks if the project will be runned
         | 
| 250 | 
            -
                # If config[:blank] is true it will automatically add  | 
| 257 | 
            +
                # If config[:blank] is true it will automatically add Mockup processor
         | 
| 251 258 | 
             
                def validate_stack!
         | 
| 252 259 | 
             
                  return if config[:blank]
         | 
| 253 260 |  | 
| 254 | 
            -
                   | 
| 255 | 
            -
             | 
| 256 | 
            -
             | 
| 261 | 
            +
                  ensure_mockup_processor_in_stack!
         | 
| 262 | 
            +
                  ensure_dir_finalizer_in_stack!
         | 
| 263 | 
            +
                end
         | 
| 257 264 |  | 
| 258 | 
            -
             | 
| 259 | 
            -
             | 
| 260 | 
            -
                  end
         | 
| 265 | 
            +
                def ensure_mockup_processor_in_stack!
         | 
| 266 | 
            +
                  return if find_in_stack(Roger::Release::Processors::Mockup)
         | 
| 261 267 |  | 
| 262 | 
            -
                   | 
| 263 | 
            -
             | 
| 264 | 
            -
             | 
| 268 | 
            +
                  @stack.unshift([Roger::Release::Processors::Mockup.new, {}])
         | 
| 269 | 
            +
                end
         | 
| 270 | 
            +
             | 
| 271 | 
            +
                def ensure_dir_finalizer_in_stack!
         | 
| 272 | 
            +
                  return if find_in_stack(Roger::Release::Finalizers::Dir)
         | 
| 273 | 
            +
             | 
| 274 | 
            +
                  @stack.push([Roger::Release::Finalizers::Dir.new, {}])
         | 
| 265 275 | 
             
                end
         | 
| 266 276 |  | 
| 267 277 | 
             
                # Find a processor in the stack
         | 
| @@ -58,7 +58,7 @@ module Roger::Release::Finalizers | |
| 58 58 | 
             
                    FileUtils.cp_r @release.build_path.to_s + "/.", clone_dir.to_s
         | 
| 59 59 |  | 
| 60 60 | 
             
                    commands = [
         | 
| 61 | 
            -
                      %w(git add . | 
| 61 | 
            +
                      %w(git add .), # 4. Add all files
         | 
| 62 62 | 
             
                      %w(git commit -q -a -m) << "Release #{@release.scm.version}" # 5. Commit
         | 
| 63 63 | 
             
                    ]
         | 
| 64 64 |  | 
| @@ -80,11 +80,10 @@ module Roger | |
| 80 80 | 
             
                  raise ArgumentError, "No :content or :file specified" unless content
         | 
| 81 81 |  | 
| 82 82 | 
             
                  if injection[:processor]
         | 
| 83 | 
            -
                     | 
| 84 | 
            -
             | 
| 85 | 
            -
             | 
| 86 | 
            -
             | 
| 87 | 
            -
                    end
         | 
| 83 | 
            +
                    tmpl = Tilt[injection[:processor]]
         | 
| 84 | 
            +
                    raise(ArgumentError, "Unknown processor #{injection[:processor]}") unless tmpl
         | 
| 85 | 
            +
             | 
| 86 | 
            +
                    (tmpl.new { content }).render
         | 
| 88 87 | 
             
                  else
         | 
| 89 88 | 
             
                    content
         | 
| 90 89 | 
             
                  end
         | 
    
        data/lib/roger/rogerfile.rb
    CHANGED
    
    
    
        data/lib/roger/template.rb
    CHANGED
    
    
    
        data/lib/roger/version.rb
    CHANGED
    
    
    
        data/roger.gemspec
    CHANGED
    
    | @@ -31,16 +31,15 @@ Gem::Specification.new do |s| | |
| 31 31 | 
             
              end
         | 
| 32 32 |  | 
| 33 33 | 
             
              s.add_dependency("thor", ["~> 0.19.0"])
         | 
| 34 | 
            -
              s.add_dependency("rack", [">=  | 
| 34 | 
            +
              s.add_dependency("rack", [">= 2.0.0"])
         | 
| 35 35 | 
             
              s.add_dependency("tilt", ["~> 2.0.1"])
         | 
| 36 | 
            -
              s.add_dependency("mime-types", ["~>  | 
| 37 | 
            -
              s.add_dependency("hpricot", ["= 0.8.4"])
         | 
| 36 | 
            +
              s.add_dependency("mime-types", ["~> 3.1"])
         | 
| 38 37 | 
             
              s.add_dependency("redcarpet", [">= 3.1.1"])
         | 
| 39 38 | 
             
              s.add_dependency("test_construct", "~> 2.0")
         | 
| 40 39 |  | 
| 41 40 | 
             
              s.add_development_dependency("test-unit", "~> 3.0.0")
         | 
| 42 41 | 
             
              s.add_development_dependency("mocha", "~> 1.1.0")
         | 
| 43 42 | 
             
              s.add_development_dependency("simplecov", "~> 0.10.0")
         | 
| 44 | 
            -
              s.add_development_dependency("puma", "~> 3. | 
| 45 | 
            -
              s.add_development_dependency("rubocop", "~> 0. | 
| 43 | 
            +
              s.add_development_dependency("puma", "~> 3.12.0")
         | 
| 44 | 
            +
              s.add_development_dependency("rubocop", "~> 0.49.0")
         | 
| 46 45 | 
             
            end
         | 
    
        data/test/project/Gemfile
    CHANGED
    
    
    
        data/test/project/Rogerfile
    CHANGED
    
    
| @@ -41,8 +41,7 @@ module Roger | |
| 41 41 | 
             
                  assert_includes Cli::Generate.tasks, "mockery"
         | 
| 42 42 | 
             
                end
         | 
| 43 43 |  | 
| 44 | 
            -
                def test_cli_help_shows_all_available_generators
         | 
| 45 | 
            -
                end
         | 
| 44 | 
            +
                def test_cli_help_shows_all_available_generators; end
         | 
| 46 45 |  | 
| 47 46 | 
             
                def test_invoke_mocked_generator
         | 
| 48 47 | 
             
                  Roger::Generators.register ::Generators::MockedGenerator
         | 
    
        data/test/unit/release_test.rb
    CHANGED
    
    | @@ -19,9 +19,9 @@ module Roger | |
| 19 19 |  | 
| 20 20 | 
             
                  # Running a blank release
         | 
| 21 21 | 
             
                  @rogerfile.release(blank: true) do |r|
         | 
| 22 | 
            -
                    r.use  | 
| 22 | 
            +
                    r.use(proc { |release|
         | 
| 23 23 | 
             
                      assert_equal release.project.mode, :release
         | 
| 24 | 
            -
                    }
         | 
| 24 | 
            +
                    })
         | 
| 25 25 | 
             
                  end
         | 
| 26 26 |  | 
| 27 27 | 
             
                  @project.release.run!
         | 
| @@ -43,14 +43,6 @@ module Roger | |
| 43 43 | 
             
                  assert_equal Roger::Release::Processors::Mockup, release.stack.first.first.class
         | 
| 44 44 | 
             
                end
         | 
| 45 45 |  | 
| 46 | 
            -
                def test_release_should_add_url_relativizer_by_default
         | 
| 47 | 
            -
                  release = @rogerfile.release
         | 
| 48 | 
            -
                  release.run!
         | 
| 49 | 
            -
             | 
| 50 | 
            -
                  assert !release.stack.empty?
         | 
| 51 | 
            -
                  assert_equal Roger::Release::Processors::UrlRelativizer, release.stack[-2].first.class
         | 
| 52 | 
            -
                end
         | 
| 53 | 
            -
             | 
| 54 46 | 
             
                def test_release_should_add_dir_finalizer_by_default
         | 
| 55 47 | 
             
                  release = @rogerfile.release
         | 
| 56 48 | 
             
                  release.run!
         | 
| @@ -1,4 +1,5 @@ | |
| 1 1 | 
             
            # encoding: UTF-8
         | 
| 2 | 
            +
             | 
| 2 3 | 
             
            # Generators register themself on the CLI module
         | 
| 3 4 | 
             
            require "test_helper"
         | 
| 4 5 | 
             
            require "./lib/roger/renderer.rb"
         | 
| @@ -120,7 +121,7 @@ module Roger | |
| 120 121 | 
             
                    # "md.erb" => "html",
         | 
| 121 122 | 
             
                    "css.erb" => "css",
         | 
| 122 123 | 
             
                    "json.erb" => "json",
         | 
| 123 | 
            -
                    "js.erb" => " | 
| 124 | 
            +
                    "js.erb" => "ecma"
         | 
| 124 125 | 
             
                  }
         | 
| 125 126 |  | 
| 126 127 | 
             
                  mime_types.each do |ext, ext_out|
         | 
    
        data/test/unit/server_test.rb
    CHANGED
    
    | @@ -36,7 +36,6 @@ module Roger | |
| 36 36 |  | 
| 37 37 | 
             
                  next_port = @server.send(:free_port_for_host_above, @host, port)
         | 
| 38 38 | 
             
                  assert next_port > port
         | 
| 39 | 
            -
             | 
| 40 39 | 
             
                ensure
         | 
| 41 40 | 
             
                  s.close
         | 
| 42 41 | 
             
                end
         | 
| @@ -44,8 +43,7 @@ module Roger | |
| 44 43 | 
             
                # Test to see if env["roger.project"] is set
         | 
| 45 44 | 
             
                def test_env_roger_project_is_set
         | 
| 46 45 | 
             
                  test = Class.new do
         | 
| 47 | 
            -
                    def initialize(_app)
         | 
| 48 | 
            -
                    end
         | 
| 46 | 
            +
                    def initialize(_app); end
         | 
| 49 47 |  | 
| 50 48 | 
             
                    def call(env)
         | 
| 51 49 | 
             
                      [200, {}, [env["roger.project"].object_id.to_s]]
         | 
| @@ -1,4 +1,5 @@ | |
| 1 1 | 
             
            # encoding: UTF-8
         | 
| 2 | 
            +
             | 
| 2 3 | 
             
            # Generators register themself on the CLI module
         | 
| 3 4 | 
             
            require "test_helper"
         | 
| 4 5 | 
             
            require "./lib/roger/template.rb"
         | 
| @@ -23,7 +24,7 @@ module Roger | |
| 23 24 |  | 
| 24 25 | 
             
                def test_render_with_block
         | 
| 25 26 | 
             
                  template = Template.new("<%= yield %>", {}, source_path: "test.erb")
         | 
| 26 | 
            -
                  assert_equal "inner", template.render { "inner" }
         | 
| 27 | 
            +
                  assert_equal "inner", (template.render { "inner" })
         | 
| 27 28 | 
             
                end
         | 
| 28 29 |  | 
| 29 30 | 
             
                def test_data
         | 
    
        data/test/unit/test_test.rb
    CHANGED
    
    | @@ -1,4 +1,5 @@ | |
| 1 1 | 
             
            # encoding: UTF-8
         | 
| 2 | 
            +
             | 
| 2 3 | 
             
            require "test_helper"
         | 
| 3 4 | 
             
            require "./lib/roger/test.rb"
         | 
| 4 5 | 
             
            require "roger/testing/mock_project"
         | 
| @@ -27,9 +28,9 @@ module Roger | |
| 27 28 | 
             
                  assert_equal @project.mode, nil
         | 
| 28 29 |  | 
| 29 30 | 
             
                  @rogerfile.test do |t|
         | 
| 30 | 
            -
                    t.use  | 
| 31 | 
            +
                    t.use(proc { |test|
         | 
| 31 32 | 
             
                      assert_equal test.project.mode, :test
         | 
| 32 | 
            -
                    }
         | 
| 33 | 
            +
                    })
         | 
| 33 34 | 
             
                  end
         | 
| 34 35 |  | 
| 35 36 | 
             
                  @project.test.run!
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: roger
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.9.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Flurin Egger
         | 
| @@ -10,7 +10,7 @@ authors: | |
| 10 10 | 
             
            autorequire: 
         | 
| 11 11 | 
             
            bindir: bin
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 | 
            -
            date:  | 
| 13 | 
            +
            date: 2018-09-24 00:00:00.000000000 Z
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: thor
         | 
| @@ -32,14 +32,14 @@ dependencies: | |
| 32 32 | 
             
                requirements:
         | 
| 33 33 | 
             
                - - ">="
         | 
| 34 34 | 
             
                  - !ruby/object:Gem::Version
         | 
| 35 | 
            -
                    version:  | 
| 35 | 
            +
                    version: 2.0.0
         | 
| 36 36 | 
             
              type: :runtime
         | 
| 37 37 | 
             
              prerelease: false
         | 
| 38 38 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 39 39 | 
             
                requirements:
         | 
| 40 40 | 
             
                - - ">="
         | 
| 41 41 | 
             
                  - !ruby/object:Gem::Version
         | 
| 42 | 
            -
                    version:  | 
| 42 | 
            +
                    version: 2.0.0
         | 
| 43 43 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 44 44 | 
             
              name: tilt
         | 
| 45 45 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -60,28 +60,14 @@ dependencies: | |
| 60 60 | 
             
                requirements:
         | 
| 61 61 | 
             
                - - "~>"
         | 
| 62 62 | 
             
                  - !ruby/object:Gem::Version
         | 
| 63 | 
            -
                    version: ' | 
| 63 | 
            +
                    version: '3.1'
         | 
| 64 64 | 
             
              type: :runtime
         | 
| 65 65 | 
             
              prerelease: false
         | 
| 66 66 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 67 67 | 
             
                requirements:
         | 
| 68 68 | 
             
                - - "~>"
         | 
| 69 69 | 
             
                  - !ruby/object:Gem::Version
         | 
| 70 | 
            -
                    version: ' | 
| 71 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 72 | 
            -
              name: hpricot
         | 
| 73 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 74 | 
            -
                requirements:
         | 
| 75 | 
            -
                - - '='
         | 
| 76 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 77 | 
            -
                    version: 0.8.4
         | 
| 78 | 
            -
              type: :runtime
         | 
| 79 | 
            -
              prerelease: false
         | 
| 80 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 81 | 
            -
                requirements:
         | 
| 82 | 
            -
                - - '='
         | 
| 83 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 84 | 
            -
                    version: 0.8.4
         | 
| 70 | 
            +
                    version: '3.1'
         | 
| 85 71 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 86 72 | 
             
              name: redcarpet
         | 
| 87 73 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -158,28 +144,28 @@ dependencies: | |
| 158 144 | 
             
                requirements:
         | 
| 159 145 | 
             
                - - "~>"
         | 
| 160 146 | 
             
                  - !ruby/object:Gem::Version
         | 
| 161 | 
            -
                    version: 3. | 
| 147 | 
            +
                    version: 3.12.0
         | 
| 162 148 | 
             
              type: :development
         | 
| 163 149 | 
             
              prerelease: false
         | 
| 164 150 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 165 151 | 
             
                requirements:
         | 
| 166 152 | 
             
                - - "~>"
         | 
| 167 153 | 
             
                  - !ruby/object:Gem::Version
         | 
| 168 | 
            -
                    version: 3. | 
| 154 | 
            +
                    version: 3.12.0
         | 
| 169 155 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 170 156 | 
             
              name: rubocop
         | 
| 171 157 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 172 158 | 
             
                requirements:
         | 
| 173 159 | 
             
                - - "~>"
         | 
| 174 160 | 
             
                  - !ruby/object:Gem::Version
         | 
| 175 | 
            -
                    version: 0. | 
| 161 | 
            +
                    version: 0.49.0
         | 
| 176 162 | 
             
              type: :development
         | 
| 177 163 | 
             
              prerelease: false
         | 
| 178 164 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 179 165 | 
             
                requirements:
         | 
| 180 166 | 
             
                - - "~>"
         | 
| 181 167 | 
             
                  - !ruby/object:Gem::Version
         | 
| 182 | 
            -
                    version: 0. | 
| 168 | 
            +
                    version: 0.49.0
         | 
| 183 169 | 
             
            description: See homepage for more information.
         | 
| 184 170 | 
             
            email:
         | 
| 185 171 | 
             
            - info@digitpaint.nl
         | 
| @@ -241,7 +227,6 @@ files: | |
| 241 227 | 
             
            - lib/roger/release/injector.rb
         | 
| 242 228 | 
             
            - lib/roger/release/processors.rb
         | 
| 243 229 | 
             
            - lib/roger/release/processors/mockup.rb
         | 
| 244 | 
            -
            - lib/roger/release/processors/url_relativizer.rb
         | 
| 245 230 | 
             
            - lib/roger/release/scm.rb
         | 
| 246 231 | 
             
            - lib/roger/release/scm/fixed.rb
         | 
| 247 232 | 
             
            - lib/roger/release/scm/git.rb
         | 
| @@ -335,7 +320,6 @@ files: | |
| 335 320 | 
             
            - test/unit/release/finalizers/zip_test.rb
         | 
| 336 321 | 
             
            - test/unit/release/injector_test.rb
         | 
| 337 322 | 
             
            - test/unit/release/processors/mockup_test.rb
         | 
| 338 | 
            -
            - test/unit/release/processors/url_relativizer_test.rb
         | 
| 339 323 | 
             
            - test/unit/release/processors_test.rb
         | 
| 340 324 | 
             
            - test/unit/release/scm/base_test.rb
         | 
| 341 325 | 
             
            - test/unit/release/scm/fixed_test.rb
         | 
| @@ -372,7 +356,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 372 356 | 
             
                  version: '0'
         | 
| 373 357 | 
             
            requirements: []
         | 
| 374 358 | 
             
            rubyforge_project: 
         | 
| 375 | 
            -
            rubygems_version: 2. | 
| 359 | 
            +
            rubygems_version: 2.7.7
         | 
| 376 360 | 
             
            signing_key: 
         | 
| 377 361 | 
             
            specification_version: 4
         | 
| 378 362 | 
             
            summary: Roger is a set of tools to create self-containing HTML mockups.
         | 
| @@ -452,7 +436,6 @@ test_files: | |
| 452 436 | 
             
            - test/unit/release/finalizers/zip_test.rb
         | 
| 453 437 | 
             
            - test/unit/release/injector_test.rb
         | 
| 454 438 | 
             
            - test/unit/release/processors/mockup_test.rb
         | 
| 455 | 
            -
            - test/unit/release/processors/url_relativizer_test.rb
         | 
| 456 439 | 
             
            - test/unit/release/processors_test.rb
         | 
| 457 440 | 
             
            - test/unit/release/scm/base_test.rb
         | 
| 458 441 | 
             
            - test/unit/release/scm/fixed_test.rb
         | 
| @@ -1,74 +0,0 @@ | |
| 1 | 
            -
            require "hpricot"
         | 
| 2 | 
            -
            require File.dirname(__FILE__) + "../../../resolver"
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            module Roger::Release::Processors
         | 
| 5 | 
            -
              # URL relativizer processor
         | 
| 6 | 
            -
              # The relativizer can be used to rewrite absolute paths in attributes to relative paths
         | 
| 7 | 
            -
              # during release.
         | 
| 8 | 
            -
              class UrlRelativizer < Base
         | 
| 9 | 
            -
                self.name = :url_relativizer
         | 
| 10 | 
            -
             | 
| 11 | 
            -
                def default_options
         | 
| 12 | 
            -
                  {
         | 
| 13 | 
            -
                    url_attributes: %w(src href action),
         | 
| 14 | 
            -
                    match: ["**/*.html"],
         | 
| 15 | 
            -
                    skip: []
         | 
| 16 | 
            -
                  }
         | 
| 17 | 
            -
                end
         | 
| 18 | 
            -
             | 
| 19 | 
            -
                def perform
         | 
| 20 | 
            -
                  log_call
         | 
| 21 | 
            -
             | 
| 22 | 
            -
                  @resolver = Roger::Resolver.new(release.build_path)
         | 
| 23 | 
            -
             | 
| 24 | 
            -
                  relativize_attributes_in_files(
         | 
| 25 | 
            -
                    release,
         | 
| 26 | 
            -
                    options[:url_attributes],
         | 
| 27 | 
            -
                    release.get_files(options[:match], options[:skip])
         | 
| 28 | 
            -
                  )
         | 
| 29 | 
            -
                end
         | 
| 30 | 
            -
             | 
| 31 | 
            -
                protected
         | 
| 32 | 
            -
             | 
| 33 | 
            -
                def log_call
         | 
| 34 | 
            -
                  log_message = "Relativizing all URLS in #{@options[:match].inspect}"
         | 
| 35 | 
            -
                  log_message << "files in attributes #{@options[:url_attributes].inspect},"
         | 
| 36 | 
            -
                  log_message << "skipping #{@options[:skip].any? ? @options[:skip].inspect : 'none'}"
         | 
| 37 | 
            -
                  release.log(self, log_message)
         | 
| 38 | 
            -
                end
         | 
| 39 | 
            -
             | 
| 40 | 
            -
                def relativize_attributes_in_files(release, attributes, files)
         | 
| 41 | 
            -
                  files.each do |file_path|
         | 
| 42 | 
            -
                    release.debug(self, "Relativizing URLS in #{file_path}") do
         | 
| 43 | 
            -
                      relativize_attributes_in_file(release, attributes, file_path)
         | 
| 44 | 
            -
                    end
         | 
| 45 | 
            -
                  end
         | 
| 46 | 
            -
                end
         | 
| 47 | 
            -
             | 
| 48 | 
            -
                def relativize_attributes_in_file(release, attributes, file_path)
         | 
| 49 | 
            -
                  orig_source = File.read(file_path)
         | 
| 50 | 
            -
                  File.open(file_path, "w") do |f|
         | 
| 51 | 
            -
                    f.write(relativize_attributes_in_source(release, attributes, orig_source, file_path))
         | 
| 52 | 
            -
                  end
         | 
| 53 | 
            -
                end
         | 
| 54 | 
            -
             | 
| 55 | 
            -
                def relativize_attributes_in_source(release, attributes, source, file_path)
         | 
| 56 | 
            -
                  doc = Hpricot(source)
         | 
| 57 | 
            -
                  attributes.each do |attribute|
         | 
| 58 | 
            -
                    (doc / "*[@#{attribute}]").each do |tag|
         | 
| 59 | 
            -
                      converted_url = @resolver.url_to_relative_url(tag[attribute], file_path)
         | 
| 60 | 
            -
                      release.debug(self, "Converting '#{tag[attribute]}' to '#{converted_url}'")
         | 
| 61 | 
            -
                      case converted_url
         | 
| 62 | 
            -
                      when String
         | 
| 63 | 
            -
                        tag[attribute] = converted_url
         | 
| 64 | 
            -
                      when nil
         | 
| 65 | 
            -
                        release.log(self, "Could not resolve link #{tag[attribute]} in #{file_path}")
         | 
| 66 | 
            -
                      end
         | 
| 67 | 
            -
                    end
         | 
| 68 | 
            -
                  end
         | 
| 69 | 
            -
                  doc.to_original_html
         | 
| 70 | 
            -
                end
         | 
| 71 | 
            -
              end
         | 
| 72 | 
            -
            end
         | 
| 73 | 
            -
             | 
| 74 | 
            -
            Roger::Release::Processors.register(Roger::Release::Processors::UrlRelativizer)
         | 
| @@ -1,35 +0,0 @@ | |
| 1 | 
            -
            require "test_helper"
         | 
| 2 | 
            -
            require "roger/testing/mock_release"
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            module Roger
         | 
| 5 | 
            -
              # Test UrlRelativizer
         | 
| 6 | 
            -
              class UrlRelativizerTest < ::Test::Unit::TestCase
         | 
| 7 | 
            -
                def setup
         | 
| 8 | 
            -
                  @release = Testing::MockRelease.new
         | 
| 9 | 
            -
                  @processor = Roger::Release::Processors::UrlRelativizer.new
         | 
| 10 | 
            -
                end
         | 
| 11 | 
            -
             | 
| 12 | 
            -
                def teardown
         | 
| 13 | 
            -
                  @release.destroy
         | 
| 14 | 
            -
                  @release = nil
         | 
| 15 | 
            -
                end
         | 
| 16 | 
            -
             | 
| 17 | 
            -
                def test_empty_release_runs
         | 
| 18 | 
            -
                  files = @processor.call(@release)
         | 
| 19 | 
            -
                  assert_equal 0, files.length
         | 
| 20 | 
            -
                end
         | 
| 21 | 
            -
             | 
| 22 | 
            -
                def test_basic_relativization
         | 
| 23 | 
            -
                  @release.project.construct.directory "build/sub" do |dir|
         | 
| 24 | 
            -
                    dir.file "test.html", "<a href='/test.html'>link</a>"
         | 
| 25 | 
            -
                  end
         | 
| 26 | 
            -
                  @release.project.construct.file "build/test.html"
         | 
| 27 | 
            -
             | 
| 28 | 
            -
                  files = @processor.call(@release)
         | 
| 29 | 
            -
                  assert_equal 2, files.length
         | 
| 30 | 
            -
             | 
| 31 | 
            -
                  contents = File.read((@release.build_path + "sub/test.html").to_s)
         | 
| 32 | 
            -
                  assert contents.include?("../test.html")
         | 
| 33 | 
            -
                end
         | 
| 34 | 
            -
              end
         | 
| 35 | 
            -
            end
         |