camping 3.2.4 → 3.2.6
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 +4 -4
- data/README.md +13 -16
- data/Rakefile +33 -15
- data/book/01_introduction.md +2 -3
- data/book/02_getting_started.md +39 -77
- data/lib/camping/commands.rb +1 -1
- data/lib/camping/loader.rb +9 -6
- data/lib/camping/loads.rb +5 -5
- data/lib/camping/sequel.rb +31 -0
- data/lib/camping/server.rb +5 -1
- data/lib/camping/version.rb +1 -1
- data/lib/camping-unabridged.rb +1 -0
- data/lib/camping.rb +1 -0
- data/test/app_loader.rb +14 -1
- data/test/config_reloader.rb +3 -3
- data/test/integration/Gemfile +1 -1
- data/test/integration/Rakefile +0 -27
- data/test/integration/kindling/starty.rb +7 -0
- data/test/reload_reloader.rb +7 -10
- data/test/server/helper.rb +13 -0
- data/test/server/spec_server.rb +103 -0
- data/test/test_helper.rb +8 -24
- metadata +67 -8
- data/lib/campingtrip.md +0 -341
- /data/lib/{camping/gear → gear}/filters.rb +0 -0
- /data/lib/{camping/gear → gear}/firewatch.rb +0 -0
- /data/lib/{camping/gear → gear}/inspection.rb +0 -0
- /data/lib/{camping/gear → gear}/kuddly.rb +0 -0
- /data/lib/{camping/gear → gear}/nancy.rb +0 -0
data/test/integration/Rakefile
CHANGED
|
@@ -15,30 +15,3 @@ namespace 'test' do
|
|
|
15
15
|
end
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
# def delete_file(filename="")
|
|
19
|
-
# return if !File.exist? filename
|
|
20
|
-
# begin
|
|
21
|
-
# f = File.open(filename, 'r')
|
|
22
|
-
# ensure
|
|
23
|
-
# f.close unless f.nil? or f.closed?
|
|
24
|
-
# File.delete(filename) if File.exist? filename
|
|
25
|
-
# end
|
|
26
|
-
# end
|
|
27
|
-
|
|
28
|
-
## Integration Test
|
|
29
|
-
# desc "Perform an integration test"
|
|
30
|
-
# task :integration do
|
|
31
|
-
# `bundle install` # remove gems
|
|
32
|
-
# `bundle clean --force` # remove gems
|
|
33
|
-
# puts Dir.pwd
|
|
34
|
-
# # `gem install` # add bundler.
|
|
35
|
-
# `bundle install` # rewrites Gemfile.lock
|
|
36
|
-
# `bundle add camping --path=../../`
|
|
37
|
-
# # `bundle add camping puma`
|
|
38
|
-
# # `bundle add minitest -g=test`
|
|
39
|
-
# # `bundle add minitest-reporters -g=test`
|
|
40
|
-
# # `bundle add rack-test -g=test`
|
|
41
|
-
# # `bundle add minitest-hooks -g=test`
|
|
42
|
-
# # t.libs << "/"
|
|
43
|
-
# # t.test_files = FileList['test/test_*.rb']
|
|
44
|
-
# end
|
data/test/reload_reloader.rb
CHANGED
|
@@ -16,11 +16,9 @@ module TestCaseLoader
|
|
|
16
16
|
move_to_reloader
|
|
17
17
|
loader.reload!
|
|
18
18
|
assert Object.const_defined?(:Reloader), "Reloader didn't load app"
|
|
19
|
-
# puts "before_all called"
|
|
20
19
|
end
|
|
21
20
|
|
|
22
21
|
def after_all
|
|
23
|
-
# puts "after_all called"
|
|
24
22
|
assert Object.const_defined?(:Reloader), "Test removed app"
|
|
25
23
|
loader.remove_constants
|
|
26
24
|
assert !Object.const_defined?(:Reloader), "Loader didn't remove app"
|
|
@@ -40,7 +38,6 @@ class TestLoader < TestCase
|
|
|
40
38
|
super
|
|
41
39
|
$counter = 0
|
|
42
40
|
loader.reload!
|
|
43
|
-
# puts "setup called"
|
|
44
41
|
end
|
|
45
42
|
|
|
46
43
|
def test_counter
|
|
@@ -71,11 +68,11 @@ class TestLoader < TestCase
|
|
|
71
68
|
end
|
|
72
69
|
end
|
|
73
70
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
71
|
+
class TestConfigRu < TestLoader
|
|
72
|
+
BASE = File.expand_path('../apps/reloader', __FILE__)
|
|
73
|
+
def file; BASE + '/config.ru' end
|
|
77
74
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
75
|
+
def test_name
|
|
76
|
+
assert_equal Reloader, loader.apps[:reloader]
|
|
77
|
+
end
|
|
78
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
$:.unshift(File.expand_path('../lib', __dir__))
|
|
4
|
+
# $:.unshift(File.dirname(__FILE__) + '../../lib')
|
|
5
|
+
|
|
6
|
+
require_relative '../../lib/camping'
|
|
7
|
+
require_relative '../../lib/camping/server'
|
|
8
|
+
|
|
9
|
+
require 'minitest/global_expectations/autorun'
|
|
10
|
+
require 'stringio'
|
|
11
|
+
|
|
12
|
+
require 'minitest/reporters'
|
|
13
|
+
Minitest::Reporters.use! [Minitest::Reporters::DefaultReporter.new(:color => true)]
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
require_relative 'helper'
|
|
2
|
+
|
|
3
|
+
require 'tempfile'
|
|
4
|
+
require 'socket'
|
|
5
|
+
require 'webrick'
|
|
6
|
+
require 'open-uri'
|
|
7
|
+
require 'net/http'
|
|
8
|
+
require 'net/https'
|
|
9
|
+
|
|
10
|
+
begin
|
|
11
|
+
require 'stackprof'
|
|
12
|
+
require 'tmpdir'
|
|
13
|
+
rescue LoadError
|
|
14
|
+
else
|
|
15
|
+
test_profile = true
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
describe Camping::Server do
|
|
19
|
+
argv = Camping::Server::ARGV = []
|
|
20
|
+
define_method(:argv) { argv }
|
|
21
|
+
|
|
22
|
+
before {
|
|
23
|
+
argv.clear
|
|
24
|
+
@original_dir = Dir.pwd
|
|
25
|
+
Dir.chdir "test/integration"
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
after {
|
|
29
|
+
Dir.chdir @original_dir
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
# Probably need to revise this for the camping port
|
|
33
|
+
def app
|
|
34
|
+
lambda { |env| [200, { 'content-type' => 'text/plain' }, ['success']] }
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# learn what this is doing.
|
|
38
|
+
def with_stderr
|
|
39
|
+
old, $stderr = $stderr, StringIO.new
|
|
40
|
+
yield $stderr
|
|
41
|
+
ensure
|
|
42
|
+
$stderr = old
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# first copied test to make sure this works right.
|
|
46
|
+
it "overrides :config if :app is passed in" do
|
|
47
|
+
server = Rackup::Server.new(app: "FOO")
|
|
48
|
+
server.app.must_equal "FOO"
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Fails a lot
|
|
52
|
+
# it "runs a server" do
|
|
53
|
+
# pidfile = Tempfile.open('pidfile') { |f| break f }
|
|
54
|
+
# FileUtils.rm pidfile.path
|
|
55
|
+
# server = Camping::Server.new(
|
|
56
|
+
# app: "FOO",
|
|
57
|
+
# environment: 'none',
|
|
58
|
+
# pid: pidfile.path,
|
|
59
|
+
# Port: TCPServer.open('localhost', '0'){|s| s.addr[1] },
|
|
60
|
+
# Host: 'localhost',
|
|
61
|
+
# Logger: WEBrick::Log.new(nil, WEBrick::BasicLog::WARN),
|
|
62
|
+
# AccessLog: [],
|
|
63
|
+
# daemonize: false,
|
|
64
|
+
# server: 'webrick'
|
|
65
|
+
# )
|
|
66
|
+
# t = Thread.new { server.start { |s| Thread.current[:server] = s } }
|
|
67
|
+
# t.join(0.01) until t[:server] && t[:server].status != :Stop
|
|
68
|
+
# body = if URI.respond_to?(:open)
|
|
69
|
+
# URI.open("http://localhost:#{server.options[:Port]}/") { |f| f.read }
|
|
70
|
+
# else
|
|
71
|
+
# open("http://localhost:#{server.options[:Port]}/") { |f| f.read }
|
|
72
|
+
# end
|
|
73
|
+
# body.must_include 'Let's go Camping'
|
|
74
|
+
# Process.kill(:INT, $$)
|
|
75
|
+
# t.join
|
|
76
|
+
# open(pidfile.path) { |f| f.read.must_equal $$.to_s }
|
|
77
|
+
# end
|
|
78
|
+
|
|
79
|
+
it "Loads the kindling initializers" do
|
|
80
|
+
pidfile = Tempfile.open('pidfile') { |f| break f }
|
|
81
|
+
FileUtils.rm pidfile.path
|
|
82
|
+
server = Camping::Server.new
|
|
83
|
+
|
|
84
|
+
starty_file = false
|
|
85
|
+
starty_name = "Starty"
|
|
86
|
+
|
|
87
|
+
t = Thread.new {
|
|
88
|
+
server.start { |s|
|
|
89
|
+
Thread.current[:server] = s
|
|
90
|
+
starty_file = Object.constants.include? :Starty
|
|
91
|
+
starty_name = Starty.name
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
t.join(0.01) until t[:server] && t[:server].status != :Stop
|
|
95
|
+
|
|
96
|
+
starty_file.must_equal true
|
|
97
|
+
starty_name.must_equal "Starty"
|
|
98
|
+
|
|
99
|
+
Process.kill(:INT, $$)
|
|
100
|
+
t.join
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
end
|
data/test/test_helper.rb
CHANGED
|
@@ -18,7 +18,6 @@ require 'minitest/reporters'
|
|
|
18
18
|
require 'minitest/hooks'
|
|
19
19
|
Minitest::Reporters.use! [Minitest::Reporters::DefaultReporter.new(:color => true)]
|
|
20
20
|
|
|
21
|
-
|
|
22
21
|
module CommandLineCommands
|
|
23
22
|
|
|
24
23
|
def move_to_tmp
|
|
@@ -47,30 +46,11 @@ module CommandLineCommands
|
|
|
47
46
|
|
|
48
47
|
# deletes the temporary directories found in the /apps directory for reloader testing.
|
|
49
48
|
def leave_reloader
|
|
50
|
-
|
|
49
|
+
leave_dir
|
|
51
50
|
`rm -rf test/apps/reloader/apps` if File.exist?('test/apps/reloader/apps')
|
|
52
51
|
`rm -rf test/apps/reloader/lib` if File.exist?('test/apps/reloader/lib')
|
|
53
52
|
end
|
|
54
53
|
|
|
55
|
-
# move_to_app
|
|
56
|
-
# Moves to an app directory,
|
|
57
|
-
# @app_name: String,
|
|
58
|
-
def move_to_app(app_name = "")
|
|
59
|
-
@original_dir = Dir.pwd
|
|
60
|
-
Dir.chdir "test"
|
|
61
|
-
Dir.chdir "apps"
|
|
62
|
-
Dir.chdir directory
|
|
63
|
-
Dir.mkdir("apps") unless Dir.exist?("apps")
|
|
64
|
-
Dir.mkdir("lib") unless Dir.exist?("lib")
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
def leave_app(app_name = "", purge_directorys = [])
|
|
68
|
-
Dir.chdir @original_dir
|
|
69
|
-
purge_directorys.each do |dir|
|
|
70
|
-
`rm -rf test/apps/#{app_name}/#{dir}` if File.exist?('test/apps/#{app_name}/#{dir}')
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
|
|
74
54
|
# Moves to the loader directory
|
|
75
55
|
def move_to_loader
|
|
76
56
|
@original_dir = Dir.pwd
|
|
@@ -81,11 +61,15 @@ module CommandLineCommands
|
|
|
81
61
|
Dir.mkdir("lib") unless Dir.exist?("lib")
|
|
82
62
|
end
|
|
83
63
|
|
|
84
|
-
#
|
|
85
|
-
def
|
|
86
|
-
|
|
64
|
+
# generic move_to(dir) method
|
|
65
|
+
def move_to(dir)
|
|
66
|
+
@original_dir = Dir.pwd
|
|
67
|
+
Dir.chdir dir
|
|
87
68
|
end
|
|
88
69
|
|
|
70
|
+
# generic leave_dir method
|
|
71
|
+
def leave_dir = Dir.chdir @original_dir
|
|
72
|
+
|
|
89
73
|
def write(file, content)
|
|
90
74
|
raise "cannot write nil" unless file
|
|
91
75
|
file = tmp_file(file)
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: camping
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.2.
|
|
4
|
+
version: 3.2.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- why the lucky stiff
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-
|
|
11
|
+
date: 2024-08-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|
|
@@ -186,6 +186,62 @@ dependencies:
|
|
|
186
186
|
- - "~>"
|
|
187
187
|
- !ruby/object:Gem::Version
|
|
188
188
|
version: 1.0.4
|
|
189
|
+
- !ruby/object:Gem::Dependency
|
|
190
|
+
name: bundler
|
|
191
|
+
requirement: !ruby/object:Gem::Requirement
|
|
192
|
+
requirements:
|
|
193
|
+
- - ">="
|
|
194
|
+
- !ruby/object:Gem::Version
|
|
195
|
+
version: '0'
|
|
196
|
+
type: :development
|
|
197
|
+
prerelease: false
|
|
198
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
199
|
+
requirements:
|
|
200
|
+
- - ">="
|
|
201
|
+
- !ruby/object:Gem::Version
|
|
202
|
+
version: '0'
|
|
203
|
+
- !ruby/object:Gem::Dependency
|
|
204
|
+
name: minitest
|
|
205
|
+
requirement: !ruby/object:Gem::Requirement
|
|
206
|
+
requirements:
|
|
207
|
+
- - "~>"
|
|
208
|
+
- !ruby/object:Gem::Version
|
|
209
|
+
version: '5.0'
|
|
210
|
+
type: :development
|
|
211
|
+
prerelease: false
|
|
212
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
213
|
+
requirements:
|
|
214
|
+
- - "~>"
|
|
215
|
+
- !ruby/object:Gem::Version
|
|
216
|
+
version: '5.0'
|
|
217
|
+
- !ruby/object:Gem::Dependency
|
|
218
|
+
name: minitest-global_expectations
|
|
219
|
+
requirement: !ruby/object:Gem::Requirement
|
|
220
|
+
requirements:
|
|
221
|
+
- - ">="
|
|
222
|
+
- !ruby/object:Gem::Version
|
|
223
|
+
version: '0'
|
|
224
|
+
type: :development
|
|
225
|
+
prerelease: false
|
|
226
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
227
|
+
requirements:
|
|
228
|
+
- - ">="
|
|
229
|
+
- !ruby/object:Gem::Version
|
|
230
|
+
version: '0'
|
|
231
|
+
- !ruby/object:Gem::Dependency
|
|
232
|
+
name: minitest-sprint
|
|
233
|
+
requirement: !ruby/object:Gem::Requirement
|
|
234
|
+
requirements:
|
|
235
|
+
- - ">="
|
|
236
|
+
- !ruby/object:Gem::Version
|
|
237
|
+
version: '0'
|
|
238
|
+
type: :development
|
|
239
|
+
prerelease: false
|
|
240
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
241
|
+
requirements:
|
|
242
|
+
- - ">="
|
|
243
|
+
- !ruby/object:Gem::Version
|
|
244
|
+
version: '0'
|
|
189
245
|
description:
|
|
190
246
|
email: why@ruby-lang.org
|
|
191
247
|
executables:
|
|
@@ -237,20 +293,20 @@ files:
|
|
|
237
293
|
- lib/camping/ar.rb
|
|
238
294
|
- lib/camping/campguide.rb
|
|
239
295
|
- lib/camping/commands.rb
|
|
240
|
-
- lib/camping/gear/filters.rb
|
|
241
|
-
- lib/camping/gear/firewatch.rb
|
|
242
|
-
- lib/camping/gear/inspection.rb
|
|
243
|
-
- lib/camping/gear/kuddly.rb
|
|
244
|
-
- lib/camping/gear/nancy.rb
|
|
245
296
|
- lib/camping/loader.rb
|
|
246
297
|
- lib/camping/loads.rb
|
|
247
298
|
- lib/camping/mab.rb
|
|
299
|
+
- lib/camping/sequel.rb
|
|
248
300
|
- lib/camping/server.rb
|
|
249
301
|
- lib/camping/session.rb
|
|
250
302
|
- lib/camping/template.rb
|
|
251
303
|
- lib/camping/tools.rb
|
|
252
304
|
- lib/camping/version.rb
|
|
253
|
-
- lib/
|
|
305
|
+
- lib/gear/filters.rb
|
|
306
|
+
- lib/gear/firewatch.rb
|
|
307
|
+
- lib/gear/inspection.rb
|
|
308
|
+
- lib/gear/kuddly.rb
|
|
309
|
+
- lib/gear/nancy.rb
|
|
254
310
|
- test/app_camping_gear.rb
|
|
255
311
|
- test/app_camping_tools.rb
|
|
256
312
|
- test/app_config.rb
|
|
@@ -291,8 +347,11 @@ files:
|
|
|
291
347
|
- test/integration/Rakefile
|
|
292
348
|
- test/integration/camp.rb
|
|
293
349
|
- test/integration/config.kdl
|
|
350
|
+
- test/integration/kindling/starty.rb
|
|
294
351
|
- test/integration/test/test_helper.rb
|
|
295
352
|
- test/reload_reloader.rb
|
|
353
|
+
- test/server/helper.rb
|
|
354
|
+
- test/server/spec_server.rb
|
|
296
355
|
- test/test_helper.rb
|
|
297
356
|
homepage: http://rubycamping.org/
|
|
298
357
|
licenses:
|