webpack-helpers 0.1.0
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 +7 -0
- data/lib/webpack/configuration.rb +15 -0
- data/lib/webpack/dev_server/configuration.rb +13 -0
- data/lib/webpack/dev_server/process.rb +51 -0
- data/lib/webpack/dev_server/proxy.rb +39 -0
- data/lib/webpack/dev_server.rb +22 -0
- data/lib/webpack/helpers/version.rb +7 -0
- data/lib/webpack/helpers.rb +18 -0
- data/lib/webpack/manifest/configuration.rb +12 -0
- data/lib/webpack/manifest/entries.rb +24 -0
- data/lib/webpack/manifest.rb +35 -0
- data/lib/webpack/rails/generators/config_generator.rb +21 -0
- data/lib/webpack/rails/generators/templates/config.rb +12 -0
- data/lib/webpack/rails/helpers.rb +23 -0
- data/lib/webpack/railtie.rb +27 -0
- data/lib/webpack.rb +23 -0
- metadata +187 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 160027a4a47451b2e0286b4d2058eefe0638ea9c92bcf7512e7c9cda948562a8
|
4
|
+
data.tar.gz: 7f9be5e7aacc19e7cf51ed8b790f028c05f54c3213ed2f09466fac3b67a63dfe
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7e9da58a17efdfadede2241f296cb2e0b1524c8d700c171cc23b0e67de1f313b146eb3049f9c5e03cdad204e44187073bcc06dcdbf1aa79a2a1fb041799e4336
|
7
|
+
data.tar.gz: 804ce8b553435f5df50de8d1337fbf49a05f32f5add763ed8e9feb666c69ea78b84c24682448144c2f2fd05c33da4e06d62e7a37c97a6906a00fced9defab750
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "webpack/dev_server"
|
4
|
+
require "webpack/manifest"
|
5
|
+
|
6
|
+
module Webpack
|
7
|
+
class Configuration
|
8
|
+
attr_accessor :dev_server, :manifest
|
9
|
+
|
10
|
+
def initialize
|
11
|
+
@dev_server = Webpack::DevServer.config
|
12
|
+
@manifest = Webpack::Manifest.config
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Webpack::DevServer
|
4
|
+
class Configuration
|
5
|
+
attr_accessor :url, :connect_timeout, :proxy_path
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
@url = ENV.fetch("WEBPACK_DEV_SERVER_URL") { "http://0.0.0.0:8080" }
|
9
|
+
@connect_timeout = ENV.fetch("WEBPACK_DEV_SERVER_CONNECT_TIMEOUT") { 0.1 }
|
10
|
+
@proxy_path = ENV.fetch("WEBPACK_DEV_SERVER_PROXY_PATH") { "/webpack/" }
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "uri"
|
4
|
+
require "socket"
|
5
|
+
|
6
|
+
module Webpack::DevServer
|
7
|
+
class Process
|
8
|
+
class UnsupportedAddressError < StandardError; end
|
9
|
+
|
10
|
+
attr_reader :uri, :timeout
|
11
|
+
|
12
|
+
def initialize(address, timeout: 0.01)
|
13
|
+
uri = URI.parse(address.to_s)
|
14
|
+
case uri
|
15
|
+
when URI::HTTP, URI::HTTPS
|
16
|
+
@uri = uri
|
17
|
+
else
|
18
|
+
raise UnsupportedAddressError, "`#{address}` is unsupported address."
|
19
|
+
end
|
20
|
+
|
21
|
+
@timeout = timeout
|
22
|
+
end
|
23
|
+
|
24
|
+
def protocol
|
25
|
+
uri.scheme
|
26
|
+
end
|
27
|
+
|
28
|
+
def https?
|
29
|
+
protocol == "https"
|
30
|
+
end
|
31
|
+
|
32
|
+
def host
|
33
|
+
uri.host
|
34
|
+
end
|
35
|
+
|
36
|
+
def port
|
37
|
+
uri.port
|
38
|
+
end
|
39
|
+
|
40
|
+
def host_with_port
|
41
|
+
"#{host}:#{port}"
|
42
|
+
end
|
43
|
+
|
44
|
+
def running?
|
45
|
+
Socket.tcp(host, port, connect_timeout: timeout).close
|
46
|
+
true
|
47
|
+
rescue StandardError
|
48
|
+
false
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rack/proxy"
|
4
|
+
require "webpack/dev_server"
|
5
|
+
|
6
|
+
module Webpack::DevServer
|
7
|
+
class Proxy < ::Rack::Proxy
|
8
|
+
def perform_request(env)
|
9
|
+
if proxy?(env)
|
10
|
+
env["HTTP_HOST"] = env["HTTP_X_FORWARDED_HOST"] = env["HTTP_X_FORWARDED_SERVER"] = dev_server.host_with_port
|
11
|
+
env["HTTP_X_FORWARDED_PROTO"] = env["HTTP_X_FORWARDED_SCHEME"] = dev_server.protocol
|
12
|
+
env["HTTPS"] = env["HTTP_X_FORWARDED_SSL"] = "off" unless dev_server.https?
|
13
|
+
env["PATH_INFO"] = env["PATH_INFO"].gsub(/^#{proxy_path}/, "/")
|
14
|
+
|
15
|
+
super(env)
|
16
|
+
else
|
17
|
+
@app.call(env)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
protected
|
22
|
+
|
23
|
+
def config
|
24
|
+
::Webpack::DevServer.config
|
25
|
+
end
|
26
|
+
|
27
|
+
def dev_server
|
28
|
+
::Webpack::DevServer.process
|
29
|
+
end
|
30
|
+
|
31
|
+
def proxy_path
|
32
|
+
config.proxy_path || ""
|
33
|
+
end
|
34
|
+
|
35
|
+
def proxy?(env)
|
36
|
+
!proxy_path.empty? && env["PATH_INFO"].start_with?(proxy_path)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Webpack
|
4
|
+
module DevServer
|
5
|
+
class << self
|
6
|
+
def configure
|
7
|
+
yield config
|
8
|
+
end
|
9
|
+
|
10
|
+
def config
|
11
|
+
@config ||= Configuration.new
|
12
|
+
end
|
13
|
+
|
14
|
+
def process
|
15
|
+
Webpack::DevServer::Process.new config.url, timeout: config.connect_timeout
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
require "webpack/dev_server/configuration"
|
22
|
+
require "webpack/dev_server/process"
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "webpack"
|
4
|
+
|
5
|
+
module Webpack
|
6
|
+
module Helpers
|
7
|
+
def webpack_bundle_path(entry)
|
8
|
+
lookuped = URI.parse Webpack.manifest.lookup!(entry)
|
9
|
+
prefix = Webpack.config.dev_server.proxy_path
|
10
|
+
|
11
|
+
return lookuped.to_s unless lookuped.host.nil? && prefix
|
12
|
+
|
13
|
+
Pathname.new("/#{prefix}/#{lookuped}").cleanpath.to_s
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
require "webpack/railtie" if defined? Rails
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Webpack::Manifest
|
4
|
+
class Configuration
|
5
|
+
attr_accessor :url, :cache
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
@url = ENV.fetch("WEBPACK_MANIFEST_URL") { "/path/to/manifest.json" }
|
9
|
+
@cache = ENV.fetch("WEBPACK_MANIFEST_CACHE", false)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "open-uri"
|
4
|
+
require "json"
|
5
|
+
|
6
|
+
module Webpack::Manifest
|
7
|
+
class Entries
|
8
|
+
class MissingEntryError < StandardError; end
|
9
|
+
|
10
|
+
attr_reader :entries
|
11
|
+
|
12
|
+
def initialize(entries)
|
13
|
+
@entries = entries
|
14
|
+
end
|
15
|
+
|
16
|
+
def lookup(entry)
|
17
|
+
entries.fetch(entry) { nil }
|
18
|
+
end
|
19
|
+
|
20
|
+
def lookup!(entry)
|
21
|
+
lookup(entry) || raise(MissingEntryError, "missing entry: #{entry}")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Webpack
|
4
|
+
module Manifest
|
5
|
+
class << self
|
6
|
+
def configure
|
7
|
+
yield config
|
8
|
+
end
|
9
|
+
|
10
|
+
def config
|
11
|
+
@config ||= Configuration.new
|
12
|
+
end
|
13
|
+
|
14
|
+
def load(path)
|
15
|
+
# read file
|
16
|
+
uri = URI.parse(path.to_s)
|
17
|
+
str = case uri
|
18
|
+
when URI::HTTP, URI::HTTPS
|
19
|
+
OpenURI.open_uri(uri.to_s).read
|
20
|
+
else # default read file
|
21
|
+
File.read(uri.path)
|
22
|
+
end
|
23
|
+
|
24
|
+
# to json
|
25
|
+
entries = JSON.parse str
|
26
|
+
|
27
|
+
# return Manifest instance
|
28
|
+
Entries.new entries
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
require "webpack/manifest/configuration"
|
35
|
+
require "webpack/manifest/entries"
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rails/generators"
|
4
|
+
|
5
|
+
module Webpack
|
6
|
+
module Generators
|
7
|
+
# rails g webpack:install
|
8
|
+
class ConfigGenerator < ::Rails::Generators::Base # :nodoc:
|
9
|
+
source_root File.expand_path(File.join(File.dirname(__FILE__), "templates"))
|
10
|
+
|
11
|
+
desc <<~DESC
|
12
|
+
Description:
|
13
|
+
Copies Webpack configuration file to your application's initializer directory.
|
14
|
+
DESC
|
15
|
+
|
16
|
+
def copy_initializer
|
17
|
+
template "config.rb", "config/initializers/webpack.rb"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "webpack/helpers"
|
4
|
+
|
5
|
+
Webpacky.configure do |config|
|
6
|
+
config.dev_server.url = ENV.fetch("WEBPACK_DEV_SERVER_URL") { "http://0.0.0.0:8080" }
|
7
|
+
config.dev_server.connect_timeout = ENV.fetch("WEBPACK_DEV_SERVER_CONNECT_TIMEOUT") { 0.1 }
|
8
|
+
config.dev_server.proxy_path = ENV.fetch("WEBPACK_DEV_SERVER_PROXY_PATH") { "/webpack/" }
|
9
|
+
|
10
|
+
config.manifest.url = ENV.fetch("WEBPACK_MANIFEST_URL") { "http://0.0.0.0:8080/manifest.json" }
|
11
|
+
config.manifest.cache = ENV.fetch("WEBPACK_MANIFEST_CACHE") { Rails.env.production? }
|
12
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "webpack/helpers"
|
4
|
+
|
5
|
+
module Webpack
|
6
|
+
module Rails
|
7
|
+
module Helpers
|
8
|
+
include Webpack::Helpers
|
9
|
+
|
10
|
+
def javascript_bundle_tag(*entries, **options)
|
11
|
+
javascript_include_tag(*entries.map { |entry| webpack_bundle_path "#{entry}.js" }, **options)
|
12
|
+
end
|
13
|
+
|
14
|
+
def stylesheet_bundle_tag(*entries, **options)
|
15
|
+
stylesheet_link_tag(*entries.map { |entry| webpack_bundle_path "#{entry}.css" }, **options)
|
16
|
+
end
|
17
|
+
|
18
|
+
def image_bundle_tag(entry, **options)
|
19
|
+
image_tag webpack_bundle_path(entry), **options
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rails/railtie"
|
4
|
+
require "webpack"
|
5
|
+
|
6
|
+
module Webpack
|
7
|
+
class Railtie < ::Rails::Railtie
|
8
|
+
initializer "webpack.dev_server.proxy" do |app|
|
9
|
+
if Webpack.config.dev_server.proxy_path
|
10
|
+
require "webpack/dev_server/proxy"
|
11
|
+
middleware = ::Rails::VERSION::MAJOR >= 5 ? Webpack::DevServer::Proxy : "Webpack::DevServer::Proxy"
|
12
|
+
app.middleware.insert_before 0, middleware, ssl_verify_none: true
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
config.after_initialize do
|
17
|
+
require "webpack/rails/helpers"
|
18
|
+
ActiveSupport.on_load :action_view do
|
19
|
+
::ActionView::Base.include Webpack::Rails::Helpers
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
generators do
|
24
|
+
require "webpack/rails/generators/config_generator"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/webpack.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Webpack
|
4
|
+
class << self
|
5
|
+
def configure
|
6
|
+
yield config
|
7
|
+
end
|
8
|
+
|
9
|
+
def config
|
10
|
+
@config ||= Configuration.new
|
11
|
+
end
|
12
|
+
|
13
|
+
def manifest
|
14
|
+
return @manifest if config.manifest.cache && defined?(@manifest)
|
15
|
+
|
16
|
+
@manifest = Webpack::Manifest.load config.manifest.url
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
require "webpack/configuration"
|
22
|
+
require "webpack/dev_server"
|
23
|
+
require "webpack/manifest"
|
metadata
ADDED
@@ -0,0 +1,187 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: webpack-helpers
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- ak10m
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-01-26 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rack-proxy
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.1.3
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.1.3
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '5.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '5.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: minitest-reporters
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rack-test
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rake
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '12.0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '12.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rubocop
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.78.0
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.78.0
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rubocop-minitest
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.5.1
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 0.5.1
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rubocop-performance
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 1.5.2
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 1.5.2
|
139
|
+
description: Make Ruby and Webpack as loosely coupled as possible.
|
140
|
+
email:
|
141
|
+
- akio.morimoto@airits.jp
|
142
|
+
executables: []
|
143
|
+
extensions: []
|
144
|
+
extra_rdoc_files: []
|
145
|
+
files:
|
146
|
+
- lib/webpack.rb
|
147
|
+
- lib/webpack/configuration.rb
|
148
|
+
- lib/webpack/dev_server.rb
|
149
|
+
- lib/webpack/dev_server/configuration.rb
|
150
|
+
- lib/webpack/dev_server/process.rb
|
151
|
+
- lib/webpack/dev_server/proxy.rb
|
152
|
+
- lib/webpack/helpers.rb
|
153
|
+
- lib/webpack/helpers/version.rb
|
154
|
+
- lib/webpack/manifest.rb
|
155
|
+
- lib/webpack/manifest/configuration.rb
|
156
|
+
- lib/webpack/manifest/entries.rb
|
157
|
+
- lib/webpack/rails/generators/config_generator.rb
|
158
|
+
- lib/webpack/rails/generators/templates/config.rb
|
159
|
+
- lib/webpack/rails/helpers.rb
|
160
|
+
- lib/webpack/railtie.rb
|
161
|
+
homepage: https://github.com/ak10m/webpack-helpers
|
162
|
+
licenses:
|
163
|
+
- MIT
|
164
|
+
metadata:
|
165
|
+
homepage_uri: https://github.com/ak10m/webpack-helpers
|
166
|
+
source_code_uri: https://github.com/ak10m/webpack-helpers/tree/0.1.0
|
167
|
+
changelog_uri: https://github.com/ak10m/webpack-helpers/blob/0.1.0/CHANGELOG.md
|
168
|
+
post_install_message:
|
169
|
+
rdoc_options: []
|
170
|
+
require_paths:
|
171
|
+
- lib
|
172
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
173
|
+
requirements:
|
174
|
+
- - ">="
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: 2.3.0
|
177
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - ">="
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
182
|
+
requirements: []
|
183
|
+
rubygems_version: 3.1.2
|
184
|
+
signing_key:
|
185
|
+
specification_version: 4
|
186
|
+
summary: Make Ruby and Webpack as loosely coupled as possible.
|
187
|
+
test_files: []
|