hanami-assets 1.2.0 → 1.3.0.beta1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 02e0c704c7030f9ee7a4353499cd4da8d9c855c1a4441bb0c4280c58ded93ddc
4
- data.tar.gz: dce013f39503e64f36a0072698c005d12415fd8182466f3b0df04c20bf503081
3
+ metadata.gz: '04581104608ddd3d41551cd5ae26efff9e735a41ddeef42b656f65d839e8b9ef'
4
+ data.tar.gz: 986c4559a71b18de44b17aed0a0958969c73c3b1a3a21eb8cb474f3ebdcd20e3
5
5
  SHA512:
6
- metadata.gz: 9a5909e52c9d0f529e410d97e94b581aa4fb77e645c0e3942b313fcc665d36e804e90ca1dbe89591a9454bd4de234a637ae6dc3e714265b00573ff824dfa8209
7
- data.tar.gz: 7e2392ac5f2249d8b908b787276c9aa81fdcb5b50f5af42aaeaf2e076984ed01db4e9be219fe46c37170da7407bb0a277d928a2509dd6f90a46159a83534d8c7
6
+ metadata.gz: e285ddacc5fa3755405c16b0872274412622503e2046280f8c87185c810c023df315499606dc7b381c1902c2a0a702c8ef36e08295fee9561cb5907997cd797e
7
+ data.tar.gz: c1ede8b4430fb8133ee91b33a8e2abbf3cfeb1d444a28b5b4f5c1ad3633fd2b8d38f6539dd1350ee98a51cb7c8d24f24d84f6f2973d2e15000fdf7b8140e42c3
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # Hanami::Assets
2
2
  Assets management for Ruby web applications
3
3
 
4
+ ## v1.3.0.beta1 - 2018-08-08
5
+ ### Added
6
+ - [Paweł Świątkowski] Preserve directory structure of assets at the precompile time.
7
+ - [Luca Guidi] Official support for JRuby 9.2.0.0
8
+
4
9
  ## v1.2.0 - 2018-04-11
5
10
 
6
11
  ## v1.2.0.rc2 - 2018-04-06
data/README.md CHANGED
@@ -4,11 +4,11 @@ Assets management for Ruby web projects
4
4
 
5
5
  ## Status
6
6
 
7
- [![Gem Version](http://img.shields.io/gem/v/hanami-assets.svg)](https://badge.fury.io/rb/hanami-assets)
8
- [![Build Status](http://img.shields.io/travis/hanami/assets/master.svg)](https://travis-ci.org/hanami/assets?branch=master)
9
- [![Coverage](http://img.shields.io/coveralls/hanami/assets/master.svg)](https://coveralls.io/r/hanami/assets)
10
- [![Code Climate](http://img.shields.io/codeclimate/github/hanami/assets.svg)](https://codeclimate.com/github/hanami/assets)
11
- [![Dependencies](http://img.shields.io/gemnasium/hanami/assets.svg)](https://gemnasium.com/hanami/assets)
7
+ [![Gem Version](https://badge.fury.io/rb/hanami-assets.svg)](https://badge.fury.io/rb/hanami-assets)
8
+ [![TravisCI](https://travis-ci.org/hanami/assets.svg?branch=master)](https://travis-ci.org/hanami/assets)
9
+ [![CircleCI](https://circleci.com/gh/hanami/assets/tree/master.svg?style=svg)](https://circleci.com/gh/hanami/assets/tree/master)
10
+ [![Test Coverage](https://codecov.io/gh/hanami/assets/branch/master/graph/badge.svg)](https://codecov.io/gh/hanami/assets)
11
+ [![Depfu](https://badges.depfu.com/badges/4b37347bd74042ff96477495cc16531d/overview.svg)](https://depfu.com/github/hanami/assets?project=Bundler)
12
12
  [![Inline Docs](http://inch-ci.org/github/hanami/assets.svg)](http://inch-ci.org/github/hanami/assets)
13
13
 
14
14
  ## Contact
@@ -20,8 +20,8 @@ Gem::Specification.new do |spec|
20
20
  spec.require_paths = ['lib']
21
21
  spec.required_ruby_version = '>= 2.3.0'
22
22
 
23
- spec.add_runtime_dependency 'hanami-utils', '~> 1.2'
24
- spec.add_runtime_dependency 'hanami-helpers', '~> 1.2'
23
+ spec.add_runtime_dependency 'hanami-utils', '~> 1.3.beta'
24
+ spec.add_runtime_dependency 'hanami-helpers', '~> 1.3.beta'
25
25
  spec.add_runtime_dependency 'tilt', '~> 2.0', '>= 2.0.2'
26
26
 
27
27
  spec.add_development_dependency 'bundler'
@@ -148,13 +148,40 @@ module Hanami
148
148
  # @since 0.1.0
149
149
  # @api private
150
150
  def destination
151
- @destination ||= @configuration.destination_directory.join(basename)
151
+ @destination ||= @configuration.destination_directory.join(destination_name)
152
152
  end
153
153
 
154
- # @since 0.1.0
154
+ # @since 1.3.0
155
155
  # @api private
156
- def basename
156
+ def relative_destination_name(name: @name, add_prefix: true)
157
+ result = name.to_s
158
+ base_dir = @configuration.base_directories.detect { |dir| result.start_with?(dir) }
159
+ if base_dir
160
+ prefix = @configuration.prefix
161
+ base_dir = prefix.join(base_dir) if add_prefix
162
+ result = name.relative_path_from(Pathname.new(base_dir))
163
+ end
164
+ result
165
+ end
166
+
167
+ # @since 1.3.0
168
+ # @api private
169
+ def absolute_destination_name
157
170
  result = ::File.basename(@name)
171
+ @configuration.sources.each do |source|
172
+ if @name.to_s.start_with?(source.to_s)
173
+ result = @name.relative_path_from(source)
174
+ break
175
+ end
176
+ end
177
+ relative_destination_name(name: Pathname.new(result), add_prefix: false)
178
+ end
179
+
180
+ # @since 0.1.0
181
+ # @api private
182
+ def destination_name
183
+ result = @name.relative? ? relative_destination_name : absolute_destination_name
184
+ result = result.to_s
158
185
 
159
186
  if compile?
160
187
  result.scan(/\A[[[:alnum:]][\-\_]]*\.[[\w]]*/).first || result
@@ -61,7 +61,7 @@ module Hanami
61
61
  #
62
62
  # @since 0.1.0
63
63
  # @api private
64
- def method_missing(*) # rubocop:disable Style/MethodMissing
64
+ def method_missing(*) # rubocop:disable Style/MethodMissingSuper
65
65
  ::Kernel.raise(
66
66
  ::Hanami::Assets::MissingManifestFileError.new(@configuration.manifest_path)
67
67
  )
@@ -82,7 +82,7 @@ module Hanami
82
82
  def self.for(base)
83
83
  # TODO: this implementation is similar to Hanami::Controller::Configuration consider to extract it into Hanami::Utils
84
84
  namespace = Utils::String.namespace(base)
85
- framework = Utils::Class.load_from_pattern!("(#{namespace}|Hanami)::Assets")
85
+ framework = Utils::Class.load("#{namespace}::Assets") || Utils::Class.load!('Hanami::Assets')
86
86
  framework.configuration
87
87
  end
88
88
 
@@ -384,6 +384,16 @@ module Hanami
384
384
  pathname.absolute? ? pathname : find(file)
385
385
  end
386
386
 
387
+ # @since 1.3.0
388
+ def base_directories
389
+ @base_directories ||= %w[
390
+ stylesheets
391
+ javascripts
392
+ images
393
+ fonts
394
+ ]
395
+ end
396
+
387
397
  # Find a file from sources
388
398
  #
389
399
  # @since 0.1.0
@@ -3,6 +3,6 @@ module Hanami
3
3
  # Defines the version
4
4
  #
5
5
  # @since 0.1.0
6
- VERSION = '1.2.0'.freeze
6
+ VERSION = '1.3.0.beta1'.freeze
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hanami-assets
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luca Guidi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-11 00:00:00.000000000 Z
11
+ date: 2018-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hanami-utils
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.2'
19
+ version: 1.3.beta
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.2'
26
+ version: 1.3.beta
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: hanami-helpers
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.2'
33
+ version: 1.3.beta
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.2'
40
+ version: 1.3.beta
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: tilt
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -240,12 +240,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
240
240
  version: 2.3.0
241
241
  required_rubygems_version: !ruby/object:Gem::Requirement
242
242
  requirements:
243
- - - ">="
243
+ - - ">"
244
244
  - !ruby/object:Gem::Version
245
- version: '0'
245
+ version: 1.3.1
246
246
  requirements: []
247
247
  rubyforge_project:
248
- rubygems_version: 2.7.6
248
+ rubygems_version: 2.7.7
249
249
  signing_key:
250
250
  specification_version: 4
251
251
  summary: Assets management