rack-scriptstacker 0.1.2 → 0.1.3
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 +4 -4
- data/lib/rack/scriptstacker.rb +24 -7
- data/lib/rack/scriptstacker/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: d7c354d438c293f73c0aca8fcc856651fba8685b
|
4
|
+
data.tar.gz: b916280e931be57e3efea4ee6434f799d3872d1f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 939385faea81b6c81046e2ba41b1decf87153c2738566bedf3bf87df631ef4b1472b7b2633fa856c803a886731f0ee04b475f977b2b75cba9440f7b5fb05fc71
|
7
|
+
data.tar.gz: 9af9795ffd439300d4c9db0b49dd5efc421196b05090f20d6ae80866dacdaca693a610969261326e83382f2b4976cd7abdf83df88b2cc2c7cb375befe9c1a375
|
data/lib/rack/scriptstacker.rb
CHANGED
@@ -71,9 +71,10 @@ module Rack
|
|
71
71
|
|
72
72
|
module ScriptStackerUtils
|
73
73
|
class SpecSolidifier < BasicObject
|
74
|
-
def initialize stacker_names
|
74
|
+
def initialize stacker_names, directory=nil
|
75
75
|
@stacker_names = stacker_names
|
76
76
|
@specs = ::Hash.new { |hash, key| hash[key] = [] }
|
77
|
+
@directory = directory
|
77
78
|
end
|
78
79
|
|
79
80
|
def call stack_spec
|
@@ -81,6 +82,13 @@ module Rack
|
|
81
82
|
@specs
|
82
83
|
end
|
83
84
|
|
85
|
+
def directory dir_name, &block
|
86
|
+
SpecSolidifier.new(@stacker_names, dir_name).call(block)
|
87
|
+
.each do |stacker_name, specs|
|
88
|
+
@specs[stacker_name] += specs
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
84
92
|
def method_missing name, *args
|
85
93
|
if !@stacker_names.include? name
|
86
94
|
::Kernel.raise ::ArgumentError.new(
|
@@ -93,7 +101,14 @@ module Rack
|
|
93
101
|
"but got #{args.inspect} instead."
|
94
102
|
)
|
95
103
|
end
|
96
|
-
|
104
|
+
|
105
|
+
if @directory
|
106
|
+
path = "#{@directory}/#{args[0]}"
|
107
|
+
else
|
108
|
+
path = args[0]
|
109
|
+
end
|
110
|
+
|
111
|
+
@specs[name].push ::Rack::ScriptStackerUtils::PathSpec.new(path)
|
97
112
|
end
|
98
113
|
end
|
99
114
|
|
@@ -138,21 +153,23 @@ module Rack
|
|
138
153
|
|
139
154
|
class Runner
|
140
155
|
def initialize stacker_configs, inject_mode
|
141
|
-
@
|
142
|
-
[name, Stacker.new(config)]
|
143
|
-
end.to_h
|
156
|
+
@stacker_configs = stacker_configs
|
144
157
|
@inject_mode = inject_mode
|
145
158
|
end
|
146
159
|
|
147
160
|
def replace_in_body body, path_specs
|
161
|
+
stackers = @stacker_configs.map do |name, config|
|
162
|
+
[name, Stacker.new(config)]
|
163
|
+
end.to_h
|
164
|
+
|
148
165
|
path_specs.each do |name, specs|
|
149
166
|
specs.each do |spec|
|
150
|
-
|
167
|
+
stackers[name].find_files spec.source_path, spec.serve_path
|
151
168
|
end
|
152
169
|
end
|
153
170
|
|
154
171
|
body.map do |chunk|
|
155
|
-
|
172
|
+
stackers.values.reduce chunk do |memo, stacker|
|
156
173
|
inject_into memo, stacker
|
157
174
|
end
|
158
175
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-scriptstacker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Max Cantor
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-08-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|