gorp 0.7.2 → 0.8.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.
- data/Manifest +3 -2
- data/gorp.gemspec +4 -4
- data/lib/gorp.rb +14 -15
- data/lib/gorp/env.rb +19 -0
- data/lib/gorp/test.rb +7 -3
- data/lib/version.rb +2 -2
- metadata +7 -5
data/Manifest
CHANGED
data/gorp.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{gorp}
|
5
|
-
s.version = "0.
|
5
|
+
s.version = "0.8.0"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Sam Ruby"]
|
9
|
-
s.date = %q{2009-
|
9
|
+
s.date = %q{2009-11-24}
|
10
10
|
s.description = %q{ Enables the creation of scenarios that involve creating a rails project,
|
11
11
|
starting and stoppping of servers, generating projects, editing files,
|
12
12
|
issuing http requests, running of commands, etc. Output is captured as
|
@@ -16,8 +16,8 @@ Gem::Specification.new do |s|
|
|
16
16
|
assertions based on selections (typically CSS) against the generated HTML.
|
17
17
|
}
|
18
18
|
s.email = %q{rubys@intertwingly.net}
|
19
|
-
s.extra_rdoc_files = ["README", "lib/
|
20
|
-
s.files = ["README", "Rakefile", "
|
19
|
+
s.extra_rdoc_files = ["README", "lib/gorp.rb", "lib/gorp/env.rb", "lib/gorp/test.rb", "lib/version.rb"]
|
20
|
+
s.files = ["README", "Rakefile", "gorp.gemspec", "lib/gorp.rb", "lib/gorp/env.rb", "lib/gorp/test.rb", "lib/version.rb", "Manifest"]
|
21
21
|
s.homepage = %q{http://github.com/rubys/gorp}
|
22
22
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Gorp", "--main", "README"]
|
23
23
|
s.require_paths = ["lib"]
|
data/lib/gorp.rb
CHANGED
@@ -8,6 +8,7 @@ require 'open3'
|
|
8
8
|
require 'net/http'
|
9
9
|
require 'builder'
|
10
10
|
require 'stringio'
|
11
|
+
require 'gorp/env'
|
11
12
|
|
12
13
|
require 'rbconfig'
|
13
14
|
$ruby = File.join(Config::CONFIG["bindir"], Config::CONFIG["RUBY_INSTALL_NAME"])
|
@@ -20,15 +21,11 @@ def section number, title, &steps
|
|
20
21
|
end
|
21
22
|
|
22
23
|
# verify that port is available for testing
|
23
|
-
if (Net::HTTP.get_response('localhost','/'
|
24
|
-
STDERR.puts
|
24
|
+
if (Net::HTTP.get_response('localhost','/',$PORT).code == '200' rescue false)
|
25
|
+
STDERR.puts "local server already running on port #{$PORT}"
|
25
26
|
exit
|
26
27
|
end
|
27
28
|
|
28
|
-
$BASE=File.expand_path(File.dirname(caller.last.split(':').first)) unless $BASE
|
29
|
-
$WORK = File.join($BASE,'work')
|
30
|
-
$DATA = File.join($BASE,'data')
|
31
|
-
$CODE = File.join($DATA,'code')
|
32
29
|
$x = Builder::XmlMarkup.new(:indent => 2)
|
33
30
|
$toc = Builder::XmlMarkup.new(:indent => 2)
|
34
31
|
$todos = Builder::XmlMarkup.new(:indent => 2)
|
@@ -101,7 +98,9 @@ def ruby args
|
|
101
98
|
end
|
102
99
|
|
103
100
|
def console script
|
104
|
-
|
101
|
+
open('tmp/irbrc','w') {|file| file.write('IRB.conf[:PROMPT_MODE]=:SIMPLE')}
|
102
|
+
cmd "echo #{script.inspect} | IRBRC=tmp/irbrc ruby script/console"
|
103
|
+
FileUtils.rm_rf 'tmp/irbrc'
|
105
104
|
end
|
106
105
|
|
107
106
|
def cmd args, hilight=[]
|
@@ -376,7 +375,7 @@ def snap response, form={}
|
|
376
375
|
name = xpath[/@(\w+)/,1]
|
377
376
|
body.search("//#{xpath}").each do |element|
|
378
377
|
next if element[name] =~ /^http:\/\//
|
379
|
-
element[name] = URI.join(
|
378
|
+
element[name] = URI.join("http://localhost:#{$PORT}/", element[name]).to_s
|
380
379
|
end
|
381
380
|
end
|
382
381
|
|
@@ -414,7 +413,7 @@ def post path, form
|
|
414
413
|
if path.include? ':'
|
415
414
|
host, port, path = URI.parse(path).select(:host, :port, :path)
|
416
415
|
else
|
417
|
-
host, port = '127.0.0.1',
|
416
|
+
host, port = '127.0.0.1', $PORT
|
418
417
|
end
|
419
418
|
|
420
419
|
Net::HTTP.start(host, port) do |http|
|
@@ -529,7 +528,7 @@ def restart_server
|
|
529
528
|
60.times do
|
530
529
|
sleep 0.5
|
531
530
|
begin
|
532
|
-
status = Net::HTTP.get_response('localhost','/'
|
531
|
+
status = Net::HTTP.get_response('localhost','/',$PORT).code
|
533
532
|
break if %(200 404).include? status
|
534
533
|
rescue Errno::ECONNREFUSED
|
535
534
|
end
|
@@ -539,7 +538,7 @@ def restart_server
|
|
539
538
|
if File.exist?('config.ru')
|
540
539
|
require 'rack'
|
541
540
|
server = Rack::Builder.new {eval open('config.ru').read}
|
542
|
-
Rack::Handler::WEBrick.run(server, :Port =>
|
541
|
+
Rack::Handler::WEBrick.run(server, :Port => $PORT)
|
543
542
|
else
|
544
543
|
# start server, redirecting stdout to a string
|
545
544
|
$stdout = StringIO.open('','w')
|
@@ -616,8 +615,8 @@ at_exit do
|
|
616
615
|
if ARGV.include? 'restore'
|
617
616
|
log :snap, 'restore'
|
618
617
|
Dir.chdir $BASE
|
619
|
-
FileUtils.rm_rf
|
620
|
-
FileUtils.cp_r "snapshot",
|
618
|
+
FileUtils.rm_rf $WORK
|
619
|
+
FileUtils.cp_r "snapshot", $WORK, :preserve => true
|
621
620
|
Dir.chdir $WORK
|
622
621
|
if $autorestart and File.directory? $autorestart
|
623
622
|
Dir.chdir $autorestart
|
@@ -657,7 +656,7 @@ at_exit do
|
|
657
656
|
log :snap, 'save'
|
658
657
|
Dir.chdir $BASE
|
659
658
|
FileUtils.rm_rf "snapshot"
|
660
|
-
FileUtils.cp_r
|
659
|
+
FileUtils.cp_r $WORK, "snapshot", :preserve => true
|
661
660
|
end
|
662
661
|
end
|
663
662
|
end
|
@@ -683,7 +682,7 @@ at_exit do
|
|
683
682
|
"<ul class=\"todos\">\n#{$todos.target!.gsub(/^/,' '*6)} </ul>"
|
684
683
|
$x.target!.gsub! '<strong/>', '<strong></strong>'
|
685
684
|
log :WRITE, "#{$output}.html"
|
686
|
-
open("#{$
|
685
|
+
open("#{$WORK}/#{$output}.html",'w') do |file|
|
687
686
|
file.write <<-EOF.unindent(6)
|
688
687
|
<!DOCTYPE html
|
689
688
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
data/lib/gorp/env.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# determine port
|
2
|
+
if ARGV.find {|arg| arg =~ /--port=(\d+)/}
|
3
|
+
$PORT=$1.to_i
|
4
|
+
else
|
5
|
+
$PORT=3000
|
6
|
+
end
|
7
|
+
|
8
|
+
# base directories
|
9
|
+
$BASE=File.expand_path(File.dirname(caller.last.split(':').first)) unless $BASE
|
10
|
+
$DATA = File.join($BASE,'data')
|
11
|
+
$CODE = File.join($DATA,'code')
|
12
|
+
|
13
|
+
# work directory
|
14
|
+
if (work=ARGV.find {|arg| arg =~ /--work=(.*)/})
|
15
|
+
ARGV.delete(work)
|
16
|
+
$WORK = File.join($BASE,$1)
|
17
|
+
else
|
18
|
+
$WORK = File.join($BASE,'work')
|
19
|
+
end
|
data/lib/gorp/test.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'test/unit'
|
2
2
|
require 'builder'
|
3
|
+
require 'gorp/env'
|
3
4
|
|
4
5
|
begin
|
5
6
|
# installed Rails (2.3.3 ish)
|
@@ -49,7 +50,7 @@ class Book::TestCase < ActiveSupport::TestCase
|
|
49
50
|
# read and pre-process $input.html (only done once, and cached)
|
50
51
|
def self.input filename
|
51
52
|
# read $input output; remove front matter and footer
|
52
|
-
input = open("#{filename}.html").read
|
53
|
+
input = open(File.join($WORK, "#{filename}.html")).read
|
53
54
|
head, body, tail = input.split /<body>\s+|\s+<\/body>/m
|
54
55
|
|
55
56
|
# split into sections
|
@@ -152,14 +153,17 @@ class HTMLRunner < Test::Unit::UI::Console::TestRunner
|
|
152
153
|
x.li do
|
153
154
|
x.a "Section #{name}", :href => "#section-#{name}"
|
154
155
|
x.tt fault.message.sub(".\n<false> is not true",'').
|
155
|
-
sub(/ but was\n.*/, '.')
|
156
|
+
sub(/ but was\n.*/, '.').
|
157
|
+
sub(/"((?:\\"|[^"])+)"/) {
|
158
|
+
'"' + ($1.length>80 ? $1[0..72]+'...' : $1) + '"'
|
159
|
+
}
|
156
160
|
end
|
157
161
|
sections[:todos][/() *<\/ul>/,1] = x.target!.gsub(/^/,' ')
|
158
162
|
end
|
159
163
|
end
|
160
164
|
|
161
165
|
def html_summary elapsed
|
162
|
-
open("#{$output}.html",'w') do |output|
|
166
|
+
open(File.join($WORK, "#{$output}.html"),'w') do |output|
|
163
167
|
sections = @@sections
|
164
168
|
output.write(sections.delete(:head))
|
165
169
|
output.write("<body>\n ")
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gorp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Ruby
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-11-24 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -90,17 +90,19 @@ extensions: []
|
|
90
90
|
|
91
91
|
extra_rdoc_files:
|
92
92
|
- README
|
93
|
-
- lib/version.rb
|
94
93
|
- lib/gorp.rb
|
94
|
+
- lib/gorp/env.rb
|
95
95
|
- lib/gorp/test.rb
|
96
|
+
- lib/version.rb
|
96
97
|
files:
|
97
98
|
- README
|
98
99
|
- Rakefile
|
99
|
-
- Manifest
|
100
100
|
- gorp.gemspec
|
101
|
-
- lib/version.rb
|
102
101
|
- lib/gorp.rb
|
102
|
+
- lib/gorp/env.rb
|
103
103
|
- lib/gorp/test.rb
|
104
|
+
- lib/version.rb
|
105
|
+
- Manifest
|
104
106
|
has_rdoc: true
|
105
107
|
homepage: http://github.com/rubys/gorp
|
106
108
|
licenses: []
|