imw 0.2.8 → 0.2.9
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.
- data/VERSION +1 -1
- data/lib/imw/schemes/local.rb +9 -0
- data/lib/imw.rb +23 -0
- data/spec/imw/schemes/local_spec.rb +7 -0
- data/spec/imw_spec.rb +14 -0
- metadata +5 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.9
|
data/lib/imw/schemes/local.rb
CHANGED
@@ -367,6 +367,15 @@ module IMW
|
|
367
367
|
IMW.open(File.join(stripped_uri.to_s, *paths))
|
368
368
|
end
|
369
369
|
|
370
|
+
# Open (and create if necessary) a subdirectory beneath this
|
371
|
+
# directory.
|
372
|
+
#
|
373
|
+
# @params [Array<String>] paths
|
374
|
+
# @return [IMW::Resource]
|
375
|
+
def subdir! *paths
|
376
|
+
IMW.dir!(File.join(stripped_uri.to_s, *paths))
|
377
|
+
end
|
378
|
+
|
370
379
|
# Recursively walk down this directory
|
371
380
|
def walk(options={}, &block)
|
372
381
|
require 'find'
|
data/lib/imw.rb
CHANGED
@@ -72,6 +72,29 @@ module IMW
|
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
75
|
+
# Open (and create if necessary) a directory at the given URI.
|
76
|
+
#
|
77
|
+
# Will automatically create directories recursively. Options will
|
78
|
+
# be passed to IMW.open and interpreted appropriately. If a block
|
79
|
+
# is passed, the directory will be created before the block is
|
80
|
+
# yielded to.
|
81
|
+
#
|
82
|
+
# @param [String, IMW::Resource] uri
|
83
|
+
# @param [Hash] options
|
84
|
+
# @return [IMW::Resource]
|
85
|
+
def self.dir! uri, options={}, &block
|
86
|
+
if block_given?
|
87
|
+
new_dir = open(uri, options.merge(:as => (options[:as] || []) + [Schemes::Local::LocalDirectory])) do |d|
|
88
|
+
new_dir.create
|
89
|
+
yield
|
90
|
+
end
|
91
|
+
else
|
92
|
+
new_dir = open(uri, options.merge(:as => (options[:as] || []) + [Schemes::Local::LocalDirectory]))
|
93
|
+
new_dir.create
|
94
|
+
end
|
95
|
+
new_dir
|
96
|
+
end
|
97
|
+
|
75
98
|
# Works the same way as IMW.open except opens the resource for
|
76
99
|
# writing.
|
77
100
|
#
|
@@ -156,6 +156,13 @@ describe IMW::Schemes::Local::LocalDirectory do
|
|
156
156
|
@dir.join("a", "b/c").to_s.should == File.join(@dir.path, 'a/b/c')
|
157
157
|
end
|
158
158
|
|
159
|
+
it "can create a subdirectory" do
|
160
|
+
@dir.join("mallaco").exist?.should be_false
|
161
|
+
subdir = @dir.subdir!("mallaco")
|
162
|
+
subdir.exist?.should be_true
|
163
|
+
subdir.directory?.should be_true
|
164
|
+
end
|
165
|
+
|
159
166
|
describe 'can package itself to' do
|
160
167
|
['tar', 'tar.bz2', 'tar.gz', 'zip', 'rar'].each do |extension|
|
161
168
|
it "a #{extension} archive" do
|
data/spec/imw_spec.rb
ADDED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: imw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 5
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 9
|
10
|
+
version: 0.2.9
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Dhruv Bansal
|
@@ -171,6 +171,7 @@ files:
|
|
171
171
|
- spec/imw/utils/has_uri_spec.rb
|
172
172
|
- spec/imw/utils/paths_spec.rb
|
173
173
|
- spec/imw/utils/shared_paths_spec.rb
|
174
|
+
- spec/imw_spec.rb
|
174
175
|
- spec/rcov.opts
|
175
176
|
- spec/spec_helper.rb
|
176
177
|
- spec/support/custom_matchers.rb
|
@@ -249,6 +250,7 @@ test_files:
|
|
249
250
|
- spec/imw/utils/paths_spec.rb
|
250
251
|
- spec/imw/utils/dynamically_extendable_spec.rb
|
251
252
|
- spec/imw/utils/shared_paths_spec.rb
|
253
|
+
- spec/imw_spec.rb
|
252
254
|
- spec/spec_helper.rb
|
253
255
|
- spec/support/without_regard_to_order_matcher.rb
|
254
256
|
- spec/support/custom_matchers.rb
|