zip_dsl 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/.idea/workspace.xml CHANGED
@@ -2,9 +2,6 @@
2
2
  <project version="4">
3
3
  <component name="ChangeListManager">
4
4
  <list default="true" id="aafa5aec-b597-47d5-af91-f7b63300321f" name="Default" comment="">
5
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/zip_dsl.iml" afterPath="$PROJECT_DIR$/.idea/zip_dsl.iml" />
6
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
7
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Gemfile" afterPath="$PROJECT_DIR$/Gemfile" />
8
5
  <change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/zip_dsl/version.rb" afterPath="$PROJECT_DIR$/lib/zip_dsl/version.rb" />
9
6
  </list>
10
7
  <ignored path="zip_dsl.iws" />
@@ -27,10 +24,10 @@
27
24
  </component>
28
25
  <component name="FileEditorManager">
29
26
  <leaf>
30
- <file leaf-file-name="zip_writer.rb" pinned="false" current="false" current-in-tab="false">
31
- <entry file="file://$PROJECT_DIR$/lib/zip_dsl/zip_writer.rb">
27
+ <file leaf-file-name="directory_builder_spec.rb" pinned="false" current="false" current-in-tab="false">
28
+ <entry file="file://$PROJECT_DIR$/spec/directory_builder_spec.rb">
32
29
  <provider selected="true" editor-type-id="text-editor">
33
- <state line="7" column="16" selection-start="144" selection-end="144" vertical-scroll-proportion="0.0">
30
+ <state line="77" column="54" selection-start="2099" selection-end="2099" vertical-scroll-proportion="0.0">
34
31
  <folding />
35
32
  </state>
36
33
  </provider>
@@ -45,46 +42,10 @@
45
42
  </provider>
46
43
  </entry>
47
44
  </file>
48
- <file leaf-file-name="zip_dsl.gemspec.erb" pinned="false" current="false" current-in-tab="false">
49
- <entry file="file://$PROJECT_DIR$/zip_dsl.gemspec.erb">
50
- <provider selected="true" editor-type-id="text-editor">
51
- <state line="13" column="18" selection-start="535" selection-end="535" vertical-scroll-proportion="0.0">
52
- <folding />
53
- </state>
54
- </provider>
55
- </entry>
56
- </file>
57
- <file leaf-file-name="zip_dsl.rb" pinned="false" current="false" current-in-tab="false">
58
- <entry file="file://$PROJECT_DIR$/lib/zip_dsl/zip_dsl.rb">
59
- <provider selected="true" editor-type-id="text-editor">
60
- <state line="3" column="14" selection-start="53" selection-end="53" vertical-scroll-proportion="0.0">
61
- <folding />
62
- </state>
63
- </provider>
64
- </entry>
65
- </file>
66
- <file leaf-file-name="zip_dsl.rb" pinned="false" current="false" current-in-tab="false">
67
- <entry file="file://$PROJECT_DIR$/lib/zip_dsl.rb">
68
- <provider selected="true" editor-type-id="text-editor">
69
- <state line="3" column="136" selection-start="84" selection-end="84" vertical-scroll-proportion="0.0">
70
- <folding />
71
- </state>
72
- </provider>
73
- </entry>
74
- </file>
75
- <file leaf-file-name="Gemfile" pinned="false" current="false" current-in-tab="false">
76
- <entry file="file://$PROJECT_DIR$/Gemfile">
77
- <provider selected="true" editor-type-id="text-editor">
78
- <state line="5" column="15" selection-start="85" selection-end="85" vertical-scroll-proportion="0.0">
79
- <folding />
80
- </state>
81
- </provider>
82
- </entry>
83
- </file>
84
- <file leaf-file-name="directory_builder_spec.rb" pinned="false" current="false" current-in-tab="false">
85
- <entry file="file://$PROJECT_DIR$/spec/directory_builder_spec.rb">
45
+ <file leaf-file-name="directory_builder.rb" pinned="false" current="false" current-in-tab="false">
46
+ <entry file="file://$PROJECT_DIR$/lib/directory_builder.rb">
86
47
  <provider selected="true" editor-type-id="text-editor">
87
- <state line="24" column="27" selection-start="704" selection-end="704" vertical-scroll-proportion="0.0">
48
+ <state line="37" column="66" selection-start="738" selection-end="783" vertical-scroll-proportion="0.0">
88
49
  <folding />
89
50
  </state>
90
51
  </provider>
@@ -106,14 +67,15 @@
106
67
  <option value="$PROJECT_DIR$/.rvmrc" />
107
68
  <option value="$PROJECT_DIR$/Rakefile" />
108
69
  <option value="$PROJECT_DIR$/lib/zip_dsl.rb" />
109
- <option value="$PROJECT_DIR$/lib/directory_builder.rb" />
110
70
  <option value="$PROJECT_DIR$/spec/spec_helper.rb" />
111
- <option value="$PROJECT_DIR$/lib/zip_dsl/zip_dsl.rb" />
112
- <option value="$PROJECT_DIR$/spec/zip_builder_spec.rb" />
113
71
  <option value="$PROJECT_DIR$/lib/zip_dsl/zip_writer.rb" />
114
72
  <option value="$PROJECT_DIR$/zip_dsl.gemspec" />
115
73
  <option value="$PROJECT_DIR$/zip_dsl.gemspec.erb" />
74
+ <option value="$PROJECT_DIR$/lib/zip_dsl/zip_dsl.rb" />
116
75
  <option value="$PROJECT_DIR$/Gemfile" />
76
+ <option value="$PROJECT_DIR$/spec/zip_builder_spec.rb" />
77
+ <option value="$PROJECT_DIR$/lib/directory_builder.rb" />
78
+ <option value="$PROJECT_DIR$/spec/directory_builder_spec.rb" />
117
79
  <option value="$PROJECT_DIR$/lib/zip_dsl/version.rb" />
118
80
  </list>
119
81
  </option>
@@ -150,6 +112,7 @@
150
112
  <sortByType />
151
113
  </navigator>
152
114
  <panes>
115
+ <pane id="Scope" />
153
116
  <pane id="ProjectPane">
154
117
  <subPane>
155
118
  <PATH>
@@ -216,11 +179,11 @@
216
179
  </PATH>
217
180
  </subPane>
218
181
  </pane>
219
- <pane id="Scope" />
220
182
  </panes>
221
183
  </component>
222
184
  <component name="PropertiesComponent">
223
185
  <property name="recentsLimit" value="5" />
186
+ <property name="GoToClass.includeJavaFiles" value="false" />
224
187
  </component>
225
188
  <component name="RecentsManager">
226
189
  <key name="MoveFile.RECENT_KEYS">
@@ -228,8 +191,8 @@
228
191
  <recent name="$PROJECT_DIR$/lib" />
229
192
  </key>
230
193
  </component>
231
- <component name="RunManager" selected="RSpec.zip_builder_spec">
232
- <configuration default="false" name="directory_builder_spec" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
194
+ <component name="RunManager" selected="RSpec.directory_builder_spec">
195
+ <configuration default="false" name="DirectoryBuilder should create new zip file with file created from string" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
233
196
  <predefined_log_file id="RUBY_RSPEC" enabled="true" />
234
197
  <module name="zip_dsl" />
235
198
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
@@ -250,18 +213,20 @@
250
213
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$PROJECT_DIR$/spec/directory_builder_spec.rb" />
251
214
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
252
215
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
253
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
216
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="DirectoryBuilder should create new zip file with file created from string" />
254
217
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
255
218
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
256
219
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
257
220
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
258
221
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
259
222
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
223
+ <RunnerSettings RunnerId="RubyDebugRunner" />
260
224
  <RunnerSettings RunnerId="RubyRunner" />
225
+ <ConfigurationWrapper RunnerId="RubyDebugRunner" />
261
226
  <ConfigurationWrapper RunnerId="RubyRunner" />
262
227
  <method />
263
228
  </configuration>
264
- <configuration default="false" name="Zip::DSL should create new zip file with new folder" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
229
+ <configuration default="false" name="DirectoryBuilder should create new zip file with new empty folder" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
265
230
  <predefined_log_file id="RUBY_RSPEC" enabled="true" />
266
231
  <module name="zip_dsl" />
267
232
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
@@ -279,21 +244,21 @@
279
244
  </COVERAGE_PATTERN>
280
245
  </EXTENSION>
281
246
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
282
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$PROJECT_DIR$/spec/zip_builder_spec.rb" />
247
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$PROJECT_DIR$/spec/directory_builder_spec.rb" />
283
248
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
284
249
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
285
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="Zip::DSL should create new zip file with new folder" />
250
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="DirectoryBuilder should create new zip file with new empty folder" />
286
251
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
287
252
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
288
253
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
289
254
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
290
255
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
291
256
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
292
- <RunnerSettings RunnerId="RubyRunner" />
293
- <ConfigurationWrapper RunnerId="RubyRunner" />
257
+ <RunnerSettings RunnerId="RubyDebugRunner" />
258
+ <ConfigurationWrapper RunnerId="RubyDebugRunner" />
294
259
  <method />
295
260
  </configuration>
296
- <configuration default="false" name="Zip::DSL should display files in specified directory" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
261
+ <configuration default="false" name="DirectoryBuilder should display files in current directory" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
297
262
  <predefined_log_file id="RUBY_RSPEC" enabled="true" />
298
263
  <module name="zip_dsl" />
299
264
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
@@ -311,10 +276,10 @@
311
276
  </COVERAGE_PATTERN>
312
277
  </EXTENSION>
313
278
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
314
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$PROJECT_DIR$/spec/zip_builder_spec.rb" />
279
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$PROJECT_DIR$/spec/directory_builder_spec.rb" />
315
280
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
316
281
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
317
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="Zip::DSL should display files in specified directory" />
282
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="DirectoryBuilder should display files in current directory" />
318
283
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
319
284
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
320
285
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
@@ -359,6 +324,38 @@
359
324
  <ConfigurationWrapper RunnerId="RubyRunner" />
360
325
  <method />
361
326
  </configuration>
327
+ <configuration default="false" name="directory_builder_spec" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
328
+ <predefined_log_file id="RUBY_RSPEC" enabled="true" />
329
+ <module name="zip_dsl" />
330
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
331
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$PROJECT_DIR$/spec" />
332
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
333
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
334
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
335
+ <envs>
336
+ <env name="JRUBY_OPTS" value="-X+O" />
337
+ </envs>
338
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
339
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
340
+ <COVERAGE_PATTERN ENABLED="true">
341
+ <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
342
+ </COVERAGE_PATTERN>
343
+ </EXTENSION>
344
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
345
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$PROJECT_DIR$/spec/directory_builder_spec.rb" />
346
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
347
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
348
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
349
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
350
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
351
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
352
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
353
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
354
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
355
+ <RunnerSettings RunnerId="RubyRunner" />
356
+ <ConfigurationWrapper RunnerId="RubyRunner" />
357
+ <method />
358
+ </configuration>
362
359
  <configuration default="true" type="RSpecRunConfigurationType" factoryName="RSpec">
363
360
  <predefined_log_file id="RUBY_RSPEC" enabled="true" />
364
361
  <module name="" />
@@ -429,19 +426,20 @@
429
426
  <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_OPTIONS" VALUE="" />
430
427
  <method />
431
428
  </configuration>
432
- <list size="4">
433
- <item index="0" class="java.lang.String" itemvalue="RSpec.directory_builder_spec" />
434
- <item index="1" class="java.lang.String" itemvalue="RSpec.Zip::DSL should create new zip file with new folder" />
435
- <item index="2" class="java.lang.String" itemvalue="RSpec.Zip::DSL should display files in specified directory" />
429
+ <list size="5">
430
+ <item index="0" class="java.lang.String" itemvalue="RSpec.DirectoryBuilder should create new zip file with file created from string" />
431
+ <item index="1" class="java.lang.String" itemvalue="RSpec.DirectoryBuilder should create new zip file with new empty folder" />
432
+ <item index="2" class="java.lang.String" itemvalue="RSpec.DirectoryBuilder should display files in current directory" />
436
433
  <item index="3" class="java.lang.String" itemvalue="RSpec.zip_builder_spec" />
434
+ <item index="4" class="java.lang.String" itemvalue="RSpec.directory_builder_spec" />
437
435
  </list>
438
436
  <recent_temporary>
439
437
  <list size="5">
440
- <item index="0" class="java.lang.String" itemvalue="RSpec.zip_builder_spec" />
441
- <item index="1" class="java.lang.String" itemvalue="RSpec.Zip::DSL should display files in specified directory" />
442
- <item index="2" class="java.lang.String" itemvalue="RSpec.zip_builder_spec" />
443
- <item index="3" class="java.lang.String" itemvalue="RSpec.Zip::DSL should create new zip file with new folder" />
444
- <item index="4" class="java.lang.String" itemvalue="RSpec.zip_builder_spec" />
438
+ <item index="0" class="java.lang.String" itemvalue="RSpec.directory_builder_spec" />
439
+ <item index="1" class="java.lang.String" itemvalue="RSpec.DirectoryBuilder should display files in current directory" />
440
+ <item index="2" class="java.lang.String" itemvalue="RSpec.directory_builder_spec" />
441
+ <item index="3" class="java.lang.String" itemvalue="RSpec.zip_builder_spec" />
442
+ <item index="4" class="java.lang.String" itemvalue="RSpec.directory_builder_spec" />
445
443
  </list>
446
444
  </recent_temporary>
447
445
  </component>
@@ -524,92 +522,139 @@
524
522
  <option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
525
523
  </component>
526
524
  <component name="XDebuggerManager">
527
- <breakpoint-manager />
525
+ <breakpoint-manager>
526
+ <breakpoints>
527
+ <line-breakpoint enabled="true" type="ruby-line">
528
+ <url>file://$PROJECT_DIR$/lib/directory_builder.rb</url>
529
+ <line>37</line>
530
+ </line-breakpoint>
531
+ <line-breakpoint enabled="true" type="ruby-line">
532
+ <url>file://$PROJECT_DIR$/spec/zip_builder_spec.rb</url>
533
+ <line>10</line>
534
+ </line-breakpoint>
535
+ <line-breakpoint enabled="true" type="ruby-line">
536
+ <url>file://$USER_HOME$/.rvm/gems/ruby-1.9.3-p194@zip_dsl/gems/rubyzip-0.9.8/lib/zip/zip_entry.rb</url>
537
+ <line>443</line>
538
+ </line-breakpoint>
539
+ <line-breakpoint enabled="true" type="ruby-line">
540
+ <url>file://$USER_HOME$/.rvm/gems/ruby-1.9.3-p194@zip_dsl/gems/rubyzip-0.9.8/lib/zip/zip_central_directory.rb</url>
541
+ <line>23</line>
542
+ </line-breakpoint>
543
+ <line-breakpoint enabled="true" type="ruby-line">
544
+ <url>file://$USER_HOME$/.rvm/gems/ruby-1.9.3-p194@zip_dsl/gems/rubyzip-0.9.8/lib/zip/zip_output_stream.rb</url>
545
+ <line>64</line>
546
+ </line-breakpoint>
547
+ <line-breakpoint enabled="true" type="ruby-line">
548
+ <url>file://$PROJECT_DIR$/spec/directory_builder_spec.rb</url>
549
+ <line>34</line>
550
+ </line-breakpoint>
551
+ <line-breakpoint enabled="true" type="ruby-line">
552
+ <url>file://$PROJECT_DIR$/spec/directory_builder_spec.rb</url>
553
+ <line>30</line>
554
+ </line-breakpoint>
555
+ </breakpoints>
556
+ </breakpoint-manager>
528
557
  </component>
529
558
  <component name="editorHistoryManager">
530
- <entry file="file://$PROJECT_DIR$/.rvmrc">
559
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-1.9.3-p194@zip_dsl/gems/rspec-core-2.9.0/lib/rspec/core/example.rb">
531
560
  <provider selected="true" editor-type-id="text-editor">
532
- <state line="3" column="21" selection-start="78" selection-end="78" vertical-scroll-proportion="0.0" />
561
+ <state line="104" column="0" selection-start="3599" selection-end="3599" vertical-scroll-proportion="3.0254545">
562
+ <folding />
563
+ </state>
533
564
  </provider>
534
565
  </entry>
535
- <entry file="file://$PROJECT_DIR$/README.md">
566
+ <entry file="file://$PROJECT_DIR$/Gemfile">
536
567
  <provider selected="true" editor-type-id="text-editor">
537
- <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" />
568
+ <state line="5" column="2" selection-start="71" selection-end="71" vertical-scroll-proportion="0.13445379">
569
+ <folding />
570
+ </state>
538
571
  </provider>
539
572
  </entry>
540
- <entry file="file://$PROJECT_DIR$/.gitignore">
573
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-1.9.3-p194@zip_dsl/gems/rubyzip-0.9.8/lib/zip/zip_entry.rb">
541
574
  <provider selected="true" editor-type-id="text-editor">
542
- <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" />
575
+ <state line="51" column="20" selection-start="1414" selection-end="1414" vertical-scroll-proportion="0.36134455">
576
+ <folding />
577
+ </state>
543
578
  </provider>
544
579
  </entry>
545
- <entry file="file://$PROJECT_DIR$/lib/directory_builder.rb">
580
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-1.9.3-p194@zip_dsl/gems/rubyzip-0.9.8/lib/zip/zip_central_directory.rb">
546
581
  <provider selected="true" editor-type-id="text-editor">
547
- <state line="16" column="41" selection-start="321" selection-end="321" vertical-scroll-proportion="0.32090762" />
582
+ <state line="23" column="0" selection-start="594" selection-end="594" vertical-scroll-proportion="0.32090762">
583
+ <folding />
584
+ </state>
548
585
  </provider>
549
586
  </entry>
550
- <entry file="file://$PROJECT_DIR$/spec/directory_builder_spec.rb">
587
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-1.9.3-p194@zip_dsl/gems/rubyzip-0.9.8/lib/zip/zip_entry_set.rb">
551
588
  <provider selected="true" editor-type-id="text-editor">
552
- <state line="24" column="27" selection-start="704" selection-end="704" vertical-scroll-proportion="0.0">
553
- <folding />
554
- </state>
589
+ <state line="34" column="0" selection-start="594" selection-end="594" vertical-scroll-proportion="0.32090762" />
555
590
  </provider>
556
591
  </entry>
557
- <entry file="file://$PROJECT_DIR$/Rakefile">
592
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-1.9.3-p194@zip_dsl/gems/rubyzip-0.9.8/lib/zip/zip_output_stream.rb">
558
593
  <provider selected="true" editor-type-id="text-editor">
559
- <state line="8" column="29" selection-start="202" selection-end="202" vertical-scroll-proportion="0.0" />
594
+ <state line="64" column="0" selection-start="2015" selection-end="2015" vertical-scroll-proportion="0.32090762">
595
+ <folding />
596
+ </state>
560
597
  </provider>
561
598
  </entry>
562
- <entry file="file://$PROJECT_DIR$/spec/spec_helper.rb">
599
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-1.9.3-p194@zip_dsl/gems/file_utils-1.0.0/lib/file_utils/file_utils.rb">
563
600
  <provider selected="true" editor-type-id="text-editor">
564
- <state line="1" column="0" selection-start="59" selection-end="59" vertical-scroll-proportion="0.0" />
601
+ <state line="16" column="0" selection-start="323" selection-end="323" vertical-scroll-proportion="0.0">
602
+ <folding />
603
+ </state>
565
604
  </provider>
566
605
  </entry>
567
- <entry file="file://$PROJECT_DIR$/lib/zip_dsl/zip_reader.rb">
606
+ <entry file="file://$PROJECT_DIR$/lib/zip_dsl/zip_writer.rb">
568
607
  <provider selected="true" editor-type-id="text-editor">
569
- <state line="6" column="0" selection-start="81" selection-end="81" vertical-scroll-proportion="0.0" />
608
+ <state line="21" column="19" selection-start="418" selection-end="418" vertical-scroll-proportion="0.0">
609
+ <folding />
610
+ </state>
570
611
  </provider>
571
612
  </entry>
572
- <entry file="file://$PROJECT_DIR$/spec/zip_builder_spec.rb">
613
+ <entry file="file://$PROJECT_DIR$/lib/zip_dsl/zip_dsl.rb">
573
614
  <provider selected="true" editor-type-id="text-editor">
574
- <state line="73" column="70" selection-start="2060" selection-end="2060" vertical-scroll-proportion="0.76661265" />
615
+ <state line="19" column="6" selection-start="440" selection-end="440" vertical-scroll-proportion="0.0">
616
+ <folding />
617
+ </state>
575
618
  </provider>
576
619
  </entry>
577
- <entry file="file://$PROJECT_DIR$/zip_dsl.gemspec">
620
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-1.9.3-p194@zip_dsl/gems/rspec-expectations-2.9.1/lib/rspec/matchers.rb">
578
621
  <provider selected="true" editor-type-id="text-editor">
579
- <state line="13" column="27" selection-start="544" selection-end="544" vertical-scroll-proportion="0.33711508" />
622
+ <state line="194" column="0" selection-start="6592" selection-end="6592" vertical-scroll-proportion="0.33272728">
623
+ <folding />
624
+ </state>
580
625
  </provider>
581
626
  </entry>
582
- <entry file="file://$PROJECT_DIR$/zip_dsl.gemspec.erb">
627
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-1.9.3-p194@zip_dsl/gems/meta_methods-1.0.1/lib/meta_methods/meta_methods.rb">
583
628
  <provider selected="true" editor-type-id="text-editor">
584
- <state line="13" column="18" selection-start="535" selection-end="535" vertical-scroll-proportion="0.0">
629
+ <state line="43" column="0" selection-start="1013" selection-end="1013" vertical-scroll-proportion="0.0">
585
630
  <folding />
586
631
  </state>
587
632
  </provider>
588
633
  </entry>
589
- <entry file="file://$PROJECT_DIR$/lib/zip_dsl/zip_writer.rb">
634
+ <entry file="file://$USER_HOME$/.rvm/gems/ruby-1.9.3-p194@zip_dsl/gems/rspec-core-2.9.0/lib/rspec/core/subject.rb">
590
635
  <provider selected="true" editor-type-id="text-editor">
591
- <state line="7" column="16" selection-start="144" selection-end="144" vertical-scroll-proportion="0.0">
636
+ <state line="31" column="0" selection-start="1096" selection-end="1096" vertical-scroll-proportion="0.0">
592
637
  <folding />
593
638
  </state>
594
639
  </provider>
595
640
  </entry>
596
- <entry file="file://$PROJECT_DIR$/lib/zip_dsl/zip_dsl.rb">
641
+ <entry file="file://$PROJECT_DIR$/spec/zip_builder_spec.rb">
597
642
  <provider selected="true" editor-type-id="text-editor">
598
- <state line="3" column="14" selection-start="53" selection-end="53" vertical-scroll-proportion="0.0">
643
+ <state line="3" column="17" selection-start="85" selection-end="85" vertical-scroll-proportion="0.08067227">
599
644
  <folding />
600
645
  </state>
601
646
  </provider>
602
647
  </entry>
603
- <entry file="file://$PROJECT_DIR$/lib/zip_dsl.rb">
648
+ <entry file="file://$PROJECT_DIR$/lib/directory_builder.rb">
604
649
  <provider selected="true" editor-type-id="text-editor">
605
- <state line="3" column="136" selection-start="84" selection-end="84" vertical-scroll-proportion="0.0">
650
+ <state line="37" column="66" selection-start="738" selection-end="783" vertical-scroll-proportion="0.0">
606
651
  <folding />
607
652
  </state>
608
653
  </provider>
609
654
  </entry>
610
- <entry file="file://$PROJECT_DIR$/Gemfile">
655
+ <entry file="file://$PROJECT_DIR$/spec/directory_builder_spec.rb">
611
656
  <provider selected="true" editor-type-id="text-editor">
612
- <state line="5" column="15" selection-start="85" selection-end="85" vertical-scroll-proportion="0.0">
657
+ <state line="77" column="54" selection-start="2099" selection-end="2099" vertical-scroll-proportion="0.0">
613
658
  <folding />
614
659
  </state>
615
660
  </provider>
data/.idea/zip_dsl.iml CHANGED
@@ -16,6 +16,7 @@
16
16
  <orderEntry type="library" scope="PROVIDED" name="rspec-core (v2.9.0, RVM: ruby-1.9.3-p194 [zip_dsl]) [gem]" level="application" />
17
17
  <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v2.9.1, RVM: ruby-1.9.3-p194 [zip_dsl]) [gem]" level="application" />
18
18
  <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v2.9.0, RVM: ruby-1.9.3-p194 [zip_dsl]) [gem]" level="application" />
19
+ <orderEntry type="library" scope="PROVIDED" name="zip (v2.0.2, RVM: ruby-1.9.3-p194 [zip_dsl]) [gem]" level="application" />
19
20
  </component>
20
21
  </module>
21
22
 
data/Gemfile CHANGED
@@ -2,7 +2,7 @@ source :rubygems
2
2
 
3
3
  group :default do
4
4
  gem "meta_methods"
5
- #gem "zip"
5
+ gem "zip"
6
6
  gem "rubyzip", "0.9.8"
7
7
  gem "file_utils"
8
8
  end
@@ -0,0 +1,105 @@
1
+ require 'file_utils/file_utils'
2
+ require 'meta_methods'
3
+
4
+ class DirectoryBuilder
5
+ include FileUtils
6
+ include MetaMethods
7
+
8
+ def initialize name, basedir
9
+ @name = name
10
+ @basedir = File.expand_path(basedir)
11
+ end
12
+
13
+ def build(name=nil, &execute_block)
14
+ name = name.nil? ? @name : name
15
+
16
+ evaluate_dsl(self, nil, execute_block)
17
+ end
18
+
19
+ def entry_exist? entry_name
20
+ File.exist? full_name("#@name/#{entry_name}")
21
+ end
22
+
23
+ def entries_size
24
+ list = Dir.glob("#{full_name(@name)}/**/*")
25
+
26
+ cnt = 0
27
+ list.each do |name|
28
+ cnt += 1 if File.file?(name)
29
+ end
30
+
31
+ cnt
32
+ end
33
+
34
+ def list dir="."
35
+ list = pattern_to_files full_name("#@name/#{dir}"), "**/*"
36
+
37
+ list.each_with_index do |name, index|
38
+ list[index] = name[full_name("#@name/#{dir}").length+1..-1]
39
+ end
40
+ end
41
+
42
+ def file params
43
+ to_dir = to_dir(params[:name], params[:to_dir])
44
+
45
+ create_directory full_name(to_dir)
46
+
47
+ write_to_file full_name(params[:name]), full_name("#{to_dir}/#{File.basename(params[:name])}")
48
+ end
49
+
50
+ def content params
51
+ source = params[:source]
52
+
53
+ stream = source.kind_of?(String) ? StringIO.new(source) : source
54
+ content = stream.read
55
+
56
+ to_dir = to_dir(params[:name], params[:to_dir])
57
+
58
+ create_directory full_name(to_dir)
59
+
60
+ write_content_to_file content, full_name("#{to_dir}/#{File.basename(params[:name])}")
61
+ end
62
+
63
+ def directory params
64
+ if params[:from_dir].nil?
65
+ create_empty_directory params[:to_dir]
66
+ else
67
+ if params[:to_dir] == "." || params[:to_dir].nil?
68
+ to_dir = "#@name"
69
+ else
70
+ to_dir = "#@name/#{params[:to_dir]}"
71
+ end
72
+
73
+ filter = params[:filter].nil? ? "**/*" : params[:filter]
74
+
75
+ copy_files full_name(params[:from_dir]), full_name(to_dir), filter
76
+ end
77
+ end
78
+
79
+ private
80
+
81
+ def to_dir name, dir
82
+ if dir.nil?
83
+ from_dir = File.dirname(name)
84
+ (from_dir == ".") ? @name : "#@name/#{from_dir}"
85
+ else
86
+ (dir == ".") ? @name : "#@name/#{dir}"
87
+ end
88
+ end
89
+
90
+ def create_empty_directory dir
91
+ to_dir = (dir == ".") ? @name : "#@name/#{dir}"
92
+
93
+ create_directory full_name(to_dir)
94
+ end
95
+
96
+ def full_name? name
97
+ File.expand_path(name) == name
98
+ end
99
+
100
+ def full_name name
101
+ full_name?(name) ? name : "#@basedir/#{name}"
102
+ end
103
+
104
+ end
105
+
@@ -0,0 +1,3 @@
1
+ module ZipDSL
2
+ VERSION = "1.0.5"
3
+ end
@@ -0,0 +1,3 @@
1
+ module ZipDSL
2
+ VERSION = "1.0.5"
3
+ end
@@ -0,0 +1,45 @@
1
+ require 'meta_methods'
2
+
3
+ class Zip::DSL
4
+ include MetaMethods
5
+
6
+ def initialize name, basedir
7
+ @name = File.expand_path(name)
8
+ @basedir = File.expand_path(basedir)
9
+ end
10
+
11
+ def build(name=nil, &execute_block)
12
+ name = name.nil? ? @name : name
13
+
14
+ create_block = lambda { Zip::Writer.new(name, @basedir) }
15
+ destroy_block = lambda {|writer| writer.close }
16
+
17
+ evaluate_dsl(create_block, destroy_block, execute_block)
18
+ end
19
+
20
+ def entry_exist? entry_name
21
+ create_block = lambda { Zip::Reader.new(@name) }
22
+ destroy_block = lambda {|reader| reader.close }
23
+ execute_block = lambda { |reader| reader.entry_exist?(entry_name) }
24
+
25
+ evaluate_dsl(create_block, destroy_block, execute_block)
26
+ end
27
+
28
+ def entries_size
29
+ create_block = lambda { Zip::Reader.new(@name) }
30
+ destroy_block = lambda {|reader| reader.close }
31
+ execute_block = lambda { |reader| reader.entries_size }
32
+
33
+ evaluate_dsl(create_block, destroy_block, execute_block)
34
+ end
35
+
36
+ def list dir="."
37
+ create_block = lambda { Zip::Reader.new(@name) }
38
+ destroy_block = lambda {|reader| reader.close }
39
+ execute_block = lambda { |reader| reader.list(dir) }
40
+
41
+ evaluate_dsl(create_block, destroy_block, execute_block)
42
+ end
43
+
44
+ end
45
+
@@ -0,0 +1,65 @@
1
+ require 'zip/zip'
2
+
3
+ class Zip::Reader
4
+ include Enumerable
5
+
6
+ def initialize name
7
+ @zis = Zip::ZipInputStream.new(name)
8
+ end
9
+
10
+ def each(&block)
11
+ @zis.rewind
12
+
13
+ while (entry = @zis.get_next_entry)
14
+ block.call(entry)
15
+ end
16
+ end
17
+
18
+ def close
19
+ @zis.close
20
+ end
21
+
22
+ def entry_exist? entry_name
23
+ found = false
24
+
25
+ self.each do |entry|
26
+ if (entry.name == "./#{entry_name}") ||
27
+ (entry.name == entry_name) ||
28
+ !!(entry.name =~ /^#{entry_name}/)
29
+ found = true
30
+ break
31
+ end
32
+ end
33
+
34
+ found
35
+ end
36
+
37
+ def entries_size
38
+ cnt = 0
39
+
40
+ self.each { |_| cnt +=1 }
41
+
42
+ cnt
43
+ end
44
+
45
+ def list dir="."
46
+ entries = []
47
+
48
+ self.each do |entry|
49
+ if entry.name =~ /#{dir}/
50
+ name = (entry.name[0..1] == './') ? entry.name[2..-1] : entry.name
51
+
52
+ entries << name
53
+ end
54
+ end
55
+
56
+ entries
57
+ end
58
+
59
+ private
60
+
61
+ def dir_entry? entry
62
+ (%r{\/$} =~ entry.name)
63
+ end
64
+
65
+ end
@@ -0,0 +1,108 @@
1
+ require 'zip/zip'
2
+
3
+ class Zip::Writer
4
+
5
+ def initialize file_name, basedir
6
+ @zos = Zip::ZipOutputStream.new(file_name)
7
+ @basedir = basedir
8
+
9
+ @compression_level = Zlib::BEST_COMPRESSION
10
+ end
11
+
12
+ def close
13
+ @zos.close
14
+ end
15
+
16
+ def file params
17
+ to_dir = params[:to_dir].nil? ? File.dirname(params[:name]) : strip_dot(params[:to_dir])
18
+
19
+ add_file full_name(params[:name]), to_dir
20
+ end
21
+
22
+ def content params
23
+ to_dir = params[:to_dir].nil? ? File.dirname(params[:name]) : params[:to_dir]
24
+
25
+ add params[:name], to_dir, params[:source]
26
+ end
27
+
28
+ def directory params
29
+ if params[:from_dir].nil?
30
+ add_empty_directory params[:to_dir]
31
+ else
32
+ if params[:to_dir].nil?
33
+ to_dir = params[:from_dir]
34
+ else
35
+ to_dir = params[:to_dir]
36
+ end
37
+
38
+ filter = params[:filter].nil? ? "**/*" : params[:filter]
39
+
40
+ add_directory params[:from_dir], to_dir, filter
41
+ end
42
+ end
43
+
44
+ private
45
+
46
+ def add_file name, to_dir = nil
47
+ add name, to_dir, File.open(name)
48
+ end
49
+
50
+ def add_directory from_dir, to_dir, filter="**/*"
51
+ patterns = filter.kind_of?(String) ? [filter] : filter
52
+
53
+ patterns.each do |pattern|
54
+ files = pattern_to_files full_name(from_dir), pattern
55
+
56
+ files.each do |file_name|
57
+ suffix = File.dirname(file_name)["#@basedir/#{from_dir}".size+1..-1]
58
+ dir = suffix.nil? ? to_dir : "#{to_dir}/#{suffix}"
59
+
60
+ if File.file?(file_name)
61
+ add_file file_name, dir
62
+ end
63
+ end
64
+ end
65
+ end
66
+
67
+ def pattern_to_files dir, pattern
68
+ Dir.glob("#{dir}/#{pattern}")
69
+ end
70
+
71
+ def add_empty_directory(name)
72
+ entry = Zip::ZipStreamableDirectory.new "", "#{name}/"
73
+
74
+ @zos.put_next_entry entry
75
+ end
76
+
77
+ def add name, to_dir, source
78
+ create_new_entry("#{to_dir}/#{File.basename(name)}", source)
79
+ end
80
+
81
+ def create_new_entry(name, source)
82
+ stream = source.kind_of?(String) ? StringIO.new(source) : source
83
+ content = stream.read
84
+
85
+ entry = Zip::ZipEntry.new("", name)
86
+
87
+ @zos.put_next_entry entry, @compression_level
88
+
89
+ @zos.write content
90
+ end
91
+
92
+ def strip_dot name
93
+ if name[name.length-2..-1] == "/."
94
+ name = name[0..name.length-3]
95
+ end
96
+
97
+ name
98
+ end
99
+
100
+ def full_name? name
101
+ File.expand_path(name) == name
102
+ end
103
+
104
+ def full_name name
105
+ full_name?(name) ? name : "#@basedir/#{name}"
106
+ end
107
+
108
+ end
@@ -0,0 +1,3 @@
1
+ require 'zip_dsl/zip_reader'
2
+ require 'zip_dsl/zip_writer'
3
+ require 'zip_dsl/zip_dsl'
@@ -0,0 +1,65 @@
1
+ require 'zip/zip'
2
+
3
+ class Zip::Reader
4
+ include Enumerable
5
+
6
+ def initialize name
7
+ @zis = Zip::ZipInputStream.new(name)
8
+ end
9
+
10
+ def each(&block)
11
+ @zis.rewind
12
+
13
+ while (entry = @zis.get_next_entry)
14
+ block.call(entry)
15
+ end
16
+ end
17
+
18
+ def close
19
+ @zis.close
20
+ end
21
+
22
+ def entry_exist? entry_name
23
+ found = false
24
+
25
+ self.each do |entry|
26
+ if (entry.name == "./#{entry_name}") ||
27
+ (entry.name == entry_name) ||
28
+ !!(entry.name =~ /^#{entry_name}/)
29
+ found = true
30
+ break
31
+ end
32
+ end
33
+
34
+ found
35
+ end
36
+
37
+ def entries_size
38
+ cnt = 0
39
+
40
+ self.each { |_| cnt +=1 }
41
+
42
+ cnt
43
+ end
44
+
45
+ def list dir="."
46
+ entries = []
47
+
48
+ self.each do |entry|
49
+ if entry.name =~ /#{dir}/
50
+ name = (entry.name[0..1] == './') ? entry.name[2..-1] : entry.name
51
+
52
+ entries << name
53
+ end
54
+ end
55
+
56
+ entries
57
+ end
58
+
59
+ private
60
+
61
+ def dir_entry? entry
62
+ (%r{\/$} =~ entry.name)
63
+ end
64
+
65
+ end
@@ -0,0 +1,108 @@
1
+ require 'zip/zip'
2
+
3
+ class Zip::Writer
4
+
5
+ def initialize file_name, basedir
6
+ @zos = Zip::ZipOutputStream.new(file_name)
7
+ @basedir = basedir
8
+
9
+ @compression_level = Zlib::BEST_COMPRESSION
10
+ end
11
+
12
+ def close
13
+ @zos.close
14
+ end
15
+
16
+ def file params
17
+ to_dir = params[:to_dir].nil? ? File.dirname(params[:name]) : strip_dot(params[:to_dir])
18
+
19
+ add_file full_name(params[:name]), to_dir
20
+ end
21
+
22
+ def content params
23
+ to_dir = params[:to_dir].nil? ? File.dirname(params[:name]) : params[:to_dir]
24
+
25
+ add params[:name], to_dir, params[:source]
26
+ end
27
+
28
+ def directory params
29
+ if params[:from_dir].nil?
30
+ add_empty_directory params[:to_dir]
31
+ else
32
+ if params[:to_dir].nil?
33
+ to_dir = params[:from_dir]
34
+ else
35
+ to_dir = params[:to_dir]
36
+ end
37
+
38
+ filter = params[:filter].nil? ? "**/*" : params[:filter]
39
+
40
+ add_directory params[:from_dir], to_dir, filter
41
+ end
42
+ end
43
+
44
+ private
45
+
46
+ def add_file name, to_dir = nil
47
+ add name, to_dir, File.open(name)
48
+ end
49
+
50
+ def add_directory from_dir, to_dir, filter="**/*"
51
+ patterns = filter.kind_of?(String) ? [filter] : filter
52
+
53
+ patterns.each do |pattern|
54
+ files = pattern_to_files full_name(from_dir), pattern
55
+
56
+ files.each do |file_name|
57
+ suffix = File.dirname(file_name)["#@basedir/#{from_dir}".size+1..-1]
58
+ dir = suffix.nil? ? to_dir : "#{to_dir}/#{suffix}"
59
+
60
+ if File.file?(file_name)
61
+ add_file file_name, dir
62
+ end
63
+ end
64
+ end
65
+ end
66
+
67
+ def pattern_to_files dir, pattern
68
+ Dir.glob("#{dir}/#{pattern}")
69
+ end
70
+
71
+ def add_empty_directory(name)
72
+ entry = Zip::ZipStreamableDirectory.new "", "#{name}/"
73
+
74
+ @zos.put_next_entry entry
75
+ end
76
+
77
+ def add name, to_dir, source
78
+ create_new_entry("#{to_dir}/#{File.basename(name)}", source)
79
+ end
80
+
81
+ def create_new_entry(name, source)
82
+ stream = source.kind_of?(String) ? StringIO.new(source) : source
83
+ content = stream.read
84
+
85
+ entry = Zip::ZipEntry.new("", name)
86
+
87
+ @zos.put_next_entry entry, @compression_level
88
+
89
+ @zos.write content
90
+ end
91
+
92
+ def strip_dot name
93
+ if name[name.length-2..-1] == "/."
94
+ name = name[0..name.length-3]
95
+ end
96
+
97
+ name
98
+ end
99
+
100
+ def full_name? name
101
+ File.expand_path(name) == name
102
+ end
103
+
104
+ def full_name name
105
+ full_name?(name) ? name : "#@basedir/#{name}"
106
+ end
107
+
108
+ end
@@ -5,24 +5,23 @@ class DirectoryBuilder
5
5
  include FileUtils
6
6
  include MetaMethods
7
7
 
8
- def initialize name
8
+ def initialize name, basedir
9
9
  @name = name
10
+ @basedir = File.expand_path(basedir)
10
11
  end
11
12
 
12
13
  def build(name=nil, &execute_block)
13
14
  name = name.nil? ? @name : name
14
15
 
15
- name = name.nil? ? @name : name
16
-
17
16
  evaluate_dsl(self, nil, execute_block)
18
17
  end
19
18
 
20
19
  def entry_exist? entry_name
21
- File.exist? "#@name/#{entry_name}"
20
+ File.exist? full_name("#@name/#{entry_name}")
22
21
  end
23
22
 
24
23
  def entries_size
25
- list = Dir.glob("#@name/**/*")
24
+ list = Dir.glob("#{full_name(@name)}/**/*")
26
25
 
27
26
  cnt = 0
28
27
  list.each do |name|
@@ -33,19 +32,19 @@ class DirectoryBuilder
33
32
  end
34
33
 
35
34
  def list dir="."
36
- list = pattern_to_files "#@name/#{dir}", "**/*"
35
+ list = pattern_to_files full_name("#@name/#{dir}"), "**/*"
37
36
 
38
37
  list.each_with_index do |name, index|
39
- list[index] = name[@name.length+1..-1]
38
+ list[index] = name[full_name("#@name/#{dir}").length+1..-1]
40
39
  end
41
40
  end
42
41
 
43
42
  def file params
44
43
  to_dir = to_dir(params[:name], params[:to_dir])
45
44
 
46
- create_directory to_dir
45
+ create_directory full_name(to_dir)
47
46
 
48
- write_to_file params[:name], "#{to_dir}/#{File.basename(params[:name])}"
47
+ write_to_file full_name(params[:name]), full_name("#{to_dir}/#{File.basename(params[:name])}")
49
48
  end
50
49
 
51
50
  def content params
@@ -56,9 +55,9 @@ class DirectoryBuilder
56
55
 
57
56
  to_dir = to_dir(params[:name], params[:to_dir])
58
57
 
59
- create_directory to_dir
58
+ create_directory full_name(to_dir)
60
59
 
61
- write_content_to_file content, "#{to_dir}/#{File.basename(params[:name])}"
60
+ write_content_to_file content, full_name("#{to_dir}/#{File.basename(params[:name])}")
62
61
  end
63
62
 
64
63
  def directory params
@@ -73,7 +72,7 @@ class DirectoryBuilder
73
72
 
74
73
  filter = params[:filter].nil? ? "**/*" : params[:filter]
75
74
 
76
- copy_files params[:from_dir], to_dir, filter
75
+ copy_files full_name(params[:from_dir]), full_name(to_dir), filter
77
76
  end
78
77
  end
79
78
 
@@ -91,7 +90,15 @@ class DirectoryBuilder
91
90
  def create_empty_directory dir
92
91
  to_dir = (dir == ".") ? @name : "#@name/#{dir}"
93
92
 
94
- create_directory to_dir
93
+ create_directory full_name(to_dir)
94
+ end
95
+
96
+ def full_name? name
97
+ File.expand_path(name) == name
98
+ end
99
+
100
+ def full_name name
101
+ full_name?(name) ? name : "#@basedir/#{name}"
95
102
  end
96
103
 
97
104
  end
@@ -1,3 +1,3 @@
1
1
  module ZipDSL
2
- VERSION = "1.0.5"
2
+ VERSION = "1.0.6"
3
3
  end
@@ -4,7 +4,7 @@ class Zip::DSL
4
4
  include MetaMethods
5
5
 
6
6
  def initialize name, basedir
7
- @name = name
7
+ @name = File.expand_path(name)
8
8
  @basedir = File.expand_path(basedir)
9
9
  end
10
10
 
@@ -6,22 +6,23 @@ require 'file_utils/file_utils'
6
6
  describe DirectoryBuilder do
7
7
  include FileUtils
8
8
 
9
- subject { DirectoryBuilder.new(("build/test")) }
9
+ let(:basedir) { File.expand_path("..") }
10
+ subject { DirectoryBuilder.new("build/test", "..") }
10
11
 
11
12
  before do
12
- delete_directory "build/test"
13
+ delete_directory "#{basedir}/build"
13
14
  end
14
15
 
15
16
  it "should create new zip file with files at particular folder" do
16
17
  subject.build do
17
18
  file :name => "Gemfile"
18
- file :name => "Guardfile", :to_dir => "my_config"
19
- file :name => "config/boot.rb", :to_dir => "my_config"
19
+ file :name => "Rakefile", :to_dir => "my_config"
20
+ file :name => "spec/spec_helper.rb", :to_dir => "my_config"
20
21
  end
21
22
 
22
23
  subject.entry_exist?("Gemfile").should be_true
23
- subject.entry_exist?("my_config/Guardfile").should be_true
24
- subject.entry_exist?("my_config/boot.rb").should be_true
24
+ subject.entry_exist?("my_config/Rakefile").should be_true
25
+ subject.entry_exist?("my_config/spec_helper.rb").should be_true
25
26
 
26
27
  subject.entries_size.should == 3
27
28
  end
@@ -36,8 +37,9 @@ describe DirectoryBuilder do
36
37
  end
37
38
 
38
39
  it "should create new zip file with file created from file" do
40
+ src = File.open("#{basedir}/Rakefile")
39
41
  subject.build do
40
- content :name => "Rakefile", :source => File.open("Rakefile")
42
+ content :name => "Rakefile", :source => src
41
43
  end
42
44
 
43
45
  subject.entry_exist?("Rakefile").should be_true
@@ -60,20 +62,20 @@ describe DirectoryBuilder do
60
62
  subject.entry_exist?("my_config").should be_true
61
63
  end
62
64
 
63
- it "should display files in specified directory" do
65
+ it "should display files in current directory" do
64
66
  subject.build do
65
- directory :from_dir => "config"
67
+ directory :from_dir => "spec"
66
68
  end
67
69
 
68
- subject.list.first.should =~ %r{app}
70
+ subject.list.should include "spec_helper.rb"
69
71
  end
70
72
 
71
73
  it "should display files in specified subdirectory" do
72
74
  subject.build do
73
- directory :from_dir => "config"
75
+ directory :from_dir => "lib"
74
76
  end
75
77
 
76
- subject.list("environments").first.should =~ %r{environments/development.rb}
78
+ subject.list("zip_dsl").first.should =~ %r{version.rb}
77
79
  end
78
80
 
79
81
  end
@@ -58,7 +58,7 @@ describe Zip::DSL do
58
58
  subject.entries_size.should > 1
59
59
  end
60
60
 
61
- it "should display files in specified directory" do
61
+ it "should display files in current directory" do
62
62
  subject.build do
63
63
  directory :from_dir => "spec"
64
64
  end
data/zip_dsl.gemspec CHANGED
@@ -16,6 +16,7 @@ Gem::Specification.new do |spec|
16
16
  spec.version = ZipDSL::VERSION
17
17
 
18
18
  spec.add_runtime_dependency "meta_methods", [">= 0"]
19
+ spec.add_runtime_dependency "zip", [">= 0"]
19
20
  spec.add_runtime_dependency "rubyzip", ["= 0.9.8"]
20
21
  spec.add_runtime_dependency "file_utils", [">= 0"]
21
22
  spec.add_development_dependency "gemspec_deps_gen", [">= 0"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zip_dsl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -27,6 +27,22 @@ dependencies:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: zip
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
30
46
  - !ruby/object:Gem::Dependency
31
47
  name: rubyzip
32
48
  requirement: !ruby/object:Gem::Requirement
@@ -113,6 +129,15 @@ files:
113
129
  - LICENSE
114
130
  - README.md
115
131
  - Rakefile
132
+ - build/test/directory_builder.rb
133
+ - build/test/version.rb
134
+ - build/test/zip_dsl.rb
135
+ - build/test/zip_dsl/version.rb
136
+ - build/test/zip_dsl/zip_dsl.rb
137
+ - build/test/zip_dsl/zip_reader.rb
138
+ - build/test/zip_dsl/zip_writer.rb
139
+ - build/test/zip_reader.rb
140
+ - build/test/zip_writer.rb
116
141
  - lib/directory_builder.rb
117
142
  - lib/zip_dsl.rb
118
143
  - lib/zip_dsl/version.rb