furoshiki 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/.ruby-version +1 -1
  4. data/Gemfile +0 -1
  5. data/Rakefile +5 -0
  6. data/furoshiki.gemspec +1 -1
  7. data/lib/furoshiki/configuration.rb +142 -0
  8. data/lib/furoshiki/jar.rb +41 -0
  9. data/lib/furoshiki/jar_app.rb +225 -0
  10. data/lib/furoshiki/util.rb +27 -0
  11. data/lib/furoshiki/validator.rb +42 -0
  12. data/lib/furoshiki/version.rb +1 -1
  13. data/lib/furoshiki/warbler_extensions.rb +12 -0
  14. data/lib/furoshiki.rb +4 -3
  15. data/lib/warbler/traits/furoshiki.rb +31 -0
  16. data/spec/{shoes/swt_app_spec.rb → app_spec.rb} +29 -22
  17. data/spec/configuration_spec.rb +12 -0
  18. data/spec/fixtures/config.yaml +1 -0
  19. data/spec/{shoes → fixtures}/test_app/app.yaml +0 -0
  20. data/spec/{shoes → fixtures}/test_app/bin/hello_world +0 -0
  21. data/spec/{shoes → fixtures}/test_app/dir_to_ignore/file_to_ignore.txt +0 -0
  22. data/spec/{shoes → fixtures}/test_app/img/boots.icns +0 -0
  23. data/spec/{shoes → fixtures}/test_app/img/boots.ico +0 -0
  24. data/spec/{shoes → fixtures}/test_app/img/boots_512x512x32.png +0 -0
  25. data/spec/{shoes → fixtures}/test_app/sibling.rb +0 -0
  26. data/spec/fixtures/test_project/bin/hello.rb +1 -0
  27. data/spec/fixtures/test_project/dir_to_ignore/file_to_ignore.txt +1 -0
  28. data/spec/{shoes/swt_jar_spec.rb → jar_spec.rb} +25 -12
  29. data/spec/spec_helper.rb +51 -0
  30. data/spec/support/shared_config.rb +19 -0
  31. data/spec/support/shared_zip.rb +1 -1
  32. data/spec/util_spec.rb +57 -0
  33. metadata +73 -45
  34. data/lib/furoshiki/shoes/configuration.rb +0 -184
  35. data/lib/furoshiki/shoes/swt_app.rb +0 -230
  36. data/lib/furoshiki/shoes/swt_jar.rb +0 -67
  37. data/lib/furoshiki/shoes.rb +0 -15
  38. data/lib/warbler/traits/shoes.rb +0 -51
  39. data/spec/shoes/configuration_spec.rb +0 -198
  40. data/spec/shoes/spec_helper.rb +0 -70
  41. data/spec/shoes/support/shared_config.rb +0 -8
@@ -1,20 +1,19 @@
1
1
  require 'spec_helper'
2
- require_relative 'spec_helper'
3
2
  require 'pathname'
4
- require 'furoshiki/shoes/swt_app'
3
+ require 'furoshiki/jar_app'
5
4
 
6
5
  include PackageHelpers
7
6
 
8
- describe Furoshiki::Shoes::SwtApp do
9
- include_context 'config'
10
- include_context 'package'
7
+ describe Furoshiki::JarApp do
8
+ include_context 'generic furoshiki config'
9
+ include_context 'generic furoshiki project'
11
10
 
12
- let(:config) {Furoshiki::Shoes::Configuration.load @config_filename }
13
- subject {Furoshiki::Shoes::SwtApp.new config}
11
+ let(:config) {Furoshiki::Configuration.new @custom_config }
12
+ subject {Furoshiki::JarApp.new config}
14
13
 
15
14
  let(:launcher) { @output_file.join('Contents/MacOS/JavaAppLauncher') }
16
- let(:icon) { @output_file.join('Contents/Resources/boots.icns') }
17
- let(:jar) { @output_file.join('Contents/Java/sweet-nebulae.jar') }
15
+ let(:icon) { @output_file.join('Contents/Resources/Shoes.icns') }
16
+ let(:jar) { @output_file.join('Contents/Java/rubyapp.jar') }
18
17
 
19
18
  # $FUROSHIKI_HOME is set in spec_helper.rb for testing purposes,
20
19
  # but should default to $HOME
@@ -33,7 +32,7 @@ describe Furoshiki::Shoes::SwtApp do
33
32
  end
34
33
 
35
34
  context "default" do
36
- let(:cache_dir) { Pathname.new(SHOESSPEC_ROOT).join('.furoshiki', 'cache') }
35
+ let(:cache_dir) { Pathname.new(FUROSHIKI_SPEC_DIR).join('.furoshiki', 'cache') }
37
36
  its(:cache_dir) { should eq(cache_dir) }
38
37
 
39
38
  it "sets package dir to {pwd}/pkg" do
@@ -43,21 +42,25 @@ describe Furoshiki::Shoes::SwtApp do
43
42
  end
44
43
 
45
44
  its(:template_path) { should eq(cache_dir.join('shoes-app-template.zip')) }
46
- its(:remote_template_url) { should eq(Furoshiki::Shoes::SwtApp::REMOTE_TEMPLATE_URL) }
45
+ its(:remote_template_url) { should eq(Furoshiki::Configuration::JAR_APP_TEMPLATE_URL) }
47
46
  end
48
47
 
49
48
  context "when creating a .app" do
50
49
  before :all do
51
- @output_dir.rmtree if @output_dir.exist?
50
+ #@output_dir.rmtree if @output_dir.exist?
52
51
  @output_dir.mkpath
53
- app_name = 'Sugar Clouds.app'
52
+
53
+ app_name = 'Ruby App.app'
54
54
  @output_file = @output_dir.join app_name
55
- config = Furoshiki::Shoes::Configuration.load @config_filename
56
- @subject = Furoshiki::Shoes::SwtApp.new config
55
+
56
+ # Config picks up Dir.pwd
57
57
  Dir.chdir @app_dir do
58
+ config = Furoshiki::Configuration.new(@custom_config)
59
+ @subject = Furoshiki::JarApp.new(config)
58
60
  @subject.package
59
61
  end
60
62
  end
63
+
61
64
  subject { @subject }
62
65
 
63
66
  its(:template_path) { should exist }
@@ -101,30 +104,34 @@ describe Furoshiki::Shoes::SwtApp do
101
104
  end
102
105
 
103
106
  it "sets identifier" do
104
- expect(@plist['CFBundleIdentifier']).to eq('com.hackety.shoes.sweet-nebulae')
107
+ expect(@plist['CFBundleIdentifier']).to eq('com.hackety.shoes.rubyapp')
105
108
  end
106
109
 
107
110
  it "sets display name" do
108
- expect(@plist['CFBundleDisplayName']).to eq('Sugar Clouds')
111
+ expect(@plist['CFBundleDisplayName']).to eq('Ruby App')
109
112
  end
110
113
 
111
114
  it "sets bundle name" do
112
- expect(@plist['CFBundleName']).to eq('Sugar Clouds')
115
+ expect(@plist['CFBundleName']).to eq('Ruby App')
113
116
  end
114
117
 
115
118
  it "sets icon" do
116
- expect(@plist['CFBundleIconFile']).to eq('boots.icns')
119
+ expect(@plist['CFBundleIconFile']).to eq('Shoes.icns')
117
120
  end
118
121
 
119
122
  it "sets version" do
120
- expect(@plist['CFBundleVersion']).to eq('0.0.1')
123
+ expect(@plist['CFBundleVersion']).to eq('0.0.0')
121
124
  end
122
125
  end
123
126
  end
124
127
 
125
128
  describe "with an invalid configuration" do
126
- let(:config) { Furoshiki::Shoes::Configuration.new }
127
- subject { Furoshiki::Shoes::SwtApp.new config }
129
+ let(:config) { Furoshiki::Configuration.new }
130
+ subject { Furoshiki::JarApp.new config }
131
+
132
+ before do
133
+ allow(config).to receive(:valid?) { false }
134
+ end
128
135
 
129
136
  it "fails to initialize" do
130
137
  expect { subject }.to raise_error(Furoshiki::ConfigurationError)
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+ require 'furoshiki/configuration'
3
+
4
+ describe Furoshiki::Configuration do
5
+ context "defaults" do
6
+ let(:config) { Furoshiki::Configuration.new }
7
+
8
+ it "is valid" do
9
+ expect(config).to be_valid
10
+ end
11
+ end
12
+ end
@@ -0,0 +1 @@
1
+ gems: 'rubyzip'
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1 @@
1
+ puts "Hello, world!"
@@ -0,0 +1 @@
1
+ should be ignored
@@ -1,26 +1,28 @@
1
1
  require 'spec_helper'
2
2
  require_relative 'spec_helper'
3
3
  require 'pathname'
4
- require 'furoshiki/shoes/swt_jar'
4
+ require 'furoshiki/jar'
5
5
 
6
6
  include PackageHelpers
7
7
 
8
- describe Furoshiki::Shoes::SwtJar do
9
- include_context 'config'
10
- include_context 'package'
8
+ describe Furoshiki::Jar do
9
+ include_context 'generic furoshiki config'
10
+ include_context 'generic furoshiki project'
11
11
 
12
12
  context "when creating a .jar" do
13
13
  before :all do
14
14
  @output_dir.rmtree if @output_dir.exist?
15
15
  @output_dir.mkpath
16
- config = Furoshiki::Shoes::Configuration.load(@config_filename)
17
- @subject = Furoshiki::Shoes::SwtJar.new(config)
16
+
17
+ # Config picks up Dir.pwd
18
18
  Dir.chdir @app_dir do
19
+ config = Furoshiki::Configuration.new(@custom_config)
20
+ @subject = Furoshiki::Jar.new(config)
19
21
  @jar_path = @subject.package(@output_dir)
20
22
  end
21
23
  end
22
24
 
23
- let(:jar_name) { 'sweet-nebulae.jar' }
25
+ let(:jar_name) { 'rubyapp.jar' }
24
26
  let(:output_file) { Pathname.new(@output_dir.join jar_name) }
25
27
  subject { @subject }
26
28
 
@@ -36,9 +38,16 @@ describe Furoshiki::Shoes::SwtJar do
36
38
  expect(File.size(output_file)).to be < 50 * 1024 * 1024
37
39
  end
38
40
 
39
- it "excludes directories recursively" do
40
- jar = Zip::File.new(output_file)
41
- expect(jar.entries).not_to include("dir_to_ignore/file_to_ignore")
41
+ context "inspecting contents" do
42
+ let (:jar) { Zip::File.new(output_file) }
43
+
44
+ it "includes a specified gem" do
45
+ expect(jar.glob "gems/rubyzip*").to_not be_empty
46
+ end
47
+
48
+ it "does not include a non-specified gem" do
49
+ expect(jar.glob "gems/warbler*").to be_empty
50
+ end
42
51
  end
43
52
 
44
53
  its(:default_dir) { should eq(@output_dir) }
@@ -46,8 +55,12 @@ describe Furoshiki::Shoes::SwtJar do
46
55
  end
47
56
 
48
57
  describe "with an invalid configuration" do
49
- let(:config) { Furoshiki::Shoes::Configuration.new }
50
- subject { Furoshiki::Shoes::SwtJar.new(config) }
58
+ let(:config) { Furoshiki::Configuration.new }
59
+ subject { Furoshiki::Jar.new(config) }
60
+
61
+ before do
62
+ allow(config).to receive(:valid?) { false }
63
+ end
51
64
 
52
65
  it "fails to initialize" do
53
66
  expect { subject }.to raise_error(Furoshiki::ConfigurationError)
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,55 @@
1
+ require 'rspec'
1
2
  require 'rspec/its'
3
+ require 'pry'
4
+ require 'pathname'
5
+
6
+ # Packaging caches files in $HOME/.furoshiki/cache by default.
7
+ # For testing, we override $HOME using $FUROSHIKI_HOME
8
+ FUROSHIKI_SPEC_DIR = Pathname.new(__FILE__).dirname.expand_path.to_s
9
+ ENV['FUROSHIKI_HOME'] = FUROSHIKI_SPEC_DIR
10
+
11
+ # Guards for running or not running specs. Specs in the guarded block only
12
+ # run if the guard conditions are met.
13
+ #
14
+ module Guard
15
+ # Runs specs only if platform matches
16
+ #
17
+ # @example
18
+ # platform_is :windows do
19
+ # it "does something only on windows" do
20
+ # # specification
21
+ # end
22
+ # end
23
+ def platform_is(platform)
24
+ yield if self.send "platform_is_#{platform.to_s}"
25
+ end
26
+
27
+ # Runs specs only if platform does not match
28
+ #
29
+ # @example
30
+ # platform_is_not :windows do
31
+ # it "does something only on posix systems" do
32
+ # # specification
33
+ # end
34
+ # end
35
+ def platform_is_not(platform)
36
+ yield unless self.send "platform_is_#{platform.to_s}"
37
+ end
38
+
39
+ def platform_is_windows
40
+ return RbConfig::CONFIG['host_os'] =~ /windows|mswin/i
41
+ end
42
+
43
+ def platform_is_linux
44
+ return RbConfig::CONFIG['host_os'] =~ /linux/i
45
+ end
46
+
47
+ def platform_is_osx
48
+ return RbConfig::CONFIG['host_os'] =~ /darwin/i
49
+ end
50
+ end
51
+
52
+ include Guard
2
53
 
3
54
  module PackageHelpers
4
55
  # need these values from a context block, so let doesn't work
@@ -0,0 +1,19 @@
1
+ require 'yaml'
2
+ require 'pathname'
3
+ require 'furoshiki/util'
4
+
5
+ shared_context 'generic furoshiki config' do
6
+ before :all do
7
+ @config_filename = Pathname.new(__FILE__).join('../../fixtures/config.yaml').cleanpath
8
+ yaml = YAML.load(@config_filename.open)
9
+ @custom_config = Object.new.extend(Furoshiki::Util).deep_symbolize_keys(yaml)
10
+ end
11
+ end
12
+
13
+ shared_context 'generic furoshiki project' do
14
+ before :all do
15
+ @app_dir = Pathname.new(__FILE__).join('../../fixtures/test_project')
16
+ @output_dir = @app_dir.join('pkg')
17
+ end
18
+ end
19
+
@@ -2,7 +2,7 @@ include ZipHelpers
2
2
 
3
3
  shared_context 'package' do
4
4
  before :all do
5
- @app_dir = spec_dir.join 'shoes/test_app'
5
+ @app_dir = spec_dir.join 'fixtures/test_app'
6
6
  @output_dir = @app_dir.join 'pkg'
7
7
  end
8
8
  end
data/spec/util_spec.rb ADDED
@@ -0,0 +1,57 @@
1
+ require_relative 'spec_helper'
2
+
3
+ describe "Utility functions" do
4
+ let(:utils) { Object.new.extend(Furoshiki::Util) }
5
+ let(:hash_with_string_keys) {
6
+ {
7
+ 'one' => 1,
8
+ :two => 2,
9
+ 'three' => {
10
+ 'a' => 'apple',
11
+ :b => 'banana',
12
+ 'c' => :cantaloupe
13
+ }
14
+ }
15
+ }
16
+ let(:hash_with_symbolized_keys) {
17
+ {
18
+ :one => 1,
19
+ :two => 2,
20
+ :three => {
21
+ :a => 'apple',
22
+ :b => 'banana',
23
+ :c => :cantaloupe
24
+ }
25
+ }
26
+ }
27
+ let(:hash_of_defaults) {
28
+ {
29
+ :one => 'uno',
30
+ :three => 'tres',
31
+ :four => 'cuatro'
32
+ }
33
+ }
34
+ let(:merged_hash_with_symbolized_keys) {
35
+ {
36
+ :one => 1,
37
+ :two => 2,
38
+ :three => {
39
+ :a => 'apple',
40
+ :b => 'banana',
41
+ :c => :cantaloupe
42
+ },
43
+ :four => 'cuatro'
44
+ }
45
+ }
46
+
47
+ it "symbolizes hash keys" do
48
+ symbolized = utils.deep_symbolize_keys(hash_with_string_keys)
49
+ expect(symbolized).to eq(hash_with_symbolized_keys)
50
+ end
51
+
52
+ it "merges with hash of defaults" do
53
+ merged = utils.merge_with_symbolized_keys(hash_of_defaults, hash_with_string_keys)
54
+ expect(merged).to eq(merged_hash_with_symbolized_keys)
55
+ end
56
+
57
+ end
metadata CHANGED
@@ -1,113 +1,113 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: furoshiki
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Klabnik
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-28 00:00:00.000000000 Z
11
+ date: 2015-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: warbler
15
- version_requirements: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ~>
18
- - !ruby/object:Gem::Version
19
- version: 1.4.4
20
14
  requirement: !ruby/object:Gem::Requirement
21
15
  requirements:
22
16
  - - ~>
23
17
  - !ruby/object:Gem::Version
24
18
  version: 1.4.4
19
+ name: warbler
25
20
  prerelease: false
26
21
  type: :runtime
27
- - !ruby/object:Gem::Dependency
28
- name: plist
29
22
  version_requirements: !ruby/object:Gem::Requirement
30
23
  requirements:
31
- - - '>='
24
+ - - ~>
32
25
  - !ruby/object:Gem::Version
33
- version: '0'
26
+ version: 1.4.4
27
+ - !ruby/object:Gem::Dependency
34
28
  requirement: !ruby/object:Gem::Requirement
35
29
  requirements:
36
30
  - - '>='
37
31
  - !ruby/object:Gem::Version
38
32
  version: '0'
33
+ name: plist
39
34
  prerelease: false
40
35
  type: :runtime
41
- - !ruby/object:Gem::Dependency
42
- name: rubyzip
43
36
  version_requirements: !ruby/object:Gem::Requirement
44
37
  requirements:
45
38
  - - '>='
46
39
  - !ruby/object:Gem::Version
47
- version: 1.0.0
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
48
42
  requirement: !ruby/object:Gem::Requirement
49
43
  requirements:
50
44
  - - '>='
51
45
  - !ruby/object:Gem::Version
52
46
  version: 1.0.0
47
+ name: rubyzip
53
48
  prerelease: false
54
49
  type: :runtime
55
- - !ruby/object:Gem::Dependency
56
- name: rake
57
50
  version_requirements: !ruby/object:Gem::Requirement
58
51
  requirements:
59
52
  - - '>='
60
53
  - !ruby/object:Gem::Version
61
- version: '0'
54
+ version: 1.0.0
55
+ - !ruby/object:Gem::Dependency
62
56
  requirement: !ruby/object:Gem::Requirement
63
57
  requirements:
64
58
  - - '>='
65
59
  - !ruby/object:Gem::Version
66
60
  version: '0'
61
+ name: rake
67
62
  prerelease: false
68
63
  type: :development
69
- - !ruby/object:Gem::Dependency
70
- name: rspec
71
64
  version_requirements: !ruby/object:Gem::Requirement
72
65
  requirements:
73
66
  - - '>='
74
67
  - !ruby/object:Gem::Version
75
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
76
70
  requirement: !ruby/object:Gem::Requirement
77
71
  requirements:
78
72
  - - '>='
79
73
  - !ruby/object:Gem::Version
80
- version: '0'
74
+ version: 3.0.0
75
+ name: rspec
81
76
  prerelease: false
82
77
  type: :development
83
- - !ruby/object:Gem::Dependency
84
- name: rspec-its
85
78
  version_requirements: !ruby/object:Gem::Requirement
86
79
  requirements:
87
80
  - - '>='
88
81
  - !ruby/object:Gem::Version
89
- version: '0'
82
+ version: 3.0.0
83
+ - !ruby/object:Gem::Dependency
90
84
  requirement: !ruby/object:Gem::Requirement
91
85
  requirements:
92
86
  - - '>='
93
87
  - !ruby/object:Gem::Version
94
88
  version: '0'
89
+ name: rspec-its
95
90
  prerelease: false
96
91
  type: :development
97
- - !ruby/object:Gem::Dependency
98
- name: pry
99
92
  version_requirements: !ruby/object:Gem::Requirement
100
93
  requirements:
101
94
  - - '>='
102
95
  - !ruby/object:Gem::Version
103
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
104
98
  requirement: !ruby/object:Gem::Requirement
105
99
  requirements:
106
100
  - - '>='
107
101
  - !ruby/object:Gem::Version
108
102
  version: '0'
103
+ name: pry
109
104
  prerelease: false
110
105
  type: :development
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
111
  description: Create .app, .exe, and $LINUX_PACKAGE versions of your application, with its own embedded Ruby.
112
112
  email: steve@steveklabnik.com
113
113
  executables: []
@@ -126,34 +126,39 @@ files:
126
126
  - example/Rakefile
127
127
  - furoshiki.gemspec
128
128
  - lib/furoshiki.rb
129
+ - lib/furoshiki/configuration.rb
129
130
  - lib/furoshiki/exceptions.rb
130
- - lib/furoshiki/shoes.rb
131
- - lib/furoshiki/shoes/configuration.rb
132
- - lib/furoshiki/shoes/swt_app.rb
133
- - lib/furoshiki/shoes/swt_jar.rb
131
+ - lib/furoshiki/jar.rb
132
+ - lib/furoshiki/jar_app.rb
133
+ - lib/furoshiki/util.rb
134
+ - lib/furoshiki/validator.rb
134
135
  - lib/furoshiki/version.rb
136
+ - lib/furoshiki/warbler_extensions.rb
135
137
  - lib/furoshiki/zip.rb
136
138
  - lib/furoshiki/zip/directory.rb
137
139
  - lib/furoshiki/zip/directory_contents.rb
138
140
  - lib/furoshiki/zip/recursive.rb
139
- - lib/warbler/traits/shoes.rb
140
- - spec/shoes/configuration_spec.rb
141
- - spec/shoes/spec_helper.rb
142
- - spec/shoes/support/shared_config.rb
143
- - spec/shoes/swt_app_spec.rb
144
- - spec/shoes/swt_jar_spec.rb
145
- - spec/shoes/test_app/app.yaml
146
- - spec/shoes/test_app/bin/hello_world
147
- - spec/shoes/test_app/dir_to_ignore/file_to_ignore.txt
148
- - spec/shoes/test_app/img/boots.icns
149
- - spec/shoes/test_app/img/boots.ico
150
- - spec/shoes/test_app/img/boots_512x512x32.png
151
- - spec/shoes/test_app/sibling.rb
141
+ - lib/warbler/traits/furoshiki.rb
142
+ - spec/app_spec.rb
143
+ - spec/configuration_spec.rb
144
+ - spec/fixtures/config.yaml
145
+ - spec/fixtures/test_app/app.yaml
146
+ - spec/fixtures/test_app/bin/hello_world
147
+ - spec/fixtures/test_app/dir_to_ignore/file_to_ignore.txt
148
+ - spec/fixtures/test_app/img/boots.icns
149
+ - spec/fixtures/test_app/img/boots.ico
150
+ - spec/fixtures/test_app/img/boots_512x512x32.png
151
+ - spec/fixtures/test_app/sibling.rb
152
+ - spec/fixtures/test_project/bin/hello.rb
153
+ - spec/fixtures/test_project/dir_to_ignore/file_to_ignore.txt
154
+ - spec/jar_spec.rb
152
155
  - spec/spec_helper.rb
156
+ - spec/support/shared_config.rb
153
157
  - spec/support/shared_zip.rb
154
158
  - spec/support/zip/a/a.rb
155
159
  - spec/support/zip/a/b/b.png
156
160
  - spec/support/zip/a/b/c/c.rb
161
+ - spec/util_spec.rb
157
162
  - spec/zip/directory_contents_spec.rb
158
163
  - spec/zip/directory_spec.rb
159
164
  - vendor/appbundler-1.0.jar
@@ -176,8 +181,31 @@ required_rubygems_version: !ruby/object:Gem::Requirement
176
181
  version: '0'
177
182
  requirements: []
178
183
  rubyforge_project:
179
- rubygems_version: 2.1.9
184
+ rubygems_version: 2.4.2
180
185
  signing_key:
181
186
  specification_version: 4
182
187
  summary: Package and distribute applications with Ruby.
183
- test_files: []
188
+ test_files:
189
+ - spec/app_spec.rb
190
+ - spec/configuration_spec.rb
191
+ - spec/fixtures/config.yaml
192
+ - spec/fixtures/test_app/app.yaml
193
+ - spec/fixtures/test_app/bin/hello_world
194
+ - spec/fixtures/test_app/dir_to_ignore/file_to_ignore.txt
195
+ - spec/fixtures/test_app/img/boots.icns
196
+ - spec/fixtures/test_app/img/boots.ico
197
+ - spec/fixtures/test_app/img/boots_512x512x32.png
198
+ - spec/fixtures/test_app/sibling.rb
199
+ - spec/fixtures/test_project/bin/hello.rb
200
+ - spec/fixtures/test_project/dir_to_ignore/file_to_ignore.txt
201
+ - spec/jar_spec.rb
202
+ - spec/spec_helper.rb
203
+ - spec/support/shared_config.rb
204
+ - spec/support/shared_zip.rb
205
+ - spec/support/zip/a/a.rb
206
+ - spec/support/zip/a/b/b.png
207
+ - spec/support/zip/a/b/c/c.rb
208
+ - spec/util_spec.rb
209
+ - spec/zip/directory_contents_spec.rb
210
+ - spec/zip/directory_spec.rb
211
+ has_rdoc: