gorp 0.7.2 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|