gorp 0.25.1 → 0.26.1
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/gorp.gemspec +4 -4
- data/lib/gorp/commands.rb +2 -2
- data/lib/gorp/edit.rb +5 -1
- data/lib/gorp/env.rb +18 -0
- data/lib/gorp/net.rb +7 -3
- data/lib/gorp/rails.rb +15 -4
- data/lib/gorp/test.rb +7 -1
- data/lib/version.rb +1 -1
- metadata +31 -4
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.26.1"
|
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{2010-
|
9
|
+
s.date = %q{2010-12-08}
|
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
|
@@ -22,14 +22,14 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Gorp", "--main", "README"]
|
23
23
|
s.require_paths = ["lib"]
|
24
24
|
s.rubyforge_project = %q{gorp}
|
25
|
-
s.rubygems_version = %q{1.3.
|
25
|
+
s.rubygems_version = %q{1.3.7}
|
26
26
|
s.summary = %q{Rails scenario testing support library}
|
27
27
|
|
28
28
|
if s.respond_to? :specification_version then
|
29
29
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
30
30
|
s.specification_version = 3
|
31
31
|
|
32
|
-
if Gem::Version.new(Gem::
|
32
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
33
33
|
s.add_runtime_dependency(%q<builder>, [">= 0"])
|
34
34
|
s.add_runtime_dependency(%q<bundler>, [">= 0"])
|
35
35
|
s.add_runtime_dependency(%q<erubis>, [">= 0"])
|
data/lib/gorp/commands.rb
CHANGED
@@ -175,8 +175,8 @@ module Gorp
|
|
175
175
|
|
176
176
|
if args == 'rake db:migrate'
|
177
177
|
Dir.chdir 'db/migrate' do
|
178
|
-
date = '
|
179
|
-
Dir['[0-9]*'].sort_by {|fn| fn=~/
|
178
|
+
date = '20110211000000'
|
179
|
+
Dir['[0-9]*'].sort_by {|fn| fn=~/201102/ ? fn : 'x'+fn}.each do |file|
|
180
180
|
file =~ /^([0-9]*)_(.*)$/
|
181
181
|
FileUtils.mv file, "#{date}_#{$2}" unless $1 == date.next!
|
182
182
|
$x.pre "mv #{file} #{date}_#{$2}" unless $1 == date
|
data/lib/gorp/edit.rb
CHANGED
data/lib/gorp/env.rb
CHANGED
@@ -31,6 +31,24 @@ else
|
|
31
31
|
$WORK = File.join($BASE, ENV['GORP_WORK'] || 'work')
|
32
32
|
end
|
33
33
|
|
34
|
+
# deduce environment based on provided Gemfile
|
35
|
+
unless ENV['GORP_RAILS']
|
36
|
+
gemfile = "#{$BASE}/Gemfile" if File.exist? "#{$BASE}/Gemfile"
|
37
|
+
gemfile = "#{$WORK}/Gemfile" if File.exist? "#{$WORK}/Gemfile"
|
38
|
+
if gemfile
|
39
|
+
open(gemfile) do |file|
|
40
|
+
pattern = /^gem\s+['"](\w+)['"],\s*:path\s*=>\s*['"](.*?)['"]/
|
41
|
+
file.read.scan(pattern).each do |name,path|
|
42
|
+
if name == 'rails'
|
43
|
+
ENV['GORP_RAILS'] ||= path
|
44
|
+
else
|
45
|
+
$: << "#{path}/lib"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
34
52
|
require 'rbconfig'
|
35
53
|
$ruby = File.join(Config::CONFIG["bindir"], Config::CONFIG["RUBY_INSTALL_NAME"])
|
36
54
|
|
data/lib/gorp/net.rb
CHANGED
@@ -13,6 +13,9 @@ def snap response, form=nil
|
|
13
13
|
|
14
14
|
if response.body =~ /<body/
|
15
15
|
body = response.body
|
16
|
+
elsif response.body =~ /<BODY/
|
17
|
+
body = response.body.gsub(/<\/?\w+/) {|tag| tag.downcase}
|
18
|
+
body.gsub! '<hr>', '<hr/>'
|
16
19
|
else
|
17
20
|
body = "<body>#{response.body}</body>"
|
18
21
|
end
|
@@ -96,14 +99,15 @@ def post path, form, options={}
|
|
96
99
|
accept = 'application/xml' if path =~ /\.xml$/
|
97
100
|
|
98
101
|
get = Net::HTTP::Get.new(path, 'Accept' => accept)
|
102
|
+
get.basic_auth *options[:auth] if options[:auth]
|
99
103
|
get['Cookie'] = $COOKIE if $COOKIE
|
100
104
|
response = http.request(get)
|
101
105
|
snap response, form unless options[:snapget] == false
|
102
106
|
$COOKIE = response.response['set-cookie'] if response.response['set-cookie']
|
103
107
|
|
104
108
|
if form
|
105
|
-
body = xhtmlparse(response.body).at('//body')
|
106
|
-
body = xhtmlparse(response.body).root unless body
|
109
|
+
body = xhtmlparse(response.body).at('//body') rescue nil
|
110
|
+
body = xhtmlparse(response.body).root unless body rescue nil
|
107
111
|
return unless body
|
108
112
|
xforms = body.search('//form')
|
109
113
|
|
@@ -170,7 +174,7 @@ def post path, form, options={}
|
|
170
174
|
$COOKIE=response.response['set-cookie'] if response.response['set-cookie']
|
171
175
|
path = response['Location']
|
172
176
|
$x.pre "get #{path}", :class=>'stdin'
|
173
|
-
get = Net::HTTP::Get.new(path)
|
177
|
+
get = Net::HTTP::Get.new(path, 'Accept' => accept)
|
174
178
|
get['Cookie'] = $COOKIE if $COOKIE
|
175
179
|
response = http.request(get)
|
176
180
|
snap response
|
data/lib/gorp/rails.rb
CHANGED
@@ -43,7 +43,7 @@ elsif File.directory?(ARGV.first.to_s.split(File::PATH_SEPARATOR).first.to_s)
|
|
43
43
|
end
|
44
44
|
end
|
45
45
|
$rails = libs.shift
|
46
|
-
|
46
|
+
$:.unshift *libs
|
47
47
|
else
|
48
48
|
$rails = ARGV.first
|
49
49
|
end
|
@@ -98,11 +98,15 @@ module Gorp
|
|
98
98
|
Dir.chdir($WORK)
|
99
99
|
FileUtils.rm_rf name
|
100
100
|
log :rails, name
|
101
|
+
$rails_app = name
|
101
102
|
|
102
103
|
# determine how to invoke rails
|
103
104
|
rails = Gorp.which_rails($rails)
|
104
105
|
rails += ' new' if `#{rails} -v` !~ /Rails 2/
|
105
|
-
|
106
|
+
if `ruby -v` =~ /1\.8/
|
107
|
+
rails.sub! /^/, 'ruby ' unless rails =~ /^ruby /
|
108
|
+
rails.sub! 'ruby ', 'ruby -rubygems '
|
109
|
+
end
|
106
110
|
|
107
111
|
opt = (ARGV.include?('--dev') ? ' --dev' : '')
|
108
112
|
$x.pre "#{rails.gsub('/',FILE_SEPARATOR)} #{name}#{opt}", :class=>'stdin'
|
@@ -126,6 +130,15 @@ module Gorp
|
|
126
130
|
if File.exist? 'Gemfile'
|
127
131
|
gemfile=open('Gemfile') {|file| file.read}
|
128
132
|
gemfile[/gem 'rails',()/,1] = " :path => #{$rails.inspect} #"
|
133
|
+
ENV['RUBYLIB'].split(File::PATH_SEPARATOR).each do |path|
|
134
|
+
path.sub! /\/lib$/, ''
|
135
|
+
name = path.split(File::SEPARATOR).last
|
136
|
+
next if name == 'gorp'
|
137
|
+
if File.exist?(File.join(path, "/#{name}.gemspec"))
|
138
|
+
gemfile[/gem 'rails',.*\n()/,1] =
|
139
|
+
"gem #{name.inspect}, :path => #{path.inspect}\n"
|
140
|
+
end
|
141
|
+
end
|
129
142
|
gemfile[/^()source/, 1] = '# '
|
130
143
|
|
131
144
|
open('Gemfile','w') {|file| file.write gemfile}
|
@@ -150,8 +163,6 @@ module Gorp
|
|
150
163
|
EOF
|
151
164
|
end
|
152
165
|
end
|
153
|
-
|
154
|
-
$rails_app = name
|
155
166
|
end
|
156
167
|
|
157
168
|
# stop a server if it is currently running
|
data/lib/gorp/test.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
gem 'test-unit'
|
1
2
|
require 'test/unit'
|
2
3
|
require 'builder'
|
3
4
|
require 'gorp/env'
|
@@ -9,6 +10,8 @@ class Gorp::TestCase < Test::Unit::TestCase
|
|
9
10
|
# Deferred loading of Rails infrastructure
|
10
11
|
if File.exist? "#{$WORK}/.bundle/environment.rb"
|
11
12
|
require "#{$WORK}/.bundle/environment.rb"
|
13
|
+
elsif File.exist? "#{$WORK}/Gemfile"
|
14
|
+
Dir.chdir($WORK) { require 'bundler/setup' }
|
12
15
|
end
|
13
16
|
|
14
17
|
require 'active_support'
|
@@ -308,7 +311,10 @@ at_exit do
|
|
308
311
|
|
309
312
|
def suite.sections
|
310
313
|
style = open(File.join(File.dirname(__FILE__), 'output.css')) {|fh| fh.read}
|
311
|
-
head = "
|
314
|
+
head = "<!DOCTYPE html>" +
|
315
|
+
"<html xmlns='http://www.w3.org/1999/xhtml'>\n<head>\n" +
|
316
|
+
"<meta charset='utf-8'/>\n<title>#{$output}</title>\n" +
|
317
|
+
"<style></style>\n</head>"
|
312
318
|
$cleanup = Proc.new do
|
313
319
|
Dir['public/stylesheets/*.css'].each do |css|
|
314
320
|
File.open(css) {|file| style+= file.read}
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gorp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 117
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 0
|
7
|
-
-
|
8
|
+
- 26
|
8
9
|
- 1
|
9
|
-
version: 0.
|
10
|
+
version: 0.26.1
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Sam Ruby
|
@@ -14,16 +15,18 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2010-
|
18
|
+
date: 2010-12-08 00:00:00 -05:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
22
|
name: builder
|
22
23
|
prerelease: false
|
23
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
24
26
|
requirements:
|
25
27
|
- - ">="
|
26
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
27
30
|
segments:
|
28
31
|
- 0
|
29
32
|
version: "0"
|
@@ -33,9 +36,11 @@ dependencies:
|
|
33
36
|
name: bundler
|
34
37
|
prerelease: false
|
35
38
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
36
40
|
requirements:
|
37
41
|
- - ">="
|
38
42
|
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
39
44
|
segments:
|
40
45
|
- 0
|
41
46
|
version: "0"
|
@@ -45,9 +50,11 @@ dependencies:
|
|
45
50
|
name: erubis
|
46
51
|
prerelease: false
|
47
52
|
requirement: &id003 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
48
54
|
requirements:
|
49
55
|
- - ">="
|
50
56
|
- !ruby/object:Gem::Version
|
57
|
+
hash: 3
|
51
58
|
segments:
|
52
59
|
- 0
|
53
60
|
version: "0"
|
@@ -57,9 +64,11 @@ dependencies:
|
|
57
64
|
name: i18n
|
58
65
|
prerelease: false
|
59
66
|
requirement: &id004 !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
60
68
|
requirements:
|
61
69
|
- - ">="
|
62
70
|
- !ruby/object:Gem::Version
|
71
|
+
hash: 3
|
63
72
|
segments:
|
64
73
|
- 0
|
65
74
|
version: "0"
|
@@ -69,9 +78,11 @@ dependencies:
|
|
69
78
|
name: rack
|
70
79
|
prerelease: false
|
71
80
|
requirement: &id005 !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
72
82
|
requirements:
|
73
83
|
- - ">="
|
74
84
|
- !ruby/object:Gem::Version
|
85
|
+
hash: 3
|
75
86
|
segments:
|
76
87
|
- 0
|
77
88
|
version: "0"
|
@@ -81,9 +92,11 @@ dependencies:
|
|
81
92
|
name: rack-mount
|
82
93
|
prerelease: false
|
83
94
|
requirement: &id006 !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
84
96
|
requirements:
|
85
97
|
- - ">="
|
86
98
|
- !ruby/object:Gem::Version
|
99
|
+
hash: 3
|
87
100
|
segments:
|
88
101
|
- 0
|
89
102
|
version: "0"
|
@@ -93,9 +106,11 @@ dependencies:
|
|
93
106
|
name: rack-test
|
94
107
|
prerelease: false
|
95
108
|
requirement: &id007 !ruby/object:Gem::Requirement
|
109
|
+
none: false
|
96
110
|
requirements:
|
97
111
|
- - ">="
|
98
112
|
- !ruby/object:Gem::Version
|
113
|
+
hash: 3
|
99
114
|
segments:
|
100
115
|
- 0
|
101
116
|
version: "0"
|
@@ -105,9 +120,11 @@ dependencies:
|
|
105
120
|
name: rake
|
106
121
|
prerelease: false
|
107
122
|
requirement: &id008 !ruby/object:Gem::Requirement
|
123
|
+
none: false
|
108
124
|
requirements:
|
109
125
|
- - ">="
|
110
126
|
- !ruby/object:Gem::Version
|
127
|
+
hash: 3
|
111
128
|
segments:
|
112
129
|
- 0
|
113
130
|
version: "0"
|
@@ -117,9 +134,11 @@ dependencies:
|
|
117
134
|
name: thor
|
118
135
|
prerelease: false
|
119
136
|
requirement: &id009 !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
120
138
|
requirements:
|
121
139
|
- - ">="
|
122
140
|
- !ruby/object:Gem::Version
|
141
|
+
hash: 3
|
123
142
|
segments:
|
124
143
|
- 0
|
125
144
|
version: "0"
|
@@ -129,9 +148,11 @@ dependencies:
|
|
129
148
|
name: sqlite3-ruby
|
130
149
|
prerelease: false
|
131
150
|
requirement: &id010 !ruby/object:Gem::Requirement
|
151
|
+
none: false
|
132
152
|
requirements:
|
133
153
|
- - ">="
|
134
154
|
- !ruby/object:Gem::Version
|
155
|
+
hash: 3
|
135
156
|
segments:
|
136
157
|
- 0
|
137
158
|
version: "0"
|
@@ -141,9 +162,11 @@ dependencies:
|
|
141
162
|
name: tzinfo
|
142
163
|
prerelease: false
|
143
164
|
requirement: &id011 !ruby/object:Gem::Requirement
|
165
|
+
none: false
|
144
166
|
requirements:
|
145
167
|
- - ">="
|
146
168
|
- !ruby/object:Gem::Version
|
169
|
+
hash: 3
|
147
170
|
segments:
|
148
171
|
- 0
|
149
172
|
version: "0"
|
@@ -201,16 +224,20 @@ rdoc_options:
|
|
201
224
|
require_paths:
|
202
225
|
- lib
|
203
226
|
required_ruby_version: !ruby/object:Gem::Requirement
|
227
|
+
none: false
|
204
228
|
requirements:
|
205
229
|
- - ">="
|
206
230
|
- !ruby/object:Gem::Version
|
231
|
+
hash: 3
|
207
232
|
segments:
|
208
233
|
- 0
|
209
234
|
version: "0"
|
210
235
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
236
|
+
none: false
|
211
237
|
requirements:
|
212
238
|
- - ">="
|
213
239
|
- !ruby/object:Gem::Version
|
240
|
+
hash: 11
|
214
241
|
segments:
|
215
242
|
- 1
|
216
243
|
- 2
|
@@ -218,7 +245,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
218
245
|
requirements: []
|
219
246
|
|
220
247
|
rubyforge_project: gorp
|
221
|
-
rubygems_version: 1.3.
|
248
|
+
rubygems_version: 1.3.7
|
222
249
|
signing_key:
|
223
250
|
specification_version: 3
|
224
251
|
summary: Rails scenario testing support library
|