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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a914ef1f5f89b0925e4ae1edc1ab4ac5440adf9b
4
- data.tar.gz: 2714b80f7f59306baa672aa2cf005a3840dd9d80
3
+ metadata.gz: d7c354d438c293f73c0aca8fcc856651fba8685b
4
+ data.tar.gz: b916280e931be57e3efea4ee6434f799d3872d1f
5
5
  SHA512:
6
- metadata.gz: c26c47ebd502140d558b493a664ee7e32ce6d35fbe210bbd89b43e9e85e77256c5f48afeeac9f613d74227eb746c481b20a1b15ab99d1e90eb25d8fc3ed010cc
7
- data.tar.gz: f357d5aa3aa3bb3e04e2bf1dab8e310553a4326c0728bd27950bc0a10418c22c00f1af4028c66e15c88476af5da285f7824042012766d593873d3a3ea32771e9
6
+ metadata.gz: 939385faea81b6c81046e2ba41b1decf87153c2738566bedf3bf87df631ef4b1472b7b2633fa856c803a886731f0ee04b475f977b2b75cba9440f7b5fb05fc71
7
+ data.tar.gz: 9af9795ffd439300d4c9db0b49dd5efc421196b05090f20d6ae80866dacdaca693a610969261326e83382f2b4976cd7abdf83df88b2cc2c7cb375befe9c1a375
@@ -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
- @specs[name].push ::Rack::ScriptStackerUtils::PathSpec.new(args[0])
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
- @stackers = stacker_configs.map do |name, config|
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
- @stackers[name].find_files spec.source_path, spec.serve_path
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
- @stackers.values.reduce chunk do |memo, stacker|
172
+ stackers.values.reduce chunk do |memo, stacker|
156
173
  inject_into memo, stacker
157
174
  end
158
175
  end
@@ -1,5 +1,5 @@
1
1
  module Rack
2
2
  class ScriptStacker
3
- VERSION = "0.1.2"
3
+ VERSION = "0.1.3"
4
4
  end
5
5
  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.2
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-07-23 00:00:00.000000000 Z
11
+ date: 2015-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack