fig 0.1.18 → 0.1.19

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.
Files changed (3) hide show
  1. data/lib/fig/environment.rb +8 -1
  2. data/spec/fig_spec.rb +29 -0
  3. metadata +4 -4
@@ -131,7 +131,14 @@ module Fig
131
131
  return value unless base_package && base_package.package_name
132
132
  file = value.gsub(/\@/, base_package.directory)
133
133
  if @retrieve_vars.member?(name)
134
- target = File.join(@retrieve_vars[name].gsub(/\[package\]/, base_package.package_name), File.basename(file))
134
+ # A '//' in the source file's path tells us to preserve path information
135
+ # after the '//' when doing a retrieve.
136
+ if file.split('//').size > 1
137
+ preserved_path = file.split('//').last
138
+ target = File.join(@retrieve_vars[name].gsub(/\[package\]/, base_package.package_name), preserved_path)
139
+ else
140
+ target = File.join(@retrieve_vars[name].gsub(/\[package\]/, base_package.package_name), File.basename(file))
141
+ end
135
142
  unless @os.exist?(target) && @os.mtime(target) >= @os.mtime(file)
136
143
  @os.log_info("retrieving #{target}")
137
144
  @os.copy(file, target)
data/spec/fig_spec.rb CHANGED
@@ -199,6 +199,35 @@ describe "Fig" do
199
199
  File.read("tmp/lib2/foo/hello").should == "some library"
200
200
  end
201
201
 
202
+ it "retrieve preserves the path after '//' when copying files into your project directory" do
203
+ FileUtils.rm_rf(FIG_HOME)
204
+ FileUtils.rm_rf(FIG_REMOTE_DIR)
205
+ FileUtils.rm_rf("tmp")
206
+ FileUtils.mkdir_p("tmp/include")
207
+ File.open("tmp/include/hello.h", "w") { |f| f << "a header file" }
208
+ File.open("tmp/include/hello2.h", "w") { |f| f << "another header file" }
209
+ input = <<-END
210
+ resource tmp/include/hello.h
211
+ resource tmp/include/hello2.h
212
+ config default
213
+ append INCLUDE=@/tmp//include/hello.h
214
+ append INCLUDE=@/tmp//include/hello2.h
215
+ end
216
+ END
217
+ fig('--publish foo/1.2.3', input)
218
+
219
+ input = <<-END
220
+ retrieve INCLUDE->tmp/include2/[package]
221
+ config default
222
+ include foo/1.2.3
223
+ end
224
+ END
225
+ fig('-u', input)
226
+
227
+ File.read("tmp/include2/foo/include/hello.h").should == "a header file"
228
+ File.read("tmp/include2/foo/include/hello2.h").should == "another header file"
229
+ end
230
+
202
231
  it "package multiple resources" do
203
232
  FileUtils.rm_rf(FIG_HOME)
204
233
  FileUtils.rm_rf(FIG_REMOTE_DIR)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fig
3
3
  version: !ruby/object:Gem::Version
4
- hash: 63
4
+ hash: 61
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 18
10
- version: 0.1.18
9
+ - 19
10
+ version: 0.1.19
11
11
  platform: ruby
12
12
  authors:
13
13
  - Matthew Foemmel
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-02 00:00:00 +01:00
18
+ date: 2010-11-01 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency