gorp 0.13.0 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
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.13.0"
5
+ s.version = "0.14.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-12-12}
9
+ s.date = %q{2009-12-23}
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
data/lib/gorp.rb CHANGED
@@ -52,6 +52,9 @@ class String
52
52
  def unindent(n)
53
53
  gsub Regexp.new("^#{' '*n}"), ''
54
54
  end
55
+ def indent(n)
56
+ gsub /^/, ' '*n
57
+ end
55
58
  end
56
59
 
57
60
  def read name
@@ -352,7 +355,7 @@ rescue LoadError
352
355
  Comment = REXML::Comment
353
356
  end
354
357
 
355
- def snap response, form={}
358
+ def snap response, form=nil
356
359
  if response.content_type == 'text/plain' or response.content_type =~ /xml/
357
360
  $x.div :class => 'body' do
358
361
  response.body.split("\n").each do |line|
@@ -381,12 +384,12 @@ def snap response, form={}
381
384
  body.children.first.add_previous_sibling(sheet)
382
385
  end
383
386
 
384
- if ! form.empty?
387
+ if form
385
388
  body.search('//input[@name]').each do |input|
386
389
  input['value'] ||= form[input['name']].to_s
387
390
  end
388
391
  body.search('//textarea[@name]').each do |textarea|
389
- textarea.text ||= form[textarea['name']].to_s
392
+ textarea.text = form[textarea['name']].to_s if textarea.text.to_s.empty?
390
393
  end
391
394
  end
392
395
 
@@ -423,7 +426,7 @@ def snap response, form={}
423
426
  end
424
427
 
425
428
  def get path
426
- post path, {}
429
+ post path, nil
427
430
  end
428
431
 
429
432
  def post path, form, options={}
@@ -442,7 +445,7 @@ def post path, form, options={}
442
445
  snap response, form unless options[:snapget] == false
443
446
  $COOKIE = response.response['set-cookie'] if response.response['set-cookie']
444
447
 
445
- if ! form.empty?
448
+ if form
446
449
  body = xhtmlparse(response.body).at('//body')
447
450
  body = xhtmlparse(response.body).root unless body
448
451
  xforms = body.search('//form')
@@ -551,12 +554,14 @@ def rails name, app=nil
551
554
  open(script,'w') {|file| file.write code}
552
555
  end
553
556
 
557
+ cmd "mkdir #{name}" unless File.exist?(name)
554
558
  Dir.chdir(name)
555
559
  FileUtils.rm_rf 'public/.htaccess'
556
560
 
557
561
  cmd 'rake rails:freeze:edge' if ARGV.include? 'edge'
558
562
 
559
563
  if $rails != 'rails' and File.directory?($rails)
564
+ cmd "mkdir vendor" unless File.exist?('vendor')
560
565
  cmd "ln -s #{$rails} vendor/rails"
561
566
  end
562
567
  end
data/lib/gorp/test.rb CHANGED
@@ -14,21 +14,19 @@ end
14
14
  class Book::TestCase < ActiveSupport::TestCase
15
15
  # just enough infrastructure to get 'assert_select' to work
16
16
  $:.unshift "#{$WORK}/depot/vendor/rails/actionpack/lib"
17
+ require 'action_controller'
17
18
  begin
18
- # installed Rails (2.3.3 ish)
19
- require 'action_controller'
19
+ # Rails (2.3.3 ish)
20
20
  require 'action_controller/assertions/selector_assertions'
21
21
  include ActionController::Assertions::SelectorAssertions
22
- require 'action_controller/vendor/html-scanner/html/tokenizer'
23
- require 'action_controller/vendor/html-scanner/html/document'
24
22
  rescue LoadError
25
- # testing Rails (3.0 ish)
26
- require 'action_controller'
23
+ # Rails (3.0 ish)
27
24
  require 'action_dispatch/testing/assertions'
28
- require 'action_dispatch/testing/assertions/selector'
25
+ require 'action_dispatch/testing/assertions/selector'
29
26
  include ActionDispatch::Assertions::SelectorAssertions
30
27
  end
31
- $:.shift
28
+ require 'action_controller/vendor/html-scanner/html/tokenizer'
29
+ require 'action_controller/vendor/html-scanner/html/document'
32
30
 
33
31
  # micro DSL allowing the definition of optional tests
34
32
  def self.section number, title, &tests
@@ -84,12 +82,18 @@ class Book::TestCase < ActiveSupport::TestCase
84
82
  # select an individual section from the HTML
85
83
  def select number
86
84
  raise "Section #{number} not found" unless @@sections.has_key? number.to_s
87
- @selected = HTML::Document.new(@@sections[number.to_s]).root.children
88
- assert @@sections[number.to_s] !~
89
- /<pre class="traceback">\s+#&lt;IndexError: regexp not matched&gt;/,
90
- "edit failed"
85
+ @raw = @@sections[number.to_s]
86
+ @selected = HTML::Document.new(@raw).root.children
87
+
88
+ @raw =~ /<pre\sclass="stdin">edit\s([\w\/.]+)<\/pre>\s+
89
+ <pre\sclass="traceback">\s+
90
+ \#&lt;IndexError:\sregexp\snot\smatched&gt;\s+
91
+ ([\w\/.]+:\d+)/x
92
+ fail "edit #{$1} failed at #{$2}" if $1
91
93
  end
92
94
 
95
+ attr_reader :raw
96
+
93
97
  def collect_stdout
94
98
  css_select('.stdout').map do |tag|
95
99
  tag.children.join.gsub('&lt;','<').gsub('&gt;','>')
data/lib/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Gorp
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
- MINOR = 13
4
+ MINOR = 14
5
5
  TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
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.13.0
4
+ version: 0.14.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-12 00:00:00 -05:00
12
+ date: 2009-12-23 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency