furoshiki 0.3.1 → 0.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b06f70e3280753e54b88135f40c8e83a42f95d9d
4
- data.tar.gz: 110d5572d7a5a4a18cce5a07ee194e4a36781ac3
3
+ metadata.gz: e1d32dc5465e95025e50c5d21471f5d52384b56c
4
+ data.tar.gz: f6c54405cff72df1aa6f96b2040d2b077c56928c
5
5
  SHA512:
6
- metadata.gz: 004ef5299847879a64e4e21427adc2ee2cd61af23e8889ecd778a849f24a0e88399e0f2516698397f35a72a2866d79e879ea9f68041c46f838e3414c1a62aeaa
7
- data.tar.gz: 2653762668554500ad8330d0f4e7865b53cf79230d758ddc94f8659714ca63e4b572b9af42935e38f7747a36e95e15f567a151619e6ae5e8d291a27b2a4a6985
6
+ metadata.gz: bcf40eafe968ba9a044b7389c465c64726099d4fabeb0d32d662ae9c932f5c6ba0cc2b550636c090a26ba4732c719c74c4117b17a5ba20a02ce577ca7236c183
7
+ data.tar.gz: bf16aaa636595a789937c474beb31265cfb0503b4fe0225b11feee3ed7d664f40acaeb42f809dc3e346ab44c998e2cec7ca74ae1e1683065cb470681215f561d
@@ -1,4 +1,4 @@
1
1
  module Furoshiki
2
- VERSION = '0.3.1'
2
+ VERSION = '0.4.0'
3
3
  end
4
4
 
metadata CHANGED
@@ -1,33 +1,34 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: furoshiki
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
+ - Team Shoes
7
8
  - Steve Klabnik
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2015-05-16 00:00:00.000000000 Z
12
+ date: 2017-01-06 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  requirement: !ruby/object:Gem::Requirement
15
16
  requirements:
16
- - - ~>
17
+ - - "~>"
17
18
  - !ruby/object:Gem::Version
18
- version: 1.4.4
19
+ version: 2.0.4
19
20
  name: warbler
20
21
  prerelease: false
21
22
  type: :runtime
22
23
  version_requirements: !ruby/object:Gem::Requirement
23
24
  requirements:
24
- - - ~>
25
+ - - "~>"
25
26
  - !ruby/object:Gem::Version
26
- version: 1.4.4
27
+ version: 2.0.4
27
28
  - !ruby/object:Gem::Dependency
28
29
  requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - '>='
31
+ - - ">="
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0'
33
34
  name: plist
@@ -35,13 +36,13 @@ dependencies:
35
36
  type: :runtime
36
37
  version_requirements: !ruby/object:Gem::Requirement
37
38
  requirements:
38
- - - '>='
39
+ - - ">="
39
40
  - !ruby/object:Gem::Version
40
41
  version: '0'
41
42
  - !ruby/object:Gem::Dependency
42
43
  requirement: !ruby/object:Gem::Requirement
43
44
  requirements:
44
- - - '>='
45
+ - - ">="
45
46
  - !ruby/object:Gem::Version
46
47
  version: 1.0.0
47
48
  name: rubyzip
@@ -49,13 +50,13 @@ dependencies:
49
50
  type: :runtime
50
51
  version_requirements: !ruby/object:Gem::Requirement
51
52
  requirements:
52
- - - '>='
53
+ - - ">="
53
54
  - !ruby/object:Gem::Version
54
55
  version: 1.0.0
55
56
  - !ruby/object:Gem::Dependency
56
57
  requirement: !ruby/object:Gem::Requirement
57
58
  requirements:
58
- - - '>='
59
+ - - ">="
59
60
  - !ruby/object:Gem::Version
60
61
  version: '0'
61
62
  name: rake
@@ -63,13 +64,13 @@ dependencies:
63
64
  type: :development
64
65
  version_requirements: !ruby/object:Gem::Requirement
65
66
  requirements:
66
- - - '>='
67
+ - - ">="
67
68
  - !ruby/object:Gem::Version
68
69
  version: '0'
69
70
  - !ruby/object:Gem::Dependency
70
71
  requirement: !ruby/object:Gem::Requirement
71
72
  requirements:
72
- - - '>='
73
+ - - ">="
73
74
  - !ruby/object:Gem::Version
74
75
  version: 3.0.0
75
76
  name: rspec
@@ -77,13 +78,13 @@ dependencies:
77
78
  type: :development
78
79
  version_requirements: !ruby/object:Gem::Requirement
79
80
  requirements:
80
- - - '>='
81
+ - - ">="
81
82
  - !ruby/object:Gem::Version
82
83
  version: 3.0.0
83
84
  - !ruby/object:Gem::Dependency
84
85
  requirement: !ruby/object:Gem::Requirement
85
86
  requirements:
86
- - - '>='
87
+ - - ">="
87
88
  - !ruby/object:Gem::Version
88
89
  version: '0'
89
90
  name: rspec-its
@@ -91,13 +92,13 @@ dependencies:
91
92
  type: :development
92
93
  version_requirements: !ruby/object:Gem::Requirement
93
94
  requirements:
94
- - - '>='
95
+ - - ">="
95
96
  - !ruby/object:Gem::Version
96
97
  version: '0'
97
98
  - !ruby/object:Gem::Dependency
98
99
  requirement: !ruby/object:Gem::Requirement
99
100
  requirements:
100
- - - '>='
101
+ - - ">="
101
102
  - !ruby/object:Gem::Version
102
103
  version: '0'
103
104
  name: pry
@@ -105,26 +106,16 @@ dependencies:
105
106
  type: :development
106
107
  version_requirements: !ruby/object:Gem::Requirement
107
108
  requirements:
108
- - - '>='
109
+ - - ">="
109
110
  - !ruby/object:Gem::Version
110
111
  version: '0'
111
112
  description: Create .app, .exe, and $LINUX_PACKAGE versions of your application, with its own embedded Ruby.
112
- email: steve@steveklabnik.com
113
+ email: shoes@lists.mvmanila.com
113
114
  executables: []
114
115
  extensions: []
115
116
  extra_rdoc_files: []
116
117
  files:
117
- - .gitignore
118
- - .rspec
119
- - .ruby-gemset
120
- - .ruby-version
121
- - .travis.yml
122
- - Gemfile
123
118
  - LICENSE
124
- - README.rdoc
125
- - Rakefile
126
- - example/Rakefile
127
- - furoshiki.gemspec
128
119
  - lib/furoshiki.rb
129
120
  - lib/furoshiki/configuration.rb
130
121
  - lib/furoshiki/exceptions.rb
@@ -139,30 +130,8 @@ files:
139
130
  - lib/furoshiki/zip/directory_contents.rb
140
131
  - lib/furoshiki/zip/recursive.rb
141
132
  - 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
155
- - spec/spec_helper.rb
156
- - spec/support/shared_config.rb
157
- - spec/support/shared_zip.rb
158
- - spec/support/zip/a/a.rb
159
- - spec/support/zip/a/b/b.png
160
- - spec/support/zip/a/b/c/c.rb
161
- - spec/util_spec.rb
162
- - spec/zip/directory_contents_spec.rb
163
- - spec/zip/directory_spec.rb
164
133
  - vendor/appbundler-1.0.jar
165
- homepage: http://github.com/steveklabnik/furoshiki
134
+ homepage: http://github.com/shoes/furoshiki
166
135
  licenses: []
167
136
  metadata: {}
168
137
  post_install_message:
@@ -171,41 +140,18 @@ require_paths:
171
140
  - lib
172
141
  required_ruby_version: !ruby/object:Gem::Requirement
173
142
  requirements:
174
- - - '>='
143
+ - - ">="
175
144
  - !ruby/object:Gem::Version
176
145
  version: '0'
177
146
  required_rubygems_version: !ruby/object:Gem::Requirement
178
147
  requirements:
179
- - - '>='
148
+ - - ">="
180
149
  - !ruby/object:Gem::Version
181
150
  version: '0'
182
151
  requirements: []
183
152
  rubyforge_project:
184
- rubygems_version: 2.4.2
153
+ rubygems_version: 2.6.8
185
154
  signing_key:
186
155
  specification_version: 4
187
156
  summary: Package and distribute applications with Ruby.
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:
157
+ test_files: []
data/.gitignore DELETED
@@ -1,24 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
- .rvmrc
21
- Gemfile.lock
22
-
23
- ## PROJECT::SPECIFIC
24
- spec/.furoshiki
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- -c
2
- --order random
data/.ruby-gemset DELETED
@@ -1 +0,0 @@
1
- furoshiki
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- jruby-1.7.18
data/.travis.yml DELETED
@@ -1,11 +0,0 @@
1
- language: ruby
2
- script: "rspec"
3
- rvm: jruby
4
- notifications:
5
- irc: "irc.freenode.org#shoes"
6
- email:
7
- recipients:
8
- - wasnotrice@gmail.com
9
- - tobias.pfeiffer@student.hpi.uni-potsdam.de
10
- on_success: change # [always|never|change] # default: change
11
- on_failure: change # [always|never|change] # default: always
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
data/README.rdoc DELETED
@@ -1,66 +0,0 @@
1
- = furoshiki {<img src="https://travis-ci.org/shoes/furoshiki.png?branch=master" alt="Build Status" />}[https://travis-ci.org/shoes/furoshiki] {<img src="https://codeclimate.com/github/shoes/furoshiki.png" />}[https://codeclimate.com/github/shoes/furoshiki]
2
-
3
- 風呂敷 (Furoshiki) is a simple way to package your Ruby applications for
4
- distribution on Windows, Linux, and OSX. A 風呂敷 is "a type of traditional
5
- Japanese wrapping cloth that were frequently used to transport clothes, gifts,
6
- or other goods."
7
-
8
- == ALPHA WARNING
9
-
10
- This is all super alpha, and is subject to change at any time.
11
-
12
- == Packaging Shoes apps
13
-
14
- For the moment, we only really package Shoes apps. See ALPHA WARNING above ;)
15
-
16
- path = 'path/to/your/shoes-app' # See Furoshiki::Shoes::Configuration
17
- config = Furoshiki::Shoes::Configuration.load(path)
18
- packager = Furoshiki::Shoes.new(:swt, :app, config)
19
- packager.package
20
-
21
- Or use the shoes4 command line interface:
22
-
23
- bin/shoes -p swt:app path/to/your/shoes-app
24
-
25
- Eventually, we will be able to package non-Shoes apps too.
26
-
27
- == Inspiration
28
-
29
- The inspiriation for 風呂敷 came from Shoes[http://shoesrb.com]. One of Shoes'
30
- best features is packaging up scripts made with Shoes into their own
31
- executables. You could take any little script and make a .app, .exe, or .run
32
- file. However, this code was really complicated, and made Shoes hard to
33
- maintain. It was often the source of people's problems when trying to build
34
- Shoes of their own. So, while working on Shoes 4, I decided to see if anyone
35
- else was doing anything similar. I came across the .app for
36
- libgosu[http://code.google.com/p/gosu/wiki/RubyPackagingOnOsx], which was doing
37
- a similar thing. After emailing Julian, I decided that if this was useful for
38
- Shoes, and useful for libgosu, it'd probably be useful for other projects, too.
39
- So I've set out to figure out the Shoes packager, play with the libgosu
40
- versions, and come up with an easy way for you to bundle and distribute GUI
41
- programs written in Ruby.
42
-
43
- == Helping out with 風呂敷
44
-
45
- It's easy! Just clone it down and do the usual bundler thing:
46
-
47
- $ git clone https://github.com/shoes/furoshiki.git
48
- $ cd furoshiki
49
- $ gem install bundler
50
- $ bundle
51
-
52
- Easy-peasy.
53
-
54
- === Note on Patches/Pull Requests
55
-
56
- * Fork the project.
57
- * Make your feature addition or bug fix.
58
- * Add tests for it. This is important so I don't break it in a
59
- future version unintentionally.
60
- * Commit, do not mess with rakefile, version, or history.
61
- (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
62
- * Send me a pull request. Bonus points for topic branches.
63
-
64
- == Copyright
65
-
66
- Copyright (c) 2010 Steve Klabnik. See LICENSE for details.
data/Rakefile DELETED
@@ -1,26 +0,0 @@
1
- require 'bundler'
2
- require 'rake/clean'
3
- require 'rspec/core/rake_task'
4
- Bundler::GemHelper.install_tasks
5
-
6
- @types = %w[rb]
7
- namespace :whitespace do
8
- desc 'Removes trailing whitespace'
9
- task :cleanup do
10
- @types.each do |type|
11
- sh %{find . -name '*.#{type}' -exec sed -i '' 's/ *$//g' {} \\;}
12
- end
13
- end
14
- desc 'Turns tabs into two spaces'
15
- task :retab do
16
- @types.each do |type|
17
- sh %{find . -name '*.#{type}' -exec sed -i '' 's/\t/ /g' {} \\;}
18
- end
19
- end
20
- end
21
-
22
- CLEAN.include('spec/shoes/.furoshiki', 'spec/shoes/sample_app')
23
-
24
- RSpec::Core::RakeTask.new(:spec)
25
-
26
- task :default => :spec
data/example/Rakefile DELETED
@@ -1,4 +0,0 @@
1
- require 'rubygems'
2
- require 'furoshiki'
3
-
4
- Furoshiki::RakeTask.new
data/furoshiki.gemspec DELETED
@@ -1,27 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
3
- require "furoshiki/version"
4
-
5
- Gem::Specification.new do |s|
6
- s.name = "furoshiki"
7
- s.version = Furoshiki::VERSION
8
- s.authors = ["Steve Klabnik"]
9
- s.email = "steve@steveklabnik.com"
10
- s.homepage = "http://github.com/steveklabnik/furoshiki"
11
- s.summary = %q{Package and distribute applications with Ruby.}
12
- s.description = %q{Create .app, .exe, and $LINUX_PACKAGE versions of your application, with its own embedded Ruby.}
13
-
14
- s.files = `git ls-files`.split("\n")
15
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
- s.require_paths = ["lib"]
18
-
19
- s.add_dependency "warbler", '~> 1.4.4'
20
- s.add_dependency "plist"
21
- s.add_dependency 'rubyzip', '>= 1.0.0'
22
-
23
- s.add_development_dependency 'rake'
24
- s.add_development_dependency 'rspec', '>= 3.0.0'
25
- s.add_development_dependency 'rspec-its'
26
- s.add_development_dependency 'pry'
27
- end
data/spec/app_spec.rb DELETED
@@ -1,142 +0,0 @@
1
- require 'spec_helper'
2
- require 'pathname'
3
- require 'furoshiki/jar_app'
4
-
5
- include PackageHelpers
6
-
7
- describe Furoshiki::JarApp do
8
- include_context 'generic furoshiki config'
9
- include_context 'generic furoshiki project'
10
-
11
- let(:config) {Furoshiki::Configuration.new @custom_config }
12
- subject {Furoshiki::JarApp.new config}
13
-
14
- let(:launcher) { @output_file.join('Contents/MacOS/JavaAppLauncher') }
15
- let(:icon) { @output_file.join('Contents/Resources/Shoes.icns') }
16
- let(:jar) { @output_file.join('Contents/Java/rubyapp.jar') }
17
-
18
- # $FUROSHIKI_HOME is set in spec_helper.rb for testing purposes,
19
- # but should default to $HOME
20
- context "when not setting $FUROSHIKI_HOME" do
21
- before do
22
- @old_furoshiki_home = ENV['FUROSHIKI_HOME']
23
- ENV['FUROSHIKI_HOME'] = nil
24
- end
25
-
26
-
27
- its(:cache_dir) { should eq(Pathname.new(Dir.home).join('.furoshiki', 'cache')) }
28
-
29
- after do
30
- ENV['FUROSHIKI_HOME'] = @old_furoshiki_home
31
- end
32
- end
33
-
34
- context "default" do
35
- let(:cache_dir) { Pathname.new(FUROSHIKI_SPEC_DIR).join('.furoshiki', 'cache') }
36
- its(:cache_dir) { should eq(cache_dir) }
37
-
38
- it "sets package dir to {pwd}/pkg" do
39
- Dir.chdir @app_dir do
40
- expect(subject.default_package_dir).to eq(@app_dir.join 'pkg')
41
- end
42
- end
43
-
44
- it "caches current version of template" do
45
- expect(subject.template_path).to eq(cache_dir.join('shoes-app-template-0.0.2.zip'))
46
- end
47
- its(:remote_template_url) { should eq(Furoshiki::Configuration::JAR_APP_TEMPLATE_URL) }
48
- end
49
-
50
- context "when creating a .app" do
51
- before :all do
52
- #@output_dir.rmtree if @output_dir.exist?
53
- @output_dir.mkpath
54
-
55
- app_name = 'Ruby App.app'
56
- @output_file = @output_dir.join app_name
57
-
58
- # Config picks up Dir.pwd
59
- Dir.chdir @app_dir do
60
- config = Furoshiki::Configuration.new(@custom_config)
61
- @subject = Furoshiki::JarApp.new(config)
62
- @subject.package
63
- end
64
- end
65
-
66
- subject { @subject }
67
-
68
- its(:template_path) { should exist }
69
-
70
- it "creates a .app" do
71
- expect(@output_file).to exist
72
- end
73
-
74
- it "includes launcher" do
75
- expect(launcher).to exist
76
- end
77
-
78
- # Windows can't test this
79
- platform_is_not :windows do
80
- it "makes launcher executable" do
81
- expect(launcher).to be_executable
82
- end
83
- end
84
-
85
- it "deletes generic icon" do
86
- expect(icon.parent.join('GenericApp.icns')).not_to exist
87
- end
88
-
89
- it "injects icon" do
90
- expect(icon).to exist
91
- end
92
-
93
- it "injects jar" do
94
- expect(jar).to exist
95
- end
96
-
97
- it "removes any extraneous jars" do
98
- jar_dir_contents = @output_file.join("Contents/Java").children
99
- expect(jar_dir_contents.reject {|f| f == jar }).to be_empty
100
- end
101
-
102
- describe "Info.plist" do
103
- require 'plist'
104
- before :all do
105
- @plist = Plist.parse_xml(@output_file.join 'Contents/Info.plist')
106
- end
107
-
108
- it "sets identifier" do
109
- expect(@plist['CFBundleIdentifier']).to eq('com.hackety.shoes.rubyapp')
110
- end
111
-
112
- it "sets display name" do
113
- expect(@plist['CFBundleDisplayName']).to eq('Ruby App')
114
- end
115
-
116
- it "sets bundle name" do
117
- expect(@plist['CFBundleName']).to eq('Ruby App')
118
- end
119
-
120
- it "sets icon" do
121
- expect(@plist['CFBundleIconFile']).to eq('Shoes.icns')
122
- end
123
-
124
- it "sets version" do
125
- expect(@plist['CFBundleVersion']).to eq('0.0.0')
126
- end
127
- end
128
- end
129
-
130
- describe "with an invalid configuration" do
131
- let(:config) { Furoshiki::Configuration.new }
132
- subject { Furoshiki::JarApp.new config }
133
-
134
- before do
135
- allow(config).to receive(:valid?) { false }
136
- end
137
-
138
- it "fails to initialize" do
139
- expect { subject }.to raise_error(Furoshiki::ConfigurationError)
140
- end
141
- end
142
- end
@@ -1,28 +0,0 @@
1
- require 'spec_helper'
2
- require 'furoshiki/configuration'
3
-
4
- describe Furoshiki::Configuration do
5
- subject(:config) { Furoshiki::Configuration.new(raw_config) }
6
-
7
- let(:raw_config) { { warbler_extensions: OtherCustomization,
8
- ignore: "pkg" } }
9
-
10
- class OtherCustomization < Furoshiki::WarblerExtensions
11
- def customize(config)
12
- # Actual behavior with shoes-package overrides the application name, so
13
- # for testing purposes reset it here too.
14
- config.pathmaps.application = ["shoes-app/%p"]
15
- end
16
- end
17
-
18
- it "is valid by default" do
19
- expect(config).to be_valid
20
- end
21
-
22
- it "uses correct application path for exclusions" do
23
- raw_config[:warbler_extensions] = OtherCustomization
24
- raw_config[:ignore] = "pkg"
25
-
26
- expect(config.to_warbler_config.excludes).to include("shoes-app/pkg")
27
- end
28
- end
@@ -1 +0,0 @@
1
- gems: 'rubyzip'
@@ -1,17 +0,0 @@
1
- name: Sugar Clouds
2
- shortname: sweet-nebulae
3
- ignore:
4
- - pkg
5
- - dir_to_ignore
6
- run: bin/hello_world
7
- gems: rspec
8
- version: 0.0.1
9
- release: Mindfully
10
- icons:
11
- osx: img/boots.icns
12
- gtk: img/boots_512x512x32.png
13
- win32: img/boots.ico
14
- dmg:
15
- ds_store: path/to/custom/.DS_Store
16
- background: path/to/custom/background.png
17
- custom: my custom feature
@@ -1,3 +0,0 @@
1
- Shoes.app do
2
- banner "Hello world"
3
- end
@@ -1 +0,0 @@
1
- should be ignored
Binary file
Binary file
@@ -1 +0,0 @@
1
- # Just a sibling of 'app.yaml'
@@ -1 +0,0 @@
1
- puts "Hello, world!"
@@ -1 +0,0 @@
1
- should be ignored
data/spec/jar_spec.rb DELETED
@@ -1,69 +0,0 @@
1
- require 'spec_helper'
2
- require_relative 'spec_helper'
3
- require 'pathname'
4
- require 'furoshiki/jar'
5
-
6
- include PackageHelpers
7
-
8
- describe Furoshiki::Jar do
9
- include_context 'generic furoshiki config'
10
- include_context 'generic furoshiki project'
11
-
12
- context "when creating a .jar" do
13
- before :all do
14
- @output_dir.rmtree if @output_dir.exist?
15
- @output_dir.mkpath
16
-
17
- # Config picks up Dir.pwd
18
- Dir.chdir @app_dir do
19
- config = Furoshiki::Configuration.new(@custom_config)
20
- @subject = Furoshiki::Jar.new(config)
21
- @jar_path = @subject.package(@output_dir)
22
- end
23
- end
24
-
25
- let(:jar_name) { 'rubyapp.jar' }
26
- let(:output_file) { Pathname.new(@output_dir.join jar_name) }
27
- subject { @subject }
28
-
29
- it "creates a .jar" do
30
- expect(output_file).to exist
31
- end
32
-
33
- it "returns path to .jar" do
34
- expect(@jar_path).to eq(output_file.to_s)
35
- end
36
-
37
- it "creates .jar smaller than 50MB" do
38
- expect(File.size(output_file)).to be < 50 * 1024 * 1024
39
- end
40
-
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
51
- end
52
-
53
- its(:default_dir) { should eq(@output_dir) }
54
- its(:filename) { should eq(jar_name) }
55
- end
56
-
57
- describe "with an invalid configuration" do
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
64
-
65
- it "fails to initialize" do
66
- expect { subject }.to raise_error(Furoshiki::ConfigurationError)
67
- end
68
- end
69
- end
data/spec/spec_helper.rb DELETED
@@ -1,85 +0,0 @@
1
- require 'rspec'
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
53
-
54
- module PackageHelpers
55
- # need these values from a context block, so let doesn't work
56
- def spec_dir
57
- Pathname.new(__FILE__).join('..').cleanpath
58
- end
59
-
60
- def input_dir
61
- spec_dir.join 'support', 'zip'
62
- end
63
- end
64
-
65
- module ZipHelpers
66
- include PackageHelpers
67
- # dir = Pathname.new('spec/support/zip')
68
- # add_trailing_slash(dir) #=> '/path/to/spec/support/zip/'
69
- def add_trailing_slash(dir)
70
- dir.to_s + "/"
71
- end
72
-
73
- def relative_input_paths(from_dir)
74
- Pathname.glob(input_dir + "**/*").map do |p|
75
- directory = true if p.directory?
76
- relative_path = p.relative_path_from(from_dir).to_s
77
- relative_path = add_trailing_slash(relative_path) if directory
78
- relative_path
79
- end
80
- end
81
- end
82
-
83
- spec_root = File.dirname(__FILE__)
84
- Dir["#{spec_root}/support/**/*.rb"].each { |f| require f }
85
-
@@ -1,19 +0,0 @@
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
-
@@ -1,23 +0,0 @@
1
- include ZipHelpers
2
-
3
- shared_context 'package' do
4
- before :all do
5
- @app_dir = spec_dir.join 'fixtures/test_app'
6
- @output_dir = @app_dir.join 'pkg'
7
- end
8
- end
9
-
10
- shared_context 'zip' do
11
- include_context 'package'
12
- let(:output_file) { @output_dir.join 'zip_directory_spec.zip' }
13
- let(:zip) { Zip::File.open output_file }
14
-
15
- before :all do
16
- @output_dir.mkpath
17
- @output_file = @output_dir.join 'zip_directory_spec.zip'
18
- end
19
-
20
- after :all do
21
- FileUtils.rm_rf @output_dir
22
- end
23
- end
@@ -1,3 +0,0 @@
1
- def a
2
- puts 'a'
3
- end
Binary file
@@ -1,3 +0,0 @@
1
- def c
2
- puts 'c'
3
- end
data/spec/util_spec.rb DELETED
@@ -1,57 +0,0 @@
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
@@ -1,30 +0,0 @@
1
- require 'spec_helper'
2
- require 'fileutils'
3
- require 'furoshiki/zip'
4
-
5
- describe Furoshiki::Zip::DirectoryContents do
6
-
7
- context "output file" do
8
- include_context 'zip'
9
-
10
- before :all do
11
- zip_directory_contents = Furoshiki::Zip::DirectoryContents.new input_dir, @output_file
12
- zip_directory_contents.write
13
- @zip = Zip::File.open @output_file
14
- end
15
-
16
- it "exists" do
17
- expect(@output_file).to exist
18
- end
19
-
20
- it "does not include input directory without parents" do
21
- expect(@zip.entries.map(&:name)).not_to include(add_trailing_slash input_dir.basename)
22
- end
23
-
24
- relative_input_paths(input_dir).each do |path|
25
- it "includes all children of input directory" do
26
- expect(@zip.entries.map(&:name)).to include(path)
27
- end
28
- end
29
- end
30
- end
@@ -1,36 +0,0 @@
1
- require 'spec_helper'
2
- require 'fileutils'
3
- require 'furoshiki/zip'
4
-
5
- describe Furoshiki::Zip::Directory do
6
- subject { Furoshiki::Zip::Directory.new input_dir, output_file }
7
-
8
- context "output file" do
9
- include_context 'zip'
10
-
11
- before :all do
12
- zip_directory = Furoshiki::Zip::Directory.new input_dir, @output_file
13
- zip_directory.write
14
- @zip = ::Zip::File.open @output_file
15
- end
16
-
17
- it "exists" do
18
- expect(@output_file).to exist
19
- end
20
-
21
- it "includes input directory without parents" do
22
- expect(@zip.entries.map(&:name)).to include(add_trailing_slash input_dir.basename)
23
- end
24
-
25
- relative_input_paths(input_dir.parent).each do |path|
26
- it "includes all children of input directory" do
27
- expect(@zip.entries.map(&:name)).to include(path)
28
- end
29
- end
30
-
31
- it "doesn't include extra files" do
32
- number_of_files = Dir.glob("#{input_dir}/**/*").push(input_dir).length
33
- expect(@zip.entries.length).to eq(number_of_files)
34
- end
35
- end
36
- end