remi-rackbox 1.0.1 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +6 -0
- data/Rakefile +57 -0
- data/VERSION.yml +2 -2
- data/examples/rack/config.ru +53 -0
- data/examples/rack/run-specs +2 -0
- data/examples/rack/spec +1 -0
- data/examples/rails/README +256 -0
- data/examples/rails/Rakefile +10 -0
- data/examples/rails/app/controllers/application.rb +15 -0
- data/examples/rails/app/controllers/welcome_controller.rb +32 -0
- data/examples/rails/app/helpers/application_helper.rb +3 -0
- data/examples/rails/app/helpers/welcome_helper.rb +2 -0
- data/examples/rails/app/views/layouts/application.html.erb +7 -0
- data/examples/rails/app/views/welcome/some_html.html.erb +20 -0
- data/examples/rails/config/boot.rb +109 -0
- data/examples/rails/config/database.yml +22 -0
- data/examples/rails/config/environment.rb +75 -0
- data/examples/rails/config/environments/development.rb +17 -0
- data/examples/rails/config/environments/production.rb +24 -0
- data/examples/rails/config/environments/test.rb +22 -0
- data/examples/rails/config/initializers/inflections.rb +10 -0
- data/examples/rails/config/initializers/mime_types.rb +5 -0
- data/examples/rails/config/initializers/new_rails_defaults.rb +17 -0
- data/examples/rails/config/locales/en.yml +5 -0
- data/examples/rails/config/routes.rb +12 -0
- data/examples/rails/db/development.sqlite3 +0 -0
- data/examples/rails/db/schema.rb +14 -0
- data/examples/rails/db/test.sqlite3 +0 -0
- data/examples/rails/doc/README_FOR_APP +5 -0
- data/examples/rails/lib/tasks/rspec.rake +158 -0
- data/examples/rails/public/404.html +30 -0
- data/examples/rails/public/422.html +30 -0
- data/examples/rails/public/500.html +33 -0
- data/examples/rails/public/dispatch.cgi +10 -0
- data/examples/rails/public/dispatch.fcgi +24 -0
- data/examples/rails/public/dispatch.rb +10 -0
- data/examples/rails/public/favicon.ico +0 -0
- data/examples/rails/public/images/rails.png +0 -0
- data/examples/rails/public/javascripts/application.js +2 -0
- data/examples/rails/public/javascripts/controls.js +963 -0
- data/examples/rails/public/javascripts/dragdrop.js +973 -0
- data/examples/rails/public/javascripts/effects.js +1128 -0
- data/examples/rails/public/javascripts/prototype.js +4320 -0
- data/examples/rails/public/robots.txt +5 -0
- data/examples/rails/run-specs +2 -0
- data/examples/rails/script/about +4 -0
- data/examples/rails/script/autospec +5 -0
- data/examples/rails/script/console +3 -0
- data/examples/rails/script/dbconsole +3 -0
- data/examples/rails/script/destroy +3 -0
- data/examples/rails/script/generate +3 -0
- data/examples/rails/script/performance/benchmarker +3 -0
- data/examples/rails/script/performance/profiler +3 -0
- data/examples/rails/script/performance/request +3 -0
- data/examples/rails/script/plugin +3 -0
- data/examples/rails/script/process/inspector +3 -0
- data/examples/rails/script/process/reaper +3 -0
- data/examples/rails/script/process/spawner +3 -0
- data/examples/rails/script/runner +3 -0
- data/examples/rails/script/server +3 -0
- data/examples/rails/script/spec +5 -0
- data/examples/rails/script/spec_server +125 -0
- data/examples/rails/spec +1 -0
- data/examples/rails/test/functional/welcome_controller_test.rb +8 -0
- data/examples/rails/test/performance/browsing_test.rb +9 -0
- data/examples/rails/test/test_helper.rb +38 -0
- data/examples/sinatra/config.ru +11 -0
- data/examples/sinatra/run-specs +2 -0
- data/examples/sinatra/sinatra_app.rb +58 -0
- data/examples/sinatra/spec +1 -0
- data/lib/rackbox/rack/extensions_for_rspec.rb +2 -0
- data/lib/rackbox/rackbox.rb +32 -0
- data/lib/rackbox/spec/configuration.rb +11 -0
- data/lib/rackbox/spec/helpers.rb +1 -1
- data/rails_generators/blackbox_spec/USAGE +5 -0
- data/rails_generators/blackbox_spec/blackbox_spec_generator.rb +56 -0
- data/rails_generators/blackbox_spec/templates/spec.erb +9 -0
- data/spec/rackbox_spec.rb +35 -0
- data/spec/spec_helper.rb +1 -0
- metadata +106 -2
@@ -0,0 +1,56 @@
|
|
1
|
+
# This generator creates a new 'blackbox' spec, using RackBox
|
2
|
+
class BlackboxSpecGenerator < Rails::Generator::Base
|
3
|
+
|
4
|
+
attr_accessor :name_of_spec_to_create, :name_of_spec_file_to_create
|
5
|
+
|
6
|
+
# `./script/generate blackbox_spec foo` will result in:
|
7
|
+
#
|
8
|
+
# runtime_args: ['foo']
|
9
|
+
# runtime_options: {:quiet=>false, :generator=>"blackbox_spec", :command=>:create, :collision=>:ask}
|
10
|
+
#
|
11
|
+
def initialize(runtime_args, runtime_options = {})
|
12
|
+
setup_rails_to_run_blackbox_specs
|
13
|
+
@name_of_spec_to_create = runtime_args.join(' ')
|
14
|
+
@name_of_spec_file_to_create = runtime_args.join('_').downcase
|
15
|
+
super
|
16
|
+
end
|
17
|
+
|
18
|
+
# this should be done by ./script/generate blackbox
|
19
|
+
def setup_rails_to_run_blackbox_specs
|
20
|
+
spec_helper = File.join RAILS_ROOT, 'spec', 'spec_helper.rb'
|
21
|
+
updated = false
|
22
|
+
if File.file? spec_helper
|
23
|
+
source = File.read spec_helper
|
24
|
+
unless source =~ /require .rackbox./
|
25
|
+
if source =~ /require .spec\/rails./
|
26
|
+
source.sub!(/require .spec\/rails./, "\\0\nrequire 'rackbox'") # inject a "require 'rackbox'" statement
|
27
|
+
updated = true
|
28
|
+
end
|
29
|
+
end
|
30
|
+
unless source =~ /config.use_blackbox/
|
31
|
+
if source =~ /.configure do \|config\|/
|
32
|
+
source.sub!(/.configure do \|config\|/, "\\0\n config.use_blackbox = true") # inject config.use_blackbox
|
33
|
+
updated = true
|
34
|
+
end
|
35
|
+
end
|
36
|
+
if updated
|
37
|
+
File.open(spec_helper, 'w'){|f| f << source }
|
38
|
+
puts " updated spec/spec_helper.rb"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def manifest
|
44
|
+
record do |m|
|
45
|
+
m.directory 'spec/blackbox'
|
46
|
+
m.template 'spec.erb', "spec/blackbox/#{ name_of_spec_file_to_create }_spec.rb" # what can i call to get args???
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
protected
|
51
|
+
|
52
|
+
def banner
|
53
|
+
"Usage: #{$0} blackbox_spec Name of Spec to Create"
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
|
3
|
+
# add String#unescape to make spec more readable
|
4
|
+
# 'user[name]=bob' is more readable than 'user%5Bname%5D=bob'
|
5
|
+
class String
|
6
|
+
def unescape
|
7
|
+
Rack::Utils.unescape self
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
describe RackBox, 'build_query' do
|
12
|
+
|
13
|
+
it 'should support single variable' do
|
14
|
+
RackBox.build_query( :hello => 'there' ).unescape.should =='hello=there'
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should support multiple variables' do
|
18
|
+
result = RackBox.build_query( :hello => 'there', :foo => :bar ).unescape
|
19
|
+
['hello=there&foo=bar', 'foo=bar&hello=there'].should include(result) # could come in any order!
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'should support inner hashes' do
|
23
|
+
result = RackBox.build_query( :user => { :name => 'bob', :password => 'secret' } ).unescape
|
24
|
+
result.should include('user[name]=bob')
|
25
|
+
result.should include('user[password]=secret')
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should support inner inner inner ... hashes' do
|
29
|
+
result = RackBox.build_query( :a => { :b => { :c => 'IamC' }, :x => 'xXx' }, :y => 'x' ).unescape
|
30
|
+
result.should include('a[b][c]=IamC')
|
31
|
+
result.should include('a[x]=xXx')
|
32
|
+
result.should include('y=x')
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../lib/rackbox'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: remi-rackbox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- remi
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-01-
|
12
|
+
date: 2009-01-29 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -22,6 +22,7 @@ extensions: []
|
|
22
22
|
extra_rdoc_files: []
|
23
23
|
|
24
24
|
files:
|
25
|
+
- Rakefile
|
25
26
|
- VERSION.yml
|
26
27
|
- README.markdown
|
27
28
|
- lib/rackbox.rb
|
@@ -37,6 +38,109 @@ files:
|
|
37
38
|
- lib/rackbox/spec/helpers.rb
|
38
39
|
- lib/rackbox/rackbox.rb
|
39
40
|
- lib/rackbox/matchers.rb
|
41
|
+
- spec/rackbox_spec.rb
|
42
|
+
- spec/spec_helper.rb
|
43
|
+
- examples/sinatra
|
44
|
+
- examples/sinatra/run-specs
|
45
|
+
- examples/sinatra/spec
|
46
|
+
- examples/sinatra/config.ru
|
47
|
+
- examples/sinatra/sinatra_app.rb
|
48
|
+
- examples/rack
|
49
|
+
- examples/rack/run-specs
|
50
|
+
- examples/rack/spec
|
51
|
+
- examples/rack/config.ru
|
52
|
+
- examples/rails
|
53
|
+
- examples/rails/Rakefile
|
54
|
+
- examples/rails/script
|
55
|
+
- examples/rails/script/dbconsole
|
56
|
+
- examples/rails/script/autospec
|
57
|
+
- examples/rails/script/spec_server
|
58
|
+
- examples/rails/script/destroy
|
59
|
+
- examples/rails/script/spec
|
60
|
+
- examples/rails/script/plugin
|
61
|
+
- examples/rails/script/console
|
62
|
+
- examples/rails/script/server
|
63
|
+
- examples/rails/script/runner
|
64
|
+
- examples/rails/script/performance
|
65
|
+
- examples/rails/script/performance/request
|
66
|
+
- examples/rails/script/performance/profiler
|
67
|
+
- examples/rails/script/performance/benchmarker
|
68
|
+
- examples/rails/script/generate
|
69
|
+
- examples/rails/script/about
|
70
|
+
- examples/rails/script/process
|
71
|
+
- examples/rails/script/process/inspector
|
72
|
+
- examples/rails/script/process/reaper
|
73
|
+
- examples/rails/script/process/spawner
|
74
|
+
- examples/rails/test
|
75
|
+
- examples/rails/test/test_helper.rb
|
76
|
+
- examples/rails/test/functional
|
77
|
+
- examples/rails/test/functional/welcome_controller_test.rb
|
78
|
+
- examples/rails/test/performance
|
79
|
+
- examples/rails/test/performance/browsing_test.rb
|
80
|
+
- examples/rails/run-specs
|
81
|
+
- examples/rails/lib
|
82
|
+
- examples/rails/lib/tasks
|
83
|
+
- examples/rails/lib/tasks/rspec.rake
|
84
|
+
- examples/rails/spec
|
85
|
+
- examples/rails/config
|
86
|
+
- examples/rails/config/routes.rb
|
87
|
+
- examples/rails/config/initializers
|
88
|
+
- examples/rails/config/initializers/mime_types.rb
|
89
|
+
- examples/rails/config/initializers/inflections.rb
|
90
|
+
- examples/rails/config/initializers/new_rails_defaults.rb
|
91
|
+
- examples/rails/config/locales
|
92
|
+
- examples/rails/config/locales/en.yml
|
93
|
+
- examples/rails/config/database.yml
|
94
|
+
- examples/rails/config/environment.rb
|
95
|
+
- examples/rails/config/boot.rb
|
96
|
+
- examples/rails/config/environments
|
97
|
+
- examples/rails/config/environments/production.rb
|
98
|
+
- examples/rails/config/environments/test.rb
|
99
|
+
- examples/rails/config/environments/development.rb
|
100
|
+
- examples/rails/public
|
101
|
+
- examples/rails/public/dispatch.cgi
|
102
|
+
- examples/rails/public/images
|
103
|
+
- examples/rails/public/images/rails.png
|
104
|
+
- examples/rails/public/500.html
|
105
|
+
- examples/rails/public/422.html
|
106
|
+
- examples/rails/public/dispatch.fcgi
|
107
|
+
- examples/rails/public/robots.txt
|
108
|
+
- examples/rails/public/favicon.ico
|
109
|
+
- examples/rails/public/javascripts
|
110
|
+
- examples/rails/public/javascripts/application.js
|
111
|
+
- examples/rails/public/javascripts/prototype.js
|
112
|
+
- examples/rails/public/javascripts/controls.js
|
113
|
+
- examples/rails/public/javascripts/effects.js
|
114
|
+
- examples/rails/public/javascripts/dragdrop.js
|
115
|
+
- examples/rails/public/404.html
|
116
|
+
- examples/rails/public/dispatch.rb
|
117
|
+
- examples/rails/app
|
118
|
+
- examples/rails/app/controllers
|
119
|
+
- examples/rails/app/controllers/welcome_controller.rb
|
120
|
+
- examples/rails/app/controllers/application.rb
|
121
|
+
- examples/rails/app/views
|
122
|
+
- examples/rails/app/views/layouts
|
123
|
+
- examples/rails/app/views/layouts/application.html.erb
|
124
|
+
- examples/rails/app/views/welcome
|
125
|
+
- examples/rails/app/views/welcome/some_html.html.erb
|
126
|
+
- examples/rails/app/helpers
|
127
|
+
- examples/rails/app/helpers/application_helper.rb
|
128
|
+
- examples/rails/app/helpers/welcome_helper.rb
|
129
|
+
- examples/rails/db
|
130
|
+
- examples/rails/db/test.sqlite3
|
131
|
+
- examples/rails/db/development.sqlite3
|
132
|
+
- examples/rails/db/schema.rb
|
133
|
+
- examples/rails/README
|
134
|
+
- examples/rails/doc
|
135
|
+
- examples/rails/doc/README_FOR_APP
|
136
|
+
- examples/rails/log
|
137
|
+
- examples/rails/log/test.log
|
138
|
+
- examples/rails/log/development.log
|
139
|
+
- rails_generators/blackbox_spec
|
140
|
+
- rails_generators/blackbox_spec/blackbox_spec_generator.rb
|
141
|
+
- rails_generators/blackbox_spec/USAGE
|
142
|
+
- rails_generators/blackbox_spec/templates
|
143
|
+
- rails_generators/blackbox_spec/templates/spec.erb
|
40
144
|
has_rdoc: true
|
41
145
|
homepage: http://github.com/remi/rackbox
|
42
146
|
post_install_message:
|