precompiled_assets 0.1.0 → 0.2.0

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: d8def5c63790a7b16733d25ec1875e7fb294dca734ef389cc26f30b093b41c39
4
- data.tar.gz: a3db5b16a4dd0fbd55d3e8d0f907de84b3db35269c5c005ee97891cb612d798a
3
+ metadata.gz: 0f0320f9e06f583c9ef4ff7bbcd1aef431a96aec01aa6a45666545c4041af3f9
4
+ data.tar.gz: 46a10e8013605de64bc3e3f409249f0820df85290900b521d582408a9086e136
5
5
  SHA512:
6
- metadata.gz: a794f9316533f5422397e3ea950e1529cef6c64326bcec41df60ef122464833ca77e49222fe0c1ce9f7e21a963ddf8ba9007e2a774ffd8f5717187acf37b2a4c
7
- data.tar.gz: cc1743713e3a27b962f0e4910cc5f67eec72ef00345b6d07da164d08748356382603900d3ee2d058fab02bb9411bcf80b43727408160eab60854142aa741dbd5
6
+ metadata.gz: 3758f0bc4631ea3bc7e1b0f32ca3d93591e01999715567e245f6f099fa8c4882e44291c898f5fa394308a9fdd8ac054c31e756a16585ce845632ee46c3e7f866
7
+ data.tar.gz: 7cff3b5686510acfda6d36c0bc3e7dde5347bdb3a25ebbb336a96908d0a331507c4e633cfab3a8b22845df59472b5cbbd9a04c6969d0608e7e0524d2eb71c68c
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.2.0] - 2022-08-04
4
+
5
+ - `Manifest#updated_at` now exposes manifest's modification time.
6
+ - Updated readme document.
7
+
3
8
  ## [0.1.0] - 2022-07-27
4
9
 
5
10
  - First public release.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- precompiled_assets (0.1.0)
4
+ precompiled_assets (0.2.0)
5
5
  railties (>= 6.0.0)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -21,6 +21,8 @@ If bundler is not being used to manage dependencies, install the gem by executin
21
21
 
22
22
  ## Usage
23
23
 
24
+ ### Configuration
25
+
24
26
  In your `config/application.rb`, configure an `asset_path` which should be in your `public/` directory:
25
27
 
26
28
  ```ruby
@@ -45,6 +47,26 @@ Once that is set up, `javascript_include_tag('application.js')` or `image_path('
45
47
  In the `development` Rails environment, the gem detects changes to the manifest and reloads the manifest automatically.
46
48
  Hence, your development experience should be similar to other stacks, like with Propshaft or esbuild: You change assets, the manifest changes, Rails will then resolve to the updated asset paths. 🎉
47
49
 
50
+ ### Accessing manifest or resolver manually
51
+
52
+ In views, you can use the helper method `asset_resolver` to access the (cached) resolver instance.
53
+ Otherwise, instantiate via `PrecompiledAssets::Resolver.new`.
54
+
55
+ To resolve an asset path, use `Resolver#resolve`:
56
+ ```ruby
57
+ resolver = PrecompiledAssets::Resolver.new
58
+ resolver.resolve('application.js')
59
+ # => "/assets/application-HP2LS2UH.js"
60
+ ```
61
+
62
+ If you want to know if assets were updated (e.g. when using etags), use `Manifest#updated_at`:
63
+ ```ruby
64
+ resolver = PrecompiledAssets::Resolver.new
65
+ resolver.manifest.updated_at
66
+ # => (returns a Time instance)
67
+ ```
68
+
69
+ Side note: `Manifest#updated_at` reads its motification time from the file system. If your production environments use a distributed file system, it is not recommended for etagging in production.
48
70
 
49
71
 
50
72
  ## Development
@@ -54,6 +76,12 @@ After checking out the repo, run `bin/setup` to install dependencies. You can al
54
76
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
55
77
 
56
78
 
79
+ ## Roadmap
80
+
81
+ 1. Add tests
82
+ 2. Integrate into more existing applications to discover new features that we might need.
83
+
84
+
57
85
  ## Contributing
58
86
 
59
87
  I am very eager to keep this gem lightweight and on topic.
@@ -19,9 +19,14 @@ module PrecompiledAssets
19
19
  digested_paths.include?(path_or_pathname.to_s)
20
20
  end
21
21
 
22
+ def updated_at
23
+ # Not intended for use in production environments.
24
+ @mtime || fetch_mtime
25
+ end
26
+
22
27
  def expired?
23
28
  # Not intended for use in production environments.
24
- @mtime && @mtime != fetch_mtime
29
+ @time && @time != fetch_mtime
25
30
  end
26
31
 
27
32
  private
@@ -1,3 +1,3 @@
1
1
  module PrecompiledAssets
2
- VERSION = '0.1.0'.freeze
2
+ VERSION = '0.2.0'.freeze
3
3
  end
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
16
16
  'rubygems_mfa_required' => 'true',
17
17
  'homepage_uri' => spec.homepage,
18
18
  'source_code_uri' => spec.homepage,
19
- 'changelog_uri' => "#{spec.homepage}/CHANGELOG.md",
19
+ 'changelog_uri' => "#{spec.homepage}/blob/main/CHANGELOG.md",
20
20
  }
21
21
 
22
22
  spec.files = Dir.chdir(__dir__) do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: precompiled_assets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arne Hartherz
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-07-27 00:00:00.000000000 Z
11
+ date: 2022-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -57,7 +57,7 @@ metadata:
57
57
  rubygems_mfa_required: 'true'
58
58
  homepage_uri: https://github.com/makandra/precompiled_assets
59
59
  source_code_uri: https://github.com/makandra/precompiled_assets
60
- changelog_uri: https://github.com/makandra/precompiled_assets/CHANGELOG.md
60
+ changelog_uri: https://github.com/makandra/precompiled_assets/blob/main/CHANGELOG.md
61
61
  post_install_message:
62
62
  rdoc_options: []
63
63
  require_paths: