webpacker-manifest_s3 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
  SHA1:
3
- metadata.gz: 2542ec00b5fcc99382479319ec5061e47b4c3de9
4
- data.tar.gz: 347133909334f22ce29ca460be07ab19859a063a
3
+ metadata.gz: 9f0a7895ae5c1a39a9e7b80190849a9ac6ede456
4
+ data.tar.gz: 95372c10a2ae0bd10bd9e45e4ac7dc6d1b587c53
5
5
  SHA512:
6
- metadata.gz: 2893532f94efea2e59e2c16a181b4c15b96048d5504b7fd74199de8570919e30416f42ee07223375ca0d873cf8236f919e29c5e8bf6fd9d89221452d52b0b957
7
- data.tar.gz: 77a2f8b6bb59a0c7bdf071abbd8f004be047674958ccb02370309c77ff4b2c93028f8c05379bfea18442ed77a03231212df07b0bc2a865220e4de88309de35ae
6
+ metadata.gz: 462012bf917cbf2acc3b641692f1e843d8003b9b5c6ecece1f3ee99032d1685ad0d9ce671841bdefd925aa55d74ec11ea27ba4cb824171a8c5a907dd5e415805
7
+ data.tar.gz: fc5bef1d0a5f7fa1e122e32e058e9ab4779260e71bccc7c37337804de3b745d9b65f304952f8656f8084baa711c8704a77cebbedf089fac39282b5a0e59125bb
@@ -0,0 +1,8 @@
1
+ desc 'upload manifest file to AWS S3'
2
+ namespace 'webpacker:manifest_s3' do
3
+ task :upload do
4
+ Webpacker::Env.load
5
+ Webpacker::Configuration.load
6
+ Webpacker::ManifestS3::S3Client.put_manifest
7
+ end
8
+ end
@@ -1,8 +1,11 @@
1
1
  require "webpacker/manifest_s3/version"
2
2
  require 'webpacker/manifest_s3/configuration_extention'
3
3
  require 'webpacker/manifest_s3/manifest_extention'
4
+ require 'webpacker/manifest_s3/s3_client'
4
5
  require 'webpacker/configuration'
5
6
  require 'webpacker/manifest'
6
7
 
7
8
  Webpacker::Configuration.send(:extend, Webpacker::ManifestS3::ConfigurationExtention)
8
9
  Webpacker::Manifest.send(:prepend, Webpacker::ManifestS3::ManifestExtention)
10
+
11
+ require 'webpacker/manifest_s3/engine' if defined?(Rails)
@@ -20,6 +20,10 @@ module Webpacker
20
20
  def aws_region
21
21
  fetch(:aws_region)
22
22
  end
23
+
24
+ def upload_manifest_path
25
+ fetch(:upload_manifest_path)
26
+ end
23
27
  end
24
28
  end
25
29
  end
@@ -0,0 +1,7 @@
1
+ module Webpacker
2
+ module ManifestS3
3
+ class Engine < Rails::Engine
4
+ engine_name 'webpacker-manifest_s3'
5
+ end
6
+ end
7
+ end
@@ -1,5 +1,3 @@
1
- require 'aws-sdk'
2
-
3
1
  module Webpacker
4
2
  module ManifestS3
5
3
  module ManifestExtention
@@ -7,44 +5,13 @@ module Webpacker
7
5
 
8
6
  def load
9
7
  if Webpacker::Configuration.manifest_s3_bucket && Webpacker::Configuration.manifest_s3_key
10
- resp = s3_client.get_object(bucket: Webpacker::Configuration.manifest_s3_bucket, key: Webpacker::Configuration.manifest_s3_key)
8
+ resp = Webpacker::ManifestS3::S3Client.get_manifest
11
9
  JSON.parse(resp.body.read)
12
10
  else
13
11
  return super unless File.exist?(@path)
14
12
  JSON.parse(File.read(@path))
15
13
  end
16
14
  end
17
-
18
- def s3_client
19
- Aws::S3::Client.new(client_options)
20
- end
21
-
22
- def client_options
23
- hash = {}
24
- hash[:credentials] = credentials
25
- hash[:region] = region if region
26
- hash
27
- end
28
-
29
- def credentials
30
- if access_key_id && secret_access_key
31
- Aws::Credentials.new(access_key_id, secret_access_key)
32
- else
33
- Aws::InstanceProfileCredentials.new
34
- end
35
- end
36
-
37
- def access_key_id
38
- Webpacker::Configuration.aws_access_key_id || ENV['AWS_ACCESS_KEY_ID']
39
- end
40
-
41
- def secret_access_key
42
- Webpacker::Configuration.aws_secret_access_key || ENV['AWS_SECRET_ACCESS_KEY']
43
- end
44
-
45
- def region
46
- Webpacker::Configuration.aws_region || ENV['AWS_REGION']
47
- end
48
15
  end
49
16
  end
50
17
  end
@@ -0,0 +1,54 @@
1
+ require 'aws-sdk'
2
+
3
+ module Webpacker
4
+ module ManifestS3
5
+ module S3Client
6
+ class << self
7
+ def get_manifest
8
+ s3_client.get_object(bucket: Webpacker::Configuration.manifest_s3_bucket, key: Webpacker::Configuration.manifest_s3_key)
9
+ end
10
+
11
+ def put_manifest
12
+ s3_client.put_object(
13
+ bucket: Webpacker::Configuration.manifest_s3_bucket,
14
+ key: Webpacker::Configuration.manifest_s3_key,
15
+ body: File.new(Webpacker::Configuration.upload_manifest_path),
16
+ )
17
+ end
18
+
19
+ private
20
+
21
+ def s3_client
22
+ @s3_client ||= Aws::S3::Client.new(client_options)
23
+ end
24
+
25
+ def client_options
26
+ hash = {}
27
+ hash[:credentials] = credentials
28
+ hash[:region] = region if region
29
+ hash
30
+ end
31
+
32
+ def credentials
33
+ if access_key_id && secret_access_key
34
+ Aws::Credentials.new(access_key_id, secret_access_key)
35
+ else
36
+ Aws::InstanceProfileCredentials.new
37
+ end
38
+ end
39
+
40
+ def access_key_id
41
+ Webpacker::Configuration.aws_access_key_id || ENV['AWS_ACCESS_KEY_ID']
42
+ end
43
+
44
+ def secret_access_key
45
+ Webpacker::Configuration.aws_secret_access_key || ENV['AWS_SECRET_ACCESS_KEY']
46
+ end
47
+
48
+ def region
49
+ Webpacker::Configuration.aws_region || ENV['AWS_REGION']
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -1,5 +1,5 @@
1
1
  module Webpacker
2
2
  module ManifestS3
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.add_dependency 'aws-sdk', '>= 2'
23
23
  spec.add_dependency 'webpacker', '>= 2'
24
+ spec.add_dependency 'rails'
24
25
  spec.add_development_dependency "bundler", "~> 1.14"
25
26
  spec.add_development_dependency "rake", "~> 10.0"
26
27
  spec.add_development_dependency "rspec", "~> 3.0"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webpacker-manifest_s3
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
  - Shota Iguchi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-08 00:00:00.000000000 Z
11
+ date: 2017-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -96,9 +110,12 @@ files:
96
110
  - Rakefile
97
111
  - bin/console
98
112
  - bin/setup
113
+ - lib/tasks/webpacker/manifest_s3/upload.rake
99
114
  - lib/webpacker/manifest_s3.rb
100
115
  - lib/webpacker/manifest_s3/configuration_extention.rb
116
+ - lib/webpacker/manifest_s3/engine.rb
101
117
  - lib/webpacker/manifest_s3/manifest_extention.rb
118
+ - lib/webpacker/manifest_s3/s3_client.rb
102
119
  - lib/webpacker/manifest_s3/version.rb
103
120
  - webpacker-manifest_s3.gemspec
104
121
  homepage: