hanami-assets 1.2.0 → 1.3.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
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