waves-stable 0.7.7 → 2009.3.10
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/bin/waves +20 -74
- data/doc/HISTORY +1 -44
- data/doc/README +1 -0
- data/doc/VERSION +1 -0
- data/lib/caches/file.rb +48 -0
- data/lib/caches/memcached.rb +40 -0
- data/lib/caches/simple.rb +25 -0
- data/lib/caches/synchronized.rb +25 -0
- data/lib/commands/console.rb +35 -0
- data/lib/commands/generate.rb +52 -0
- data/lib/commands/help.rb +5 -0
- data/lib/commands/{waves-server.rb → server.rb} +16 -3
- data/lib/dispatchers/base.rb +22 -21
- data/lib/dispatchers/default.rb +10 -66
- data/lib/ext/float.rb +13 -0
- data/lib/{utilities → ext}/hash.rb +2 -2
- data/lib/{utilities → ext}/integer.rb +5 -2
- data/lib/ext/kernel.rb +20 -0
- data/lib/ext/module.rb +20 -0
- data/lib/{utilities → ext}/object.rb +3 -5
- data/lib/ext/string.rb +20 -0
- data/lib/ext/symbol.rb +11 -0
- data/lib/ext/tempfile.rb +5 -0
- data/lib/foundations/classic.rb +66 -0
- data/lib/foundations/compact.rb +50 -0
- data/lib/helpers/basic.rb +11 -0
- data/lib/helpers/doc_type.rb +34 -0
- data/lib/helpers/extended.rb +21 -0
- data/lib/helpers/form.rb +3 -1
- data/lib/helpers/formatting.rb +3 -3
- data/lib/helpers/layouts.rb +37 -0
- data/lib/helpers/model.rb +8 -4
- data/lib/helpers/view.rb +2 -4
- data/lib/layers/inflect/english.rb +48 -5
- data/lib/layers/mvc.rb +18 -18
- data/lib/layers/mvc/controllers.rb +41 -0
- data/lib/layers/mvc/extensions.rb +52 -0
- data/lib/layers/orm/migration.rb +1 -1
- data/lib/layers/orm/{active_record.rb → providers/active_record.rb} +9 -14
- data/lib/layers/orm/{active_record → providers/active_record}/migrations/empty.rb.erb +0 -0
- data/lib/layers/orm/{active_record → providers/active_record}/tasks/generate.rb +1 -1
- data/lib/layers/orm/{active_record → providers/active_record}/tasks/schema.rb +1 -1
- data/lib/layers/orm/{data_mapper.rb → providers/data_mapper.rb} +3 -4
- data/lib/layers/orm/providers/filebase.rb +25 -0
- data/lib/layers/orm/{sequel.rb → providers/sequel.rb} +11 -7
- data/lib/layers/orm/{sequel → providers/sequel}/migrations/empty.rb.erb +0 -0
- data/lib/layers/orm/{sequel → providers/sequel}/tasks/generate.rb +5 -3
- data/lib/layers/orm/{sequel → providers/sequel}/tasks/schema.rb +2 -2
- data/lib/{renderers → layers/renderers}/erubis.rb +13 -16
- data/lib/{renderers → layers/renderers}/haml.rb +27 -25
- data/lib/layers/renderers/markaby.rb +29 -0
- data/lib/matchers/accept.rb +21 -0
- data/lib/matchers/base.rb +30 -0
- data/lib/matchers/content_type.rb +17 -0
- data/lib/matchers/path.rb +67 -0
- data/lib/matchers/query.rb +21 -0
- data/lib/matchers/request.rb +27 -0
- data/lib/matchers/resource.rb +19 -0
- data/lib/matchers/traits.rb +19 -0
- data/lib/matchers/uri.rb +20 -0
- data/lib/renderers/mixin.rb +15 -29
- data/lib/resources/mixin.rb +134 -0
- data/lib/resources/paths.rb +34 -0
- data/lib/runtime/configuration.rb +51 -136
- data/lib/runtime/console.rb +4 -1
- data/lib/runtime/logger.rb +24 -48
- data/lib/runtime/mime_types.rb +516 -2
- data/lib/runtime/mocks.rb +14 -0
- data/lib/runtime/monitor.rb +32 -0
- data/lib/runtime/request.rb +107 -39
- data/lib/runtime/response.rb +5 -2
- data/lib/runtime/response_mixin.rb +41 -22
- data/lib/runtime/runtime.rb +67 -0
- data/lib/runtime/server.rb +14 -101
- data/lib/runtime/session.rb +4 -43
- data/lib/runtime/worker.rb +86 -0
- data/lib/servers/base.rb +42 -0
- data/lib/servers/mongrel.rb +13 -0
- data/lib/servers/webrick.rb +13 -0
- data/lib/tasks/gem.rb +1 -0
- data/lib/tasks/generate.rb +67 -62
- data/lib/views/errors.rb +49 -0
- data/lib/views/mixin.rb +34 -82
- data/lib/waves.rb +36 -57
- data/samples/blog/Rakefile +16 -5
- data/samples/blog/configurations/default.rb +11 -0
- data/samples/blog/configurations/development.rb +9 -11
- data/samples/blog/configurations/production.rb +11 -15
- data/samples/blog/models/comment.rb +9 -0
- data/samples/blog/models/entry.rb +17 -0
- data/samples/blog/public/css/site.css +13 -2
- data/samples/blog/public/javascript/jquery-1.2.6.min.js +32 -0
- data/samples/blog/resources/entry.rb +39 -0
- data/samples/blog/resources/map.rb +9 -0
- data/samples/blog/schema/migrations/001_initial_schema.rb +3 -3
- data/samples/blog/schema/migrations/002_add_comments.rb +2 -2
- data/samples/blog/startup.rb +8 -6
- data/samples/blog/templates/comment/add.mab +6 -4
- data/samples/blog/templates/comment/list.mab +4 -4
- data/samples/blog/templates/entry/{editor.mab → edit.mab} +7 -6
- data/samples/blog/templates/entry/list.mab +10 -5
- data/samples/blog/templates/entry/show.mab +16 -7
- data/samples/blog/templates/entry/summary.mab +8 -4
- data/samples/blog/templates/errors/not_found_404.mab +6 -1
- data/samples/blog/templates/layouts/default.mab +5 -3
- data/samples/blog/templates/waves/status.mab +85 -0
- data/{app → templates/classic}/Rakefile +21 -3
- data/templates/classic/configurations/default.rb.erb +9 -0
- data/{app → templates/classic}/configurations/development.rb.erb +3 -8
- data/{app → templates/classic}/configurations/production.rb.erb +3 -5
- data/{app → templates/classic}/controllers/.gitignore +0 -0
- data/{app/doc → templates/classic/helpers}/.gitignore +0 -0
- data/{app/helpers → templates/classic/lib/tasks}/.gitignore +0 -0
- data/{app/lib/tasks → templates/classic/models}/.gitignore +0 -0
- data/{app/log → templates/classic/public/css}/.gitignore +0 -0
- data/{app/models → templates/classic/public/flash}/.gitignore +0 -0
- data/{app/public/css → templates/classic/public/images}/.gitignore +0 -0
- data/{app/public/flash → templates/classic/public/javascript}/.gitignore +0 -0
- data/{app/public/images → templates/classic/resources}/.gitignore +0 -0
- data/templates/classic/resources/map.rb.erb +8 -0
- data/{app/public/javascript → templates/classic/schema/migrations}/.gitignore +0 -0
- data/templates/classic/startup.rb.erb +11 -0
- data/templates/classic/templates/errors/not_found_404.mab +7 -0
- data/templates/classic/templates/errors/server_error_500.mab +7 -0
- data/{app → templates/classic}/templates/layouts/default.mab +0 -0
- data/{app/schema/migrations → templates/classic/tmp/sessions}/.gitignore +0 -0
- data/{app/tmp/sessions → templates/classic/views}/.gitignore +0 -0
- data/templates/compact/startup.rb.erb +11 -0
- metadata +152 -258
- data/app/bin/waves-console +0 -4
- data/app/bin/waves-server +0 -4
- data/app/configurations/mapping.rb.erb +0 -14
- data/app/lib/application.rb.erb +0 -5
- data/app/startup.rb +0 -5
- data/app/templates/errors/not_found_404.mab +0 -2
- data/app/templates/errors/server_error_500.mab +0 -2
- data/app/views/.gitignore +0 -0
- data/bin/waves-console +0 -4
- data/bin/waves-server +0 -4
- data/lib/commands/waves-console.rb +0 -21
- data/lib/controllers/base.rb +0 -11
- data/lib/controllers/mixin.rb +0 -165
- data/lib/foundations/default.rb +0 -27
- data/lib/foundations/simple.rb +0 -30
- data/lib/helpers/asset_helper.rb +0 -67
- data/lib/helpers/common.rb +0 -66
- data/lib/helpers/default.rb +0 -13
- data/lib/helpers/number_helper.rb +0 -25
- data/lib/helpers/tag_helper.rb +0 -58
- data/lib/helpers/url_helper.rb +0 -77
- data/lib/layers/default_errors.rb +0 -26
- data/lib/layers/inflect/english/rules.rb +0 -88
- data/lib/layers/inflect/english/string.rb +0 -24
- data/lib/layers/orm/filebase.rb +0 -22
- data/lib/layers/simple.rb +0 -32
- data/lib/layers/simple_errors.rb +0 -23
- data/lib/mapping/mapping.rb +0 -289
- data/lib/mapping/pretty_urls.rb +0 -96
- data/lib/renderers/markaby.rb +0 -33
- data/lib/runtime/application.rb +0 -69
- data/lib/runtime/blackboard.rb +0 -57
- data/lib/runtime/debugger.rb +0 -9
- data/lib/runtime/response_proxy.rb +0 -30
- data/lib/tasks/cluster.rb +0 -26
- data/lib/utilities/inflect.rb +0 -110
- data/lib/utilities/module.rb +0 -21
- data/lib/utilities/proc.rb +0 -16
- data/lib/utilities/string.rb +0 -49
- data/lib/utilities/symbol.rb +0 -10
- data/lib/utilities/tempfile.rb +0 -9
- data/lib/views/base.rb +0 -9
- data/samples/blog/bin/waves-console +0 -3
- data/samples/blog/bin/waves-server +0 -3
- data/samples/blog/configurations/mapping.rb +0 -23
- data/samples/blog/doc/EMTPY +0 -0
- data/samples/blog/lib/application.rb +0 -5
- data/verify/app_generation/helpers.rb +0 -24
- data/verify/app_generation/startup.rb +0 -39
- data/verify/blackboard/blackboard_verify.rb +0 -92
- data/verify/blackboard/helpers.rb +0 -5
- data/verify/configurations/attributes.rb +0 -37
- data/verify/configurations/helpers.rb +0 -1
- data/verify/configurations/rack_integration.rb +0 -29
- data/verify/controllers/base.rb +0 -37
- data/verify/controllers/helpers.rb +0 -13
- data/verify/controllers/interface.rb +0 -51
- data/verify/core/helpers.rb +0 -3
- data/verify/core/utilities.rb +0 -177
- data/verify/foundations/default.rb +0 -86
- data/verify/foundations/default_application/Rakefile +0 -14
- data/verify/foundations/default_application/bin/waves-console +0 -3
- data/verify/foundations/default_application/bin/waves-server +0 -3
- data/verify/foundations/default_application/configurations/development.rb +0 -26
- data/verify/foundations/default_application/configurations/mapping.rb +0 -14
- data/verify/foundations/default_application/configurations/production.rb +0 -30
- data/verify/foundations/default_application/controllers/default.rb +0 -15
- data/verify/foundations/default_application/controllers/loaded.rb +0 -15
- data/verify/foundations/default_application/defaultapplication.db +0 -0
- data/verify/foundations/default_application/helpers/loaded.rb +0 -10
- data/verify/foundations/default_application/lib/application.rb +0 -5
- data/verify/foundations/default_application/models/default.rb +0 -13
- data/verify/foundations/default_application/models/loaded.rb +0 -13
- data/verify/foundations/default_application/schema/migrations/templates/empty.rb.erb +0 -9
- data/verify/foundations/default_application/startup.rb +0 -7
- data/verify/foundations/default_application/templates/errors/not_found_404.mab +0 -2
- data/verify/foundations/default_application/templates/errors/server_error_500.mab +0 -2
- data/verify/foundations/default_application/templates/layouts/default.mab +0 -14
- data/verify/foundations/default_application/views/default.rb +0 -7
- data/verify/foundations/default_application/views/loaded.rb +0 -15
- data/verify/foundations/helpers.rb +0 -1
- data/verify/foundations/simple.rb +0 -25
- data/verify/helpers.rb +0 -76
- data/verify/layers/data_mapper/association_verify.rb +0 -87
- data/verify/layers/default_errors.rb +0 -29
- data/verify/layers/helpers.rb +0 -1
- data/verify/layers/migration.rb +0 -33
- data/verify/layers/sequel/model.rb +0 -41
- data/verify/mapping/always.rb +0 -19
- data/verify/mapping/filters.rb +0 -65
- data/verify/mapping/handle.rb +0 -24
- data/verify/mapping/helpers.rb +0 -7
- data/verify/mapping/matches.rb +0 -27
- data/verify/mapping/named.rb +0 -29
- data/verify/mapping/options.rb +0 -17
- data/verify/mapping/path.rb +0 -40
- data/verify/mapping/response_proxy.rb +0 -50
- data/verify/mapping/threaded.rb +0 -25
- data/verify/requests/helpers.rb +0 -16
- data/verify/requests/request.rb +0 -73
- data/verify/requests/response.rb +0 -59
- data/verify/requests/session.rb +0 -54
- data/verify/views/helpers.rb +0 -1
- data/verify/views/rendering.rb +0 -34
- data/verify/views/templates/foo.erb +0 -0
- data/verify/views/templates/moo.erb +0 -0
- data/verify/views/templates/moo.mab +0 -0
data/lib/utilities/proc.rb
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
module Waves
|
|
2
|
-
module Utilities
|
|
3
|
-
module Proc
|
|
4
|
-
# calls the given lambda with the receiver as its argument
|
|
5
|
-
def |(lambda)
|
|
6
|
-
lambda do
|
|
7
|
-
lambda.call( self.call )
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
class Proc # :nodoc:
|
|
15
|
-
include Waves::Utilities::Proc
|
|
16
|
-
end
|
data/lib/utilities/string.rb
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
module Waves
|
|
2
|
-
module Utilities
|
|
3
|
-
|
|
4
|
-
# Utility methods mixed into String.
|
|
5
|
-
|
|
6
|
-
module String
|
|
7
|
-
|
|
8
|
-
# Syntactic sugar for using File.join to concatenate the argument to the receiver.
|
|
9
|
-
#
|
|
10
|
-
# require "lib" / "utilities" / "string"
|
|
11
|
-
#
|
|
12
|
-
# The idea is not original, but we can't remember where we first saw it.
|
|
13
|
-
#
|
|
14
|
-
# Waves::Utilities::Symbol defines the same method, allowing for :files / 'afilename.txt'
|
|
15
|
-
|
|
16
|
-
def / ( string )
|
|
17
|
-
File.join(self,string.to_s)
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
# produces stringsLikeThis
|
|
21
|
-
def lower_camel_case
|
|
22
|
-
gsub(/(_)(\w)/) { $2.upcase }
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
# produces StringsLikeThis
|
|
26
|
-
def camel_case
|
|
27
|
-
lower_camel_case.gsub(/^([a-z])/) { $1.upcase }
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# produces strings_like_this
|
|
31
|
-
def snake_case
|
|
32
|
-
gsub(/\s+/,'').gsub(/([a-z\d])([A-Z])/){ "#{$1}_#{$2}"}.tr("-", "_").downcase
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def title_case
|
|
36
|
-
gsub(/(^|\s)\s*([a-z])/) { $1 + $2.upcase }
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def text
|
|
40
|
-
gsub(/[\_\-\.\:]/,' ')
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
class ::String # :nodoc:
|
|
48
|
-
include Waves::Utilities::String
|
|
49
|
-
end
|
data/lib/utilities/symbol.rb
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
class Symbol
|
|
2
|
-
# Does File.join on self and string, converting self to string before invocation.
|
|
3
|
-
# See String#/ for more.
|
|
4
|
-
#
|
|
5
|
-
# Note: This overrides any definitions done politely in modules, such as
|
|
6
|
-
# {Sequel::SQL::ComplexExpressionMethods}[http://sequel.rubyforge.org/classes/Sequel/SQL/ComplexExpressionMethods.html]
|
|
7
|
-
def / ( string )
|
|
8
|
-
self.to_s / string
|
|
9
|
-
end
|
|
10
|
-
end
|
data/lib/utilities/tempfile.rb
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
# Patch Ruby's Tempfile class to work around a problem uploading files with Rack.
|
|
2
|
-
#
|
|
3
|
-
# The fix came from here: http://sinatra.lighthouseapp.com/projects/9779/tickets/1
|
|
4
|
-
#
|
|
5
|
-
# This is fixed in Rack already, but it hasn't made it into a gem.
|
|
6
|
-
class Tempfile
|
|
7
|
-
# Make == act like eql?
|
|
8
|
-
def ==(other) ; eql?(other) || super ; end
|
|
9
|
-
end
|
data/lib/views/base.rb
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
module Blog
|
|
2
|
-
|
|
3
|
-
module Configurations
|
|
4
|
-
|
|
5
|
-
module Mapping
|
|
6
|
-
extend Waves::Mapping
|
|
7
|
-
|
|
8
|
-
path '/', :method => :get do
|
|
9
|
-
redirect("/entries")
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
path %r{^/comments/?$}, :method => :post do
|
|
13
|
-
resource( :comment ) do
|
|
14
|
-
controller { comment = create; redirect( "/entry/#{comment.entry.name}" ) }
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
include Waves::Mapping::PrettyUrls::RestRules
|
|
18
|
-
include Waves::Mapping::PrettyUrls::GetRules
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
end
|
data/samples/blog/doc/EMTPY
DELETED
|
File without changes
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
%w( rubygems bacon open3 extensions/all).each { |f| require f }
|
|
2
|
-
|
|
3
|
-
Bacon.extend Bacon::TestUnitOutput
|
|
4
|
-
Bacon.summary_on_exit
|
|
5
|
-
|
|
6
|
-
require File.join(File.dirname(__FILE__), "..", "..", "lib", "utilities", "string")
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
AppPath = File.expand_path(File.dirname(__FILE__) / "sandbox")
|
|
10
|
-
FrameworkPath = File.expand_path(File.dirname(__FILE__) / ".." / "..")
|
|
11
|
-
|
|
12
|
-
def generate_test_app(path)
|
|
13
|
-
command = File.dirname(__FILE__) / ".." / ".." / :bin / "waves"
|
|
14
|
-
system "#{command} #{path}"
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def clobber_test_app(path)
|
|
18
|
-
FileUtils.rm_rf(path) if File.exist?(path)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def set_framework_path(path)
|
|
22
|
-
text = File.read(path / 'startup.rb').split("\n").unshift("WAVES = '#{FrameworkPath}'").join("\n")
|
|
23
|
-
File.write(path / 'startup.rb', text)
|
|
24
|
-
end
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# require 'test_helper' because RubyMate needs help
|
|
2
|
-
|
|
3
|
-
require File.join(File.dirname(__FILE__) , "helpers")
|
|
4
|
-
|
|
5
|
-
clobber_test_app(AppPath)
|
|
6
|
-
generate_test_app(AppPath)
|
|
7
|
-
|
|
8
|
-
describe "A generated application" do
|
|
9
|
-
|
|
10
|
-
it "has executable script files" do
|
|
11
|
-
File.executable?(File.join(AppPath, "bin", "waves-console")).should.be.true
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
it "will fail to find waves framework, if the gem is not available" do
|
|
15
|
-
Dir.chdir(AppPath) do
|
|
16
|
-
stdin, stdout, stderr = Open3.popen3("ruby startup.rb")
|
|
17
|
-
stderr.gets.should =~ %r{no such file to load -- waves \(LoadError\)}
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
it "will find and use waves framework source when WAVES is defined" do
|
|
22
|
-
set_framework_path(AppPath)
|
|
23
|
-
Dir.chdir(AppPath) do
|
|
24
|
-
stdin, stdout, stderr = Open3.popen3("ruby startup.rb")
|
|
25
|
-
stderr.gets.should == nil
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
it "has the directories we expect it to have" do
|
|
30
|
-
dirs = %w{ bin/ configurations/ controllers/ doc/ helpers/ lib/
|
|
31
|
-
log/ models/ public/ schema/ templates/ tmp/ views/ }
|
|
32
|
-
Dir.chdir(AppPath) do
|
|
33
|
-
Dir.glob("*/").should == dirs
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
clobber_test_app(AppPath)
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
require File.join(File.dirname(__FILE__), "helpers")
|
|
2
|
-
|
|
3
|
-
specification "Blackboard" do
|
|
4
|
-
|
|
5
|
-
it 'should create a blackboard' do
|
|
6
|
-
request = mock(:request)
|
|
7
|
-
Waves::Blackboard.new(request).should.not == nil
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
it 'should allow adding a value, and reading from it' do
|
|
11
|
-
request = mock(:request)
|
|
12
|
-
bb = Waves::Blackboard.new(request)
|
|
13
|
-
bb.test = 2
|
|
14
|
-
bb.test.should == 2
|
|
15
|
-
|
|
16
|
-
bb["test"].should == 2
|
|
17
|
-
|
|
18
|
-
bb["test2"] = 3
|
|
19
|
-
bb["test2"].should == 3
|
|
20
|
-
bb.test2.should == 3
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
it 'should not have a value if never set' do
|
|
24
|
-
request = mock(:request)
|
|
25
|
-
bb = Waves::Blackboard.new(request)
|
|
26
|
-
bb.never_set.should == nil
|
|
27
|
-
bb["never_set"].should == nil
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
it 'should iterate over all defined values' do
|
|
31
|
-
request = mock(:request)
|
|
32
|
-
bb = Waves::Blackboard.new(request)
|
|
33
|
-
bb.value1 = 1
|
|
34
|
-
bb.value2 = 2
|
|
35
|
-
a = []
|
|
36
|
-
bb.each do |value|
|
|
37
|
-
a << value
|
|
38
|
-
end
|
|
39
|
-
a.should == [["value1", 1], ["value2", 2]]
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
module BlackBoardVerify
|
|
45
|
-
module Controllers
|
|
46
|
-
class Test
|
|
47
|
-
include Waves::Controllers::Mixin
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
module BlackBoardVerify
|
|
53
|
-
module Configurations
|
|
54
|
-
module Mapping
|
|
55
|
-
extend Waves::Mapping
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
module BlackBoardVerify
|
|
61
|
-
module Helpers
|
|
62
|
-
module Test
|
|
63
|
-
extend Waves::Helpers::Default
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
module BlackBoardVerify
|
|
69
|
-
module Views
|
|
70
|
-
module Test
|
|
71
|
-
extend Waves::Views::Mixin
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
specification "Blackboard included in other classes" do
|
|
77
|
-
|
|
78
|
-
before do
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
after do
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
it 'should be included in other classes' do
|
|
85
|
-
request = mock(:request)
|
|
86
|
-
BlackBoardVerify::Controllers::Test.instance_methods.should.include "blackboard"
|
|
87
|
-
Waves::Helpers::Default.instance_methods.should.include "blackboard"
|
|
88
|
-
Waves::ResponseProxy.instance_methods.should.include "blackboard"
|
|
89
|
-
BlackBoardVerify::Views::Test.methods.should.include "blackboard"
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
end
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# require 'test_helper' because RubyMate needs help
|
|
2
|
-
require File.join(File.dirname(__FILE__) , "helpers")
|
|
3
|
-
|
|
4
|
-
describe "Configuration attributes" do
|
|
5
|
-
|
|
6
|
-
class Basic < Waves::Configurations::Base; end
|
|
7
|
-
|
|
8
|
-
it "can be declared by developers" do
|
|
9
|
-
Basic.attribute :smurf
|
|
10
|
-
Basic.smurf("smurfy")
|
|
11
|
-
Basic.smurf.should == "smurfy"
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
it "must be declared before use" do
|
|
16
|
-
Basic.should.not.respond_to :gnome
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
describe "Waves::Configurations::Default" do
|
|
22
|
-
|
|
23
|
-
class Default < Waves::Configurations::Default; end
|
|
24
|
-
|
|
25
|
-
it "declares certain attributes necessary to run a Waves app" do
|
|
26
|
-
%w( host port ports log reloadable database session debug root synchronize? ).each do |attr|
|
|
27
|
-
Default.should.respond_to attr
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
it "sets default values for important attributes" do
|
|
32
|
-
[ :debug, :synchronize?, :session, :log, :reloadable ].each do |attr|
|
|
33
|
-
Default[attr].should.not.be.nil
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
end
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require File.join(File.dirname(__FILE__) , "..", "helpers")
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# require 'test_helper' because RubyMate needs help
|
|
2
|
-
require File.join(File.dirname(__FILE__) , "helpers")
|
|
3
|
-
|
|
4
|
-
describe "A Waves Configuration" do
|
|
5
|
-
|
|
6
|
-
class Default < Waves::Configurations::Default; end
|
|
7
|
-
|
|
8
|
-
it "can specify a Rack handler" do
|
|
9
|
-
class Default
|
|
10
|
-
handler(::Rack::Handler::Mongrel, :Host => '0.0.0.0', :Port => 8080)
|
|
11
|
-
end
|
|
12
|
-
Default.handler.should == [ ::Rack::Handler::Mongrel, { :Host => '0.0.0.0', :Port => 8080 } ]
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
it "provides an accessor for a hash of mime types" do
|
|
16
|
-
Waves::MimeTypes.should.receive(:[]).with('foo.png').and_return('image/png')
|
|
17
|
-
Default.mime_types['foo.png'].should == 'image/png'
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
it "must define the application for use with Rack" do
|
|
21
|
-
app = Rack::Builder.new() {}
|
|
22
|
-
Rack::Builder.should.receive(:new).with().and_return(app)
|
|
23
|
-
Default.application do
|
|
24
|
-
"stuff"
|
|
25
|
-
end
|
|
26
|
-
Default.application.should.be.a.kind_of Rack::Builder
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
end
|
data/verify/controllers/base.rb
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# # require 'test_helper' because RubyMate needs help
|
|
2
|
-
# require File.join(File.dirname(__FILE__) , "helpers")
|
|
3
|
-
#
|
|
4
|
-
# # Nota bene, y'all: These model helper methods are very ORM specific, and should probably
|
|
5
|
-
# # get moved into the ORM layers.
|
|
6
|
-
#
|
|
7
|
-
# describe "The base Waves controller" do
|
|
8
|
-
#
|
|
9
|
-
# before do
|
|
10
|
-
# Waves.application.stub!(:models).and_return(VerifyControllers::Models)
|
|
11
|
-
# @request = mock('request')
|
|
12
|
-
# @dc = VerifyControllers::Controllers::Default.new(@request)
|
|
13
|
-
# end
|
|
14
|
-
#
|
|
15
|
-
# it "can isolate its model's attributes from the request params" do
|
|
16
|
-
# @dc.should.receive(:params).and_return({:foo => 'bar', :default => {:one => 'one', :two => 'two'}})
|
|
17
|
-
# @dc.attributes.should == {:one => 'one', :two => 'two'}
|
|
18
|
-
# end
|
|
19
|
-
#
|
|
20
|
-
# it "provides shortcut methods for common model interactions" do
|
|
21
|
-
# VerifyControllers::Models::Default.should.receive(:all)
|
|
22
|
-
# @dc.all
|
|
23
|
-
#
|
|
24
|
-
# VerifyControllers::Models::Default.should.receive(:[]).with(:name => 'This').and_return('That')
|
|
25
|
-
# @dc.find('This').should == 'That'
|
|
26
|
-
#
|
|
27
|
-
# VerifyControllers::Models::Default.should.receive(:create).with("Does it work?").and_return('It worked!')
|
|
28
|
-
# @dc.should.receive(:attributes).and_return("Does it work?")
|
|
29
|
-
# @dc.create.should == 'It worked!'
|
|
30
|
-
#
|
|
31
|
-
# # @dc.update('This')
|
|
32
|
-
#
|
|
33
|
-
# # @dc.delete('This')
|
|
34
|
-
#
|
|
35
|
-
# end
|
|
36
|
-
#
|
|
37
|
-
# end
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
require File.join(File.dirname(__FILE__) , "..", "helpers")
|
|
2
|
-
|
|
3
|
-
module VerifyControllers
|
|
4
|
-
module Models
|
|
5
|
-
class Default
|
|
6
|
-
end
|
|
7
|
-
end
|
|
8
|
-
module Controllers
|
|
9
|
-
class Default < Waves::Controllers::Base; end
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
VerifyControllers::Models.stub!(:[]).with(:default).and_return(VerifyControllers::Models::Default)
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
# require 'test_helper' because RubyMate needs help
|
|
2
|
-
require File.join(File.dirname(__FILE__) , "helpers")
|
|
3
|
-
|
|
4
|
-
describe "A Waves controller" do
|
|
5
|
-
|
|
6
|
-
before do
|
|
7
|
-
Waves.application.stub!(:models).and_return(VerifyControllers::Models)
|
|
8
|
-
@request = mock('request')
|
|
9
|
-
@dc = VerifyControllers::Controllers::Default.new(@request)
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
it "initializes with and can access a request" do
|
|
13
|
-
@dc.request.should == @request
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
it "can access a destructured version of the request params" do
|
|
17
|
-
request_hash = { 'beer.name' => 'Pale Rye Ale',
|
|
18
|
-
'beer.brew.kind' => 'mini-mash',
|
|
19
|
-
'beer.brew.yeast' => 'White Labs British Ale' ,
|
|
20
|
-
'beer.brew.hops.variety' => 'Fuggles' }
|
|
21
|
-
destructured_hash = { :beer =>
|
|
22
|
-
{ :name => 'Pale Rye Ale',
|
|
23
|
-
:brew => { :kind => 'mini-mash',
|
|
24
|
-
:yeast => 'White Labs British Ale',
|
|
25
|
-
:hops => { :variety => 'Fuggles' }}}}
|
|
26
|
-
|
|
27
|
-
@request.should.receive(:params).and_return(request_hash)
|
|
28
|
-
@dc.params.should == destructured_hash
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
it "has reflective model helpers to allow generalizing" do
|
|
33
|
-
# Waves.application handwaving done in ./helpers
|
|
34
|
-
|
|
35
|
-
@dc.model_name.should == 'default'
|
|
36
|
-
@dc.model.should == VerifyControllers::Models::Default
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
describe "The process method of a Waves controller class" do
|
|
42
|
-
|
|
43
|
-
it "executes a block within the scope of a controller instance" do
|
|
44
|
-
@request = mock('request')
|
|
45
|
-
result = VerifyControllers::Controllers::Default.process(@request) do
|
|
46
|
-
self.class.name
|
|
47
|
-
end
|
|
48
|
-
result.should == "VerifyControllers::Controllers::Default"
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
end
|