sandwich 0.0.2 → 0.0.3

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/Rakefile CHANGED
@@ -12,6 +12,10 @@ begin
12
12
  gem.authors = ["David Leal"]
13
13
  gem.add_development_dependency "rspec", ">= 1.2.9"
14
14
  gem.add_development_dependency "yard", ">= 0"
15
+ gem.add_dependency "machinist", ">= 0"
16
+ gem.add_dependency "capybara", ">= 0"
17
+ gem.add_dependency "cucumber", ">= 0"
18
+
15
19
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
16
20
  end
17
21
  Jeweler::GemcutterTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.0.3
@@ -9,3 +9,15 @@ Then Sandwich.regexps[:show_all] do |targets|
9
9
  target.strip.singularize.classify.constantize.all.map { |item| pp item }
10
10
  end
11
11
  end
12
+
13
+ Then Sandwich.regexps[:show_source_snippet] do |selector|
14
+ puts locate(selector).html
15
+ end
16
+
17
+ Then Sandwich.regexps[:show_page_text] do
18
+ IO.popen("html2text", "w+") do |io|
19
+ io.puts response.body
20
+ io.close_write
21
+ puts io.readlines
22
+ end
23
+ end
@@ -0,0 +1,14 @@
1
+ require 'sandwich/regexps'
2
+
3
+ When Sandwich.regexps[:fill_within_table] do |column, ordinal, path, value|
4
+ within(selector_for(path)) do
5
+ _, column_index = all("th").each_with_index.find { |e, i| e.text == column }
6
+ locate(:xpath, "//tr[#{ordinal.to_i}]/td[#{column_index + 1}]/input").set(value)
7
+ end
8
+ end
9
+
10
+ Then Sandwich.regexps[:find_within_row] do |value, ordinal, path|
11
+ within(selector_for(path)) do
12
+ page.should have_xpath("//tr[#{ordinal.to_i}]/td", :text => value)
13
+ end
14
+ end
@@ -0,0 +1,15 @@
1
+ module Capybara
2
+ class Node
3
+ def html
4
+ raise NotImplementedError
5
+ end
6
+ end
7
+
8
+ [Driver::Celerity::Node, Driver::RackTest::Node].each do |c|
9
+ c.class_eval do
10
+ def html
11
+ node.to_xml
12
+ end
13
+ end
14
+ end
15
+ end
@@ -5,12 +5,23 @@ module Sandwich
5
5
  @regexps ||= {}.tap do |rx|
6
6
  rx[:model] = /^(an?|the|\d+) (.+) exists?$/
7
7
  rx[:no_model] = /^no (.+) exists?$/
8
- rx[:model_with_attribute] = /^(an?|the|\d+) (.+) (?:with|in) (.+) "([^\"]*)" exists?$/
9
- rx[:no_model_with_attribute] = /^no (.+) (?:with|in) (.+) "([^\"]*)" exists?$/
8
+ rx[:model_with_attribute] = /^(an?|the|\d+) (.+) (?:with|in) (.+) #{quoted_value} exists?$/
9
+ rx[:no_model_with_attribute] = /^no (.+) (?:with|in) (.+) #{quoted_value} exists?$/
10
10
  rx[:model_with_attributes] = /^(an?|the|\d+) (.+) exists with the following attributes:$/
11
11
  rx[:models_with_attributes] = /^the following (.+) exist:$/
12
12
  rx[:show_source] = /^show me the source$/
13
13
  rx[:show_all] = /^show me all (.+)$/
14
+ rx[:show_source_snippet] = /^show me the source for #{quoted_value}$/
15
+ rx[:show_page_text] = /^show me the page text$/
16
+ rx[:look_at] = /^I look at (.+)$/
17
+ rx[:fill_within_table] = /^I fill in the #{quoted_value} cell for the (\w+) row of (.+?) with #{quoted_value}$/
18
+ rx[:find_within_row] = /^I should see #{quoted_value} in the (\w+) data row of (.+)$/
14
19
  end
15
20
  end
21
+
22
+ private
23
+
24
+ def self.quoted_value
25
+ '"([^\"]*)"'
26
+ end
16
27
  end
data/sandwich.gemspec ADDED
@@ -0,0 +1,76 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{sandwich}
8
+ s.version = "0.0.3"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["David Leal"]
12
+ s.date = %q{2010-04-14}
13
+ s.description = %q{Yup, cucumber helpers}
14
+ s.email = %q{david@thedigitalants.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".gitignore",
22
+ "LICENSE",
23
+ "README.rdoc",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "lib/sandwich.rb",
27
+ "lib/sandwich/cucumber/debug_steps.rb",
28
+ "lib/sandwich/cucumber/model_steps.rb",
29
+ "lib/sandwich/cucumber/table_steps.rb",
30
+ "lib/sandwich/cucumber/world.rb",
31
+ "lib/sandwich/ext/active_record.rb",
32
+ "lib/sandwich/ext/capybara.rb",
33
+ "lib/sandwich/ext/string.rb",
34
+ "lib/sandwich/helpers/amounts.rb",
35
+ "lib/sandwich/regexps.rb",
36
+ "sandwich.gemspec",
37
+ "spec/sandwich_spec.rb",
38
+ "spec/spec.opts",
39
+ "spec/spec_helper.rb"
40
+ ]
41
+ s.homepage = %q{http://github.com/david/sandwich}
42
+ s.rdoc_options = ["--charset=UTF-8"]
43
+ s.require_paths = ["lib"]
44
+ s.rubygems_version = %q{1.3.6}
45
+ s.summary = %q{Cucumber helpers}
46
+ s.test_files = [
47
+ "spec/sandwich_spec.rb",
48
+ "spec/spec_helper.rb"
49
+ ]
50
+
51
+ if s.respond_to? :specification_version then
52
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
53
+ s.specification_version = 3
54
+
55
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
56
+ s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
57
+ s.add_development_dependency(%q<yard>, [">= 0"])
58
+ s.add_runtime_dependency(%q<machinist>, [">= 0"])
59
+ s.add_runtime_dependency(%q<capybara>, [">= 0"])
60
+ s.add_runtime_dependency(%q<cucumber>, [">= 0"])
61
+ else
62
+ s.add_dependency(%q<rspec>, [">= 1.2.9"])
63
+ s.add_dependency(%q<yard>, [">= 0"])
64
+ s.add_dependency(%q<machinist>, [">= 0"])
65
+ s.add_dependency(%q<capybara>, [">= 0"])
66
+ s.add_dependency(%q<cucumber>, [">= 0"])
67
+ end
68
+ else
69
+ s.add_dependency(%q<rspec>, [">= 1.2.9"])
70
+ s.add_dependency(%q<yard>, [">= 0"])
71
+ s.add_dependency(%q<machinist>, [">= 0"])
72
+ s.add_dependency(%q<capybara>, [">= 0"])
73
+ s.add_dependency(%q<cucumber>, [">= 0"])
74
+ end
75
+ end
76
+
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 2
9
- version: 0.0.2
8
+ - 3
9
+ version: 0.0.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - David Leal
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-04-13 00:00:00 +01:00
17
+ date: 2010-04-14 00:00:00 +01:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -43,6 +43,42 @@ dependencies:
43
43
  version: "0"
44
44
  type: :development
45
45
  version_requirements: *id002
46
+ - !ruby/object:Gem::Dependency
47
+ name: machinist
48
+ prerelease: false
49
+ requirement: &id003 !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ segments:
54
+ - 0
55
+ version: "0"
56
+ type: :runtime
57
+ version_requirements: *id003
58
+ - !ruby/object:Gem::Dependency
59
+ name: capybara
60
+ prerelease: false
61
+ requirement: &id004 !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ segments:
66
+ - 0
67
+ version: "0"
68
+ type: :runtime
69
+ version_requirements: *id004
70
+ - !ruby/object:Gem::Dependency
71
+ name: cucumber
72
+ prerelease: false
73
+ requirement: &id005 !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ segments:
78
+ - 0
79
+ version: "0"
80
+ type: :runtime
81
+ version_requirements: *id005
46
82
  description: Yup, cucumber helpers
47
83
  email: david@thedigitalants.com
48
84
  executables: []
@@ -62,11 +98,14 @@ files:
62
98
  - lib/sandwich.rb
63
99
  - lib/sandwich/cucumber/debug_steps.rb
64
100
  - lib/sandwich/cucumber/model_steps.rb
101
+ - lib/sandwich/cucumber/table_steps.rb
65
102
  - lib/sandwich/cucumber/world.rb
66
103
  - lib/sandwich/ext/active_record.rb
104
+ - lib/sandwich/ext/capybara.rb
67
105
  - lib/sandwich/ext/string.rb
68
106
  - lib/sandwich/helpers/amounts.rb
69
107
  - lib/sandwich/regexps.rb
108
+ - sandwich.gemspec
70
109
  - spec/sandwich_spec.rb
71
110
  - spec/spec.opts
72
111
  - spec/spec_helper.rb