furoshiki 0.2.0 → 0.3.0

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 (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: