remi-rackbox 1.0.1 → 1.1.0

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.
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: