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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require File.join(File.dirname(__FILE__) , "..", "helpers")
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# require 'test_helper' because RubyMate needs help
|
|
2
|
-
require File.join(File.dirname(__FILE__) , "helpers")
|
|
3
|
-
|
|
4
|
-
module SimpleApplication ; include Waves::Foundations::Simple ; end
|
|
5
|
-
|
|
6
|
-
describe "An application module which includes the Simple foundation" do
|
|
7
|
-
|
|
8
|
-
it "should have basic submodules defined" do
|
|
9
|
-
lambda do
|
|
10
|
-
SimpleApplication::Configurations::Mapping
|
|
11
|
-
SimpleApplication::Configurations::Development
|
|
12
|
-
end.should.not.raise
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
it "should have accessors defined" do
|
|
16
|
-
[ :config, :configurations ].each do |method|
|
|
17
|
-
SimpleApplication.should.respond_to method
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
it "should define [] method for appropriate submodules" do
|
|
22
|
-
SimpleApplication::Configurations.should.respond_to :[]
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
end
|
data/verify/helpers.rb
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
require 'rubygems'
|
|
2
|
-
%w( bacon facon ).each { |f| require f }
|
|
3
|
-
|
|
4
|
-
# Prepend the framework lib to the loadpath
|
|
5
|
-
$:.unshift( File.join(File.dirname(__FILE__), "..", "lib") )
|
|
6
|
-
require 'waves'
|
|
7
|
-
|
|
8
|
-
Bacon.extend Bacon::TestUnitOutput
|
|
9
|
-
Bacon.summary_on_exit
|
|
10
|
-
|
|
11
|
-
module Kernel
|
|
12
|
-
private
|
|
13
|
-
def specification(name, &block) Bacon::Context.new(name, &block) end
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
Bacon::Context.module_eval do
|
|
18
|
-
|
|
19
|
-
# Mapping helpers
|
|
20
|
-
def mapping
|
|
21
|
-
::Waves::Application.instance.mapping
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
%w{ path url always handle threaded generator}.each do |method|
|
|
25
|
-
module_eval "def #{method}(*args,&block); mapping.#{method}(*args,&block);end"
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
# Rack request helpers
|
|
29
|
-
::Rack::MockRequest::DEFAULT_ENV.merge!(
|
|
30
|
-
'REMOTE_ADDR' => '127.0.0.1',
|
|
31
|
-
'REMOTE_HOST' => 'localhost',
|
|
32
|
-
'SERVER_NAME' => 'localhost',
|
|
33
|
-
'SERVER_PORT' => '3000',
|
|
34
|
-
'SERVER_PORT_SECURE' => '0',
|
|
35
|
-
'SERVER_PROTOCOL' => 'HTTP/1.1',
|
|
36
|
-
'SERVER_SOFTWARE' => 'Waves 1.0',
|
|
37
|
-
'HTTP_HOST' => 'localhost',
|
|
38
|
-
'HTTP_VERSION' => 'HTTP/1.1',
|
|
39
|
-
'HTTP_USER_AGENT' => 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14',
|
|
40
|
-
'HTTP_CACHE_CONTROL' => 'max-age=0',
|
|
41
|
-
'HTTP_ACCEPT' => 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5',
|
|
42
|
-
'HTTP_ACCEPT_LANGUAGE' => 'en-us,en;q=0.5',
|
|
43
|
-
'HTTP_ACCEPT_CHARSET' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
|
|
44
|
-
'HTTP_ACCEPT_ENCODING' => 'gzip,compress;q=0.5,*;q=0.0,',
|
|
45
|
-
'HTTP_CONNECTION' => 'keep-alive',
|
|
46
|
-
'HTTP_KEEP_ALIVE' => '300',
|
|
47
|
-
'HTTP_REFERER' => 'http://localhost/',
|
|
48
|
-
'GATEWAY_INTERFACE' => 'CGI/1.1'
|
|
49
|
-
)
|
|
50
|
-
|
|
51
|
-
def request
|
|
52
|
-
@request ||= ::Rack::MockRequest.new( ::Waves::Dispatchers::Default.new )
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def get(uri, opts={}) request.get(uri, opts) end
|
|
56
|
-
def post(uri, opts={}) request.post(uri, opts) end
|
|
57
|
-
def put(uri, opts={}) request.put(uri, opts) end
|
|
58
|
-
def delete(uri, opts={}) request.delete(uri, opts) end
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
# Testing helpers
|
|
62
|
-
alias_method :specify, :it
|
|
63
|
-
|
|
64
|
-
def wrap(&block)
|
|
65
|
-
@before << block
|
|
66
|
-
@after << block
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
def rm_if_exist(name)
|
|
70
|
-
FileUtils.rm name if File.exist? name
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
# require 'test_helper' because RubyMate needs help
|
|
2
|
-
require File.join(File.dirname(__FILE__), "..", "helpers")
|
|
3
|
-
|
|
4
|
-
begin
|
|
5
|
-
require 'layers/orm/data_mapper'
|
|
6
|
-
require 'flexmock'
|
|
7
|
-
|
|
8
|
-
module DMApplication
|
|
9
|
-
include Waves::Foundations::Default
|
|
10
|
-
include Waves::Layers::ORM::DataMapper
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
DMA = DMApplication
|
|
14
|
-
DMAMapping = DMA::Configurations::Mapping
|
|
15
|
-
DMApplication::Configurations::Default
|
|
16
|
-
|
|
17
|
-
module DMA ; include Waves::Foundations::Simple ; end
|
|
18
|
-
Waves << DMA
|
|
19
|
-
Waves::Console.load( :mode => :development )
|
|
20
|
-
|
|
21
|
-
module DMApplication
|
|
22
|
-
module Configurations
|
|
23
|
-
class Development < Default
|
|
24
|
-
database :database => 'sqlite3::memory'
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
module Bacon
|
|
30
|
-
class Context
|
|
31
|
-
include FlexMock::ArgumentTypes
|
|
32
|
-
include FlexMock::MockContainer
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
describe "DataMapper Associations" do
|
|
37
|
-
|
|
38
|
-
before do
|
|
39
|
-
@adapter = FlexMock::DefaultFrameworkAdapter.new
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
after do
|
|
43
|
-
flexmock_verify
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
it 'should add before and after filters that push a new repo' do
|
|
47
|
-
filters = DMAMapping.send :filters
|
|
48
|
-
filters.should.not == nil
|
|
49
|
-
filters[:before][0][0][:path].should == true
|
|
50
|
-
filters[:always][0][0][:path].should == true
|
|
51
|
-
before_size = ::DataMapper::Repository.context.size
|
|
52
|
-
filters[:before][0][1].call
|
|
53
|
-
after_size = ::DataMapper::Repository.context.size
|
|
54
|
-
(after_size - before_size).should == 1
|
|
55
|
-
filters[:always][0][1].call
|
|
56
|
-
end_size = ::DataMapper::Repository.context.size
|
|
57
|
-
(end_size - after_size).should == -1
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
it 'should add before and after filters that push a new repo with flexmock' do
|
|
61
|
-
mock_context = flexmock("context")
|
|
62
|
-
flexmock(::DataMapper::Repository, :context => mock_context)
|
|
63
|
-
mock_context.should_receive(:push).once
|
|
64
|
-
mock_context.should_receive(:pop).once
|
|
65
|
-
|
|
66
|
-
filters = DMAMapping.send :filters
|
|
67
|
-
filters[:before][0][1].call
|
|
68
|
-
filters[:always][0][1].call
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
it 'should initialize the database adapater' do
|
|
72
|
-
DMA.database.class.should.not == nil
|
|
73
|
-
DMA.database.class.should == ::DataMapper::Adapters::Sqlite3Adapter
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
it 'It should load models' do
|
|
77
|
-
# pending
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
end
|
|
81
|
-
rescue LoadError => e
|
|
82
|
-
describe "DataMapper Associations" do
|
|
83
|
-
it 'should be able to load dm-core' do
|
|
84
|
-
puts "\nDatamapper associations specs not run! Could not load dm-core: #{e}\n"
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
end
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# require 'test_helper' because RubyMate needs help
|
|
2
|
-
require File.join(File.dirname(__FILE__) , "helpers")
|
|
3
|
-
|
|
4
|
-
module DefaultErrorsApp
|
|
5
|
-
include Waves::Foundations::Simple
|
|
6
|
-
include Waves::Layers::DefaultErrors
|
|
7
|
-
module Views
|
|
8
|
-
class Errors
|
|
9
|
-
include Waves::Views::Mixin
|
|
10
|
-
def not_found_404(arg)
|
|
11
|
-
"View-based 404"
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
stub!(:views).and_return(Views)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
# Waves << DefaultErrorsApp
|
|
19
|
-
Waves::Console.load( :mode => :development )
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
describe "An application which includes the DefaultErrors layer" do
|
|
23
|
-
|
|
24
|
-
it "registers a view-based handler for NotFound errors" do
|
|
25
|
-
r = get('/bogus')
|
|
26
|
-
r.body.should == "View-based 404"
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
end
|
data/verify/layers/helpers.rb
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
require File.join(File.dirname(__FILE__) , "..", "helpers")
|
data/verify/layers/migration.rb
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# require 'test_helper' because RubyMate needs help
|
|
2
|
-
require File.join(File.dirname(__FILE__) , "helpers")
|
|
3
|
-
require 'layers/orm/migration'
|
|
4
|
-
|
|
5
|
-
ORM = Waves::Layers::ORM
|
|
6
|
-
|
|
7
|
-
Dir.chdir("#{File.dirname(__FILE__)}/../../samples/blog") do
|
|
8
|
-
|
|
9
|
-
describe "Waves::Layers::ORM migration helpers" do
|
|
10
|
-
|
|
11
|
-
it "defines a standard migration location" do
|
|
12
|
-
ORM.migration_directory.should == "schema/migrations"
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
it "supplies a list of all migration files found in the standard location" do
|
|
16
|
-
ORM.migration_files.should == ["schema/migrations/001_initial_schema.rb", "schema/migrations/002_add_comments.rb"]
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
it "detects the highest-numbered existing migration file" do
|
|
20
|
-
ORM.latest_migration_version.should == 2
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
it "determines the number of the next migration to be created" do
|
|
24
|
-
ORM.next_migration_version.should == 3
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
it "generates the path for the next migration with a given name" do
|
|
28
|
-
ORM.migration_destination("blink").should == "schema/migrations/003_blink.rb"
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
end
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
# require 'test_helper' because RubyMate needs help
|
|
2
|
-
require File.join(File.dirname(__FILE__) , "..", "helpers")
|
|
3
|
-
require 'layers/orm/sequel'
|
|
4
|
-
|
|
5
|
-
module TestApplication
|
|
6
|
-
include AutoCode
|
|
7
|
-
module Configurations
|
|
8
|
-
class Development
|
|
9
|
-
stub!(:database).and_return(:adapter => 'sqlite',
|
|
10
|
-
:database => "#{File.dirname(__FILE__)}test.db")
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
stub!(:config).and_return(Configurations::Development)
|
|
14
|
-
include Waves::Layers::ORM::Sequel
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
Waves << TestApplication
|
|
18
|
-
# Waves::Console.load( :mode => :development )
|
|
19
|
-
TA = TestApplication
|
|
20
|
-
|
|
21
|
-
describe "An application module which includes the Sequel ORM layer" do
|
|
22
|
-
|
|
23
|
-
wrap { rm_if_exist 'test.db' }
|
|
24
|
-
|
|
25
|
-
it "auto_creates models that inherit from Sequel::Model" do
|
|
26
|
-
TA::Models::Default.superclass.should == Sequel::Model
|
|
27
|
-
TA::Models::Thingy.superclass.should == TA::Models::Default
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
it "sets the dataset to use the snake_case of the class name as the table name" do
|
|
31
|
-
TA::Models::Thingy.dataset.send(:to_table_reference).should =~ /SELECT.+FROM.+thingies+/
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
it "provides an accessor for database" do
|
|
35
|
-
TA.should.respond_to :database
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
# Waves.instance_variable_set(:@application, nil)
|
|
41
|
-
# raise Waves.application.inspect
|
data/verify/mapping/always.rb
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# require 'test_helper' because RubyMate needs help
|
|
2
|
-
require File.join(File.dirname(__FILE__), "helpers")
|
|
3
|
-
::TEST_VALUE = 'foo'
|
|
4
|
-
|
|
5
|
-
specification "A developer can ensure" do
|
|
6
|
-
|
|
7
|
-
before do
|
|
8
|
-
mapping.clear
|
|
9
|
-
path('/' ) { raise RuntimeError.new('bar') }
|
|
10
|
-
always( true ) { Waves.been_there }
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
specify 'processing is guaranteed regardless of what happens in an action' do
|
|
14
|
-
Waves.should.receive(:been_there)
|
|
15
|
-
lambda { get('/') }.should.raise RuntimeError
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
end
|
|
19
|
-
|
data/verify/mapping/filters.rb
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
# require 'test_helper' because RubyMate needs help
|
|
2
|
-
require File.join(File.dirname(__FILE__), "helpers")
|
|
3
|
-
|
|
4
|
-
describe "A developer can map requests to filters." do
|
|
5
|
-
|
|
6
|
-
before do
|
|
7
|
-
mapping.clear
|
|
8
|
-
handle(Waves::Dispatchers::NotFoundError) { response.status = 404}
|
|
9
|
-
mapping.before( :path => '/filters', :method => :post ) { request.response.write('Before post:') }
|
|
10
|
-
mapping.before( :path => '/filters' ) { request.response.write('Before:') }
|
|
11
|
-
mapping.wrap( :path => '/filters', :method => :post ) { request.response.write(':Wrap post:') }
|
|
12
|
-
mapping.wrap( :path => '/filters' ) { request.response.write(':Wrap:') }
|
|
13
|
-
mapping.path( '/filters' ) { 'During' }
|
|
14
|
-
mapping.after( :path => '/filters', :method => :post ) { request.response.write('After post:') }
|
|
15
|
-
mapping.after( :path => '/filters' ) { request.response.write(':After') }
|
|
16
|
-
|
|
17
|
-
regexp = %r{^/filters/(\w+)$}
|
|
18
|
-
|
|
19
|
-
mapping.before( :path => regexp ) { |filtername| request.response.write("Before #{filtername}:") }
|
|
20
|
-
mapping.wrap( :path => regexp ) { |filtername| request.response.write(":Wrap #{filtername}:") }
|
|
21
|
-
mapping.path( regexp ) { 'During' }
|
|
22
|
-
mapping.after( :path => regexp ) { |filtername| request.response.write(":After #{filtername}") }
|
|
23
|
-
|
|
24
|
-
mapping.before( :path => 'filters_with_no_map' ) { request.response.write("Before") }
|
|
25
|
-
mapping.wrap( :path => 'filters_with_no_map' ) { request.response.write("Wrap") }
|
|
26
|
-
mapping.after( :path => 'filters_with_no_map' ) { request.response.write("After") }
|
|
27
|
-
|
|
28
|
-
mapping.before('/pathstring') { request.response.write("Before pathstring") }
|
|
29
|
-
mapping.wrap('/pathstring') { request.response.write("Wrap pathstring") }
|
|
30
|
-
mapping.path('/pathstring') { "During pathstring" }
|
|
31
|
-
mapping.after('/pathstring') { request.response.write("After pathstring") }
|
|
32
|
-
|
|
33
|
-
mapping.before(%r{^/pathregexp$}) { request.response.write("Before pathregexp") }
|
|
34
|
-
mapping.wrap(%r{^/pathregexp$}) { request.response.write("Wrap pathregexp") }
|
|
35
|
-
mapping.path(%r{^/pathregexp$}) { "During pathregexp" }
|
|
36
|
-
mapping.after(%r{^/pathregexp$}) { request.response.write("After pathregexp") }
|
|
37
|
-
|
|
38
|
-
mapping.before('/pathstring/name', :method => :post) { request.response.write("Before pathstring post") }
|
|
39
|
-
mapping.wrap('/pathstring/name', :method => :post) { request.response.write("Wrap pathstring post") }
|
|
40
|
-
mapping.path('/pathstring/name', :method => :post) { "During pathstring post" }
|
|
41
|
-
mapping.after('/pathstring/name', :method => :post) { request.response.write("After pathstring post") }
|
|
42
|
-
|
|
43
|
-
mapping.before(%r{^/pathregexp/name$}, :method => :post) { request.response.write("Before pathregexp post") }
|
|
44
|
-
mapping.wrap(%r{^/pathregexp/name$}, :method => :post) { request.response.write("Wrap pathregexp post") }
|
|
45
|
-
mapping.path(%r{^/pathregexp/name$}, :method => :post) { "During pathregexp post" }
|
|
46
|
-
mapping.after(%r{^/pathregexp/name$}, :method => :post) { request.response.write("After pathregexp post") }
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
it "Map a path to a 'before', 'after' and 'wrap' filters." do
|
|
50
|
-
get('/filters').body.should == 'Before::Wrap:During:Wrap::After'
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
it "Map a POST to a path to a 'before', 'after' and 'wrap' filters" do
|
|
54
|
-
post('/filters').body.should == 'Before post:Before::Wrap post::Wrap:During:Wrap post::Wrap:After post::After'
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
it "The 'before', 'after' and 'wrap' filters accept a regular expression and can extract parameters from the request path" do
|
|
58
|
-
get('/filters/xyz').body.should == 'Before xyz::Wrap xyz:During:Wrap xyz::After xyz'
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
it "When having 'before', 'after' and 'wrap' filters but no corresponding map action this results in a 404" do
|
|
62
|
-
get('/filters_with_no_map').status.should == 404
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
end
|