nice-n-easy 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.gitignore +22 -0
- data/LICENSE +20 -0
- data/README.md +49 -0
- data/Rakefile +26 -0
- data/VERSION +1 -0
- data/lib/sinatra/nice_easy_helpers.rb +563 -0
- data/nice-n-easy.gemspec +63 -0
- data/tasks/rdoc.rb +21 -0
- data/tasks/test.rb +17 -0
- data/tasks/vendor/sdoc-helpers/markdown.rb +56 -0
- data/tasks/vendor/sdoc-helpers/pages.rb +28 -0
- data/test/nice_easy_helpers_test.rb +621 -0
- data/test/tag_matcher.rb +52 -0
- data/test/test_helper.rb +15 -0
- metadata +91 -0
data/test/tag_matcher.rb
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'active_support'
|
2
|
+
require 'rexml/document'
|
3
|
+
require 'action_controller/vendor/html-scanner'
|
4
|
+
require 'action_controller/assertions/selector_assertions'
|
5
|
+
|
6
|
+
module TagMatchingAssertions
|
7
|
+
include ActionController::Assertions::SelectorAssertions
|
8
|
+
|
9
|
+
def assert_tag_in(*opts)
|
10
|
+
target = opts.shift
|
11
|
+
tag_opts = find_tag_opts(opts)
|
12
|
+
assert !find_tag_in(target, tag_opts).nil?,
|
13
|
+
"#{tag_opts.inspect} was not found in \n#{target.inspect}"
|
14
|
+
end
|
15
|
+
|
16
|
+
# Identical to +assert_tag_in+, but asserts that a matching tag does _not_
|
17
|
+
# exist. (See +assert_tag_in+ for a full discussion of the syntax.)
|
18
|
+
def assert_tag_not_in(*opts)
|
19
|
+
target = opts.shift
|
20
|
+
tag_opts = find_tag_opts(opts)
|
21
|
+
assert find_tag_in(target, tag_opts).nil?,
|
22
|
+
"#{tag_opts.inspect} was found in \n#{target.inspect}"
|
23
|
+
end
|
24
|
+
|
25
|
+
def assert_select_in(*args, &block)
|
26
|
+
if @selected
|
27
|
+
root = HTML::Node.new(nil)
|
28
|
+
root.children.concat @selected
|
29
|
+
else
|
30
|
+
# Start with mandatory target.
|
31
|
+
target = args.shift
|
32
|
+
root = HTML::Document.new(target, false, false).root
|
33
|
+
end
|
34
|
+
assert_select(*args.unshift(root), &block)
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def find_tag_opts(opts)
|
40
|
+
if opts.size > 1
|
41
|
+
find_opts = opts.last.merge({ :tag => opts.first.to_s })
|
42
|
+
else
|
43
|
+
find_opts = opts.first.is_a?(Symbol) ? { :tag => opts.first.to_s } : opts.first
|
44
|
+
end
|
45
|
+
find_opts
|
46
|
+
end
|
47
|
+
|
48
|
+
def find_tag_in(target, opts = {})
|
49
|
+
target = HTML::Document.new(target, false, false)
|
50
|
+
target.find(opts)
|
51
|
+
end
|
52
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'rubygems'
|
3
|
+
require 'contest'
|
4
|
+
require 'ruby-debug'
|
5
|
+
Debugger.start
|
6
|
+
Debugger.settings[:autoeval] = true
|
7
|
+
|
8
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
9
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
10
|
+
require 'sinatra/nice_easy_helpers'
|
11
|
+
require 'tag_matcher'
|
12
|
+
|
13
|
+
class Test::Unit::TestCase
|
14
|
+
include TagMatchingAssertions
|
15
|
+
end
|
metadata
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: nice-n-easy
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Brian Landau
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-10-28 00:00:00 -04:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: sinatra
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ~>
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0.9"
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: activesupport
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "2.3"
|
34
|
+
version:
|
35
|
+
description: A set of Sinatra HTML view helpers to make your life nicer and easier. Helpers for forms, links, and assets.
|
36
|
+
email: brian.landau@viget.com
|
37
|
+
executables: []
|
38
|
+
|
39
|
+
extensions: []
|
40
|
+
|
41
|
+
extra_rdoc_files:
|
42
|
+
- LICENSE
|
43
|
+
- README.md
|
44
|
+
files:
|
45
|
+
- .document
|
46
|
+
- .gitignore
|
47
|
+
- LICENSE
|
48
|
+
- README.md
|
49
|
+
- Rakefile
|
50
|
+
- VERSION
|
51
|
+
- lib/sinatra/nice_easy_helpers.rb
|
52
|
+
- nice-n-easy.gemspec
|
53
|
+
- tasks/rdoc.rb
|
54
|
+
- tasks/test.rb
|
55
|
+
- tasks/vendor/sdoc-helpers/markdown.rb
|
56
|
+
- tasks/vendor/sdoc-helpers/pages.rb
|
57
|
+
- test/nice_easy_helpers_test.rb
|
58
|
+
- test/tag_matcher.rb
|
59
|
+
- test/test_helper.rb
|
60
|
+
has_rdoc: true
|
61
|
+
homepage: http://github.com/brianjlandau/nice-n-easy
|
62
|
+
licenses: []
|
63
|
+
|
64
|
+
post_install_message:
|
65
|
+
rdoc_options:
|
66
|
+
- --charset=UTF-8
|
67
|
+
require_paths:
|
68
|
+
- lib
|
69
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: "0"
|
74
|
+
version:
|
75
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: "0"
|
80
|
+
version:
|
81
|
+
requirements: []
|
82
|
+
|
83
|
+
rubyforge_project:
|
84
|
+
rubygems_version: 1.3.5
|
85
|
+
signing_key:
|
86
|
+
specification_version: 3
|
87
|
+
summary: Sinatra HTML helpers that are nice-n-easy to use.
|
88
|
+
test_files:
|
89
|
+
- test/nice_easy_helpers_test.rb
|
90
|
+
- test/tag_matcher.rb
|
91
|
+
- test/test_helper.rb
|