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.
Files changed (80) hide show
  1. data/README.markdown +6 -0
  2. data/Rakefile +57 -0
  3. data/VERSION.yml +2 -2
  4. data/examples/rack/config.ru +53 -0
  5. data/examples/rack/run-specs +2 -0
  6. data/examples/rack/spec +1 -0
  7. data/examples/rails/README +256 -0
  8. data/examples/rails/Rakefile +10 -0
  9. data/examples/rails/app/controllers/application.rb +15 -0
  10. data/examples/rails/app/controllers/welcome_controller.rb +32 -0
  11. data/examples/rails/app/helpers/application_helper.rb +3 -0
  12. data/examples/rails/app/helpers/welcome_helper.rb +2 -0
  13. data/examples/rails/app/views/layouts/application.html.erb +7 -0
  14. data/examples/rails/app/views/welcome/some_html.html.erb +20 -0
  15. data/examples/rails/config/boot.rb +109 -0
  16. data/examples/rails/config/database.yml +22 -0
  17. data/examples/rails/config/environment.rb +75 -0
  18. data/examples/rails/config/environments/development.rb +17 -0
  19. data/examples/rails/config/environments/production.rb +24 -0
  20. data/examples/rails/config/environments/test.rb +22 -0
  21. data/examples/rails/config/initializers/inflections.rb +10 -0
  22. data/examples/rails/config/initializers/mime_types.rb +5 -0
  23. data/examples/rails/config/initializers/new_rails_defaults.rb +17 -0
  24. data/examples/rails/config/locales/en.yml +5 -0
  25. data/examples/rails/config/routes.rb +12 -0
  26. data/examples/rails/db/development.sqlite3 +0 -0
  27. data/examples/rails/db/schema.rb +14 -0
  28. data/examples/rails/db/test.sqlite3 +0 -0
  29. data/examples/rails/doc/README_FOR_APP +5 -0
  30. data/examples/rails/lib/tasks/rspec.rake +158 -0
  31. data/examples/rails/public/404.html +30 -0
  32. data/examples/rails/public/422.html +30 -0
  33. data/examples/rails/public/500.html +33 -0
  34. data/examples/rails/public/dispatch.cgi +10 -0
  35. data/examples/rails/public/dispatch.fcgi +24 -0
  36. data/examples/rails/public/dispatch.rb +10 -0
  37. data/examples/rails/public/favicon.ico +0 -0
  38. data/examples/rails/public/images/rails.png +0 -0
  39. data/examples/rails/public/javascripts/application.js +2 -0
  40. data/examples/rails/public/javascripts/controls.js +963 -0
  41. data/examples/rails/public/javascripts/dragdrop.js +973 -0
  42. data/examples/rails/public/javascripts/effects.js +1128 -0
  43. data/examples/rails/public/javascripts/prototype.js +4320 -0
  44. data/examples/rails/public/robots.txt +5 -0
  45. data/examples/rails/run-specs +2 -0
  46. data/examples/rails/script/about +4 -0
  47. data/examples/rails/script/autospec +5 -0
  48. data/examples/rails/script/console +3 -0
  49. data/examples/rails/script/dbconsole +3 -0
  50. data/examples/rails/script/destroy +3 -0
  51. data/examples/rails/script/generate +3 -0
  52. data/examples/rails/script/performance/benchmarker +3 -0
  53. data/examples/rails/script/performance/profiler +3 -0
  54. data/examples/rails/script/performance/request +3 -0
  55. data/examples/rails/script/plugin +3 -0
  56. data/examples/rails/script/process/inspector +3 -0
  57. data/examples/rails/script/process/reaper +3 -0
  58. data/examples/rails/script/process/spawner +3 -0
  59. data/examples/rails/script/runner +3 -0
  60. data/examples/rails/script/server +3 -0
  61. data/examples/rails/script/spec +5 -0
  62. data/examples/rails/script/spec_server +125 -0
  63. data/examples/rails/spec +1 -0
  64. data/examples/rails/test/functional/welcome_controller_test.rb +8 -0
  65. data/examples/rails/test/performance/browsing_test.rb +9 -0
  66. data/examples/rails/test/test_helper.rb +38 -0
  67. data/examples/sinatra/config.ru +11 -0
  68. data/examples/sinatra/run-specs +2 -0
  69. data/examples/sinatra/sinatra_app.rb +58 -0
  70. data/examples/sinatra/spec +1 -0
  71. data/lib/rackbox/rack/extensions_for_rspec.rb +2 -0
  72. data/lib/rackbox/rackbox.rb +32 -0
  73. data/lib/rackbox/spec/configuration.rb +11 -0
  74. data/lib/rackbox/spec/helpers.rb +1 -1
  75. data/rails_generators/blackbox_spec/USAGE +5 -0
  76. data/rails_generators/blackbox_spec/blackbox_spec_generator.rb +56 -0
  77. data/rails_generators/blackbox_spec/templates/spec.erb +9 -0
  78. data/spec/rackbox_spec.rb +35 -0
  79. data/spec/spec_helper.rb +1 -0
  80. 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,9 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe '<%= name_of_spec_to_create %>' do
4
+
5
+ it 'should do something' do
6
+ request('/').body.should include('Hello World!')
7
+ end
8
+
9
+ 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
@@ -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.1
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-28 00:00:00 -08:00
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: