assets_deployer 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 +4 -4
- data/README.md +25 -6
- data/lib/assets_deployer.rb +7 -2
- data/lib/assets_deployer/configuration.rb +14 -4
- data/lib/assets_deployer/deployer.rb +5 -4
- data/lib/assets_deployer/storage_builder.rb +3 -4
- data/lib/assets_deployer/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed1caa68bb86b53fcf9383ddf0a6590e279fdbb7
|
4
|
+
data.tar.gz: 8a1e18f651adec31f4b544d1df683269539c7cc4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5a07b9b9d0a04432e093aa7bc4cf43d7c9cee0ff7b17bb033d1e99530546c20c79d9ac106a61453c41e076c7d9dc05131ea4aabfde2cd58a30dea043b6387e19
|
7
|
+
data.tar.gz: 7f1a182179ba9b5c270fcd5f9604a0209bc1dee4a92ad14af1d4e237eafa06594a9dc9fd5f5e6f989f5ba334c5035f624f2ca81253c8438b31224adb8d258877
|
data/README.md
CHANGED
@@ -1,8 +1,5 @@
|
|
1
1
|
# AssetsDeployer
|
2
|
-
|
3
|
-
|
4
|
-
## Usage
|
5
|
-
How to use my plugin.
|
2
|
+
Asset files deployer for rails application.
|
6
3
|
|
7
4
|
## Installation
|
8
5
|
Add this line to your application's Gemfile:
|
@@ -21,8 +18,30 @@ Or install it yourself as:
|
|
21
18
|
$ gem install assets_deployer
|
22
19
|
```
|
23
20
|
|
24
|
-
##
|
25
|
-
|
21
|
+
## Usage
|
22
|
+
|
23
|
+
### Rails
|
24
|
+
Add initializer at `config/iniitializers/assets_deployer.rb`
|
25
|
+
```rb
|
26
|
+
AssetsDeployer.configure do |config|
|
27
|
+
config.assets.root_path = Rails.root.join('public')
|
28
|
+
config.assets.prefix_paths = ['assets', 'packs']
|
29
|
+
config.assets.ignore_paths = ['packs/manifest.json']
|
30
|
+
# your storage service configurations
|
31
|
+
config.storage.name = 'S3'
|
32
|
+
config.storage.options[:bucket] = 'bucket_name'
|
33
|
+
config.storage.options[:prefix_key] = 'project_name'
|
34
|
+
# credentials
|
35
|
+
# Also, you can use environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) or instance profile credentials
|
36
|
+
config.storage.credentials[:access_key_id] = 'aws_access_key_id'
|
37
|
+
config.storage.credentials[:secret_access_key] = 'aws_secret_access_key'
|
38
|
+
end
|
39
|
+
```
|
40
|
+
|
41
|
+
then you can use this rails command
|
42
|
+
```console
|
43
|
+
$ bundle exec rails assets:precompile assets:deploy
|
44
|
+
```
|
26
45
|
|
27
46
|
## License
|
28
47
|
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
data/lib/assets_deployer.rb
CHANGED
@@ -4,7 +4,13 @@ require 'assets_deployer/storage_builder'
|
|
4
4
|
|
5
5
|
module AssetsDeployer
|
6
6
|
def self.run
|
7
|
-
deployer = Deployer.new(
|
7
|
+
deployer = Deployer.new(
|
8
|
+
storage: storage,
|
9
|
+
root_path: config.assets.root_path,
|
10
|
+
prefix_paths: config.assets.prefix_paths,
|
11
|
+
ignore_paths: config.assets.ignore_paths
|
12
|
+
)
|
13
|
+
|
8
14
|
deployer.run
|
9
15
|
end
|
10
16
|
|
@@ -18,7 +24,6 @@ module AssetsDeployer
|
|
18
24
|
|
19
25
|
def self.storage
|
20
26
|
builder = StorageBuilder.new(
|
21
|
-
platform: config.storage.platform,
|
22
27
|
name: config.storage.name,
|
23
28
|
credentials: config.storage.credentials,
|
24
29
|
options: config.storage.options
|
@@ -1,16 +1,26 @@
|
|
1
1
|
module AssetsDeployer
|
2
2
|
class Configuration
|
3
|
-
attr_accessor :
|
4
|
-
:
|
5
|
-
:assets_prefixes
|
3
|
+
attr_accessor :assets,
|
4
|
+
:storage
|
6
5
|
|
7
|
-
class
|
6
|
+
class AssetsConfiguration < Struct.new(:root_path, :prefix_paths, :ignore_paths)
|
7
|
+
def initialize
|
8
|
+
self.prefix_paths = ['assets']
|
9
|
+
self.ignore_paths = []
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class StorageConfiguration < Struct.new(:name, :credentials, :options)
|
8
14
|
def initialize
|
9
15
|
self.credentials = {}
|
10
16
|
self.options = {}
|
11
17
|
end
|
12
18
|
end
|
13
19
|
|
20
|
+
def assets
|
21
|
+
@assets ||= AssetsConfiguration.new
|
22
|
+
end
|
23
|
+
|
14
24
|
def storage
|
15
25
|
@storage ||= StorageConfiguration.new
|
16
26
|
end
|
@@ -2,10 +2,11 @@ require 'assets_deployer/asset_file'
|
|
2
2
|
|
3
3
|
module AssetsDeployer
|
4
4
|
class Deployer
|
5
|
-
def initialize(storage:, root_path:,
|
5
|
+
def initialize(storage:, root_path:, prefix_paths:, ignore_paths:)
|
6
6
|
@storage = storage
|
7
7
|
@root_path = root_path
|
8
|
-
@
|
8
|
+
@prefix_paths = prefix_paths
|
9
|
+
@ignore_paths = ignore_paths.map { |path| File.join(root_path, path) }
|
9
10
|
end
|
10
11
|
|
11
12
|
def run
|
@@ -15,9 +16,9 @@ module AssetsDeployer
|
|
15
16
|
private
|
16
17
|
|
17
18
|
def files
|
18
|
-
@files ||= @
|
19
|
+
@files ||= @prefix_paths.flat_map do |prefix|
|
19
20
|
Dir.glob(@root_path.join(prefix).join('**', '**')).map do |path|
|
20
|
-
AssetFile.new(prefix, path) if Pathname.new(path).file?
|
21
|
+
AssetFile.new(prefix, path) if Pathname.new(path).file? && !@ignore_paths.include?(path)
|
21
22
|
end
|
22
23
|
end.compact
|
23
24
|
end
|
@@ -6,16 +6,15 @@ module AssetsDeployer
|
|
6
6
|
class InvalidStorageError < StandardError
|
7
7
|
end
|
8
8
|
|
9
|
-
def initialize(
|
10
|
-
@platform = platform
|
9
|
+
def initialize(name:, credentials:, options:)
|
11
10
|
@name = name
|
12
11
|
@credentials = credentials
|
13
12
|
@options = options
|
14
13
|
end
|
15
14
|
|
16
15
|
def build
|
17
|
-
case
|
18
|
-
when
|
16
|
+
case @name
|
17
|
+
when 'S3'
|
19
18
|
Storage::AwsS3.new(
|
20
19
|
credentials: @credentials,
|
21
20
|
bucket: @options[:bucket],
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: assets_deployer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shota Iguchi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-06-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|