waves 0.7.6 → 0.7.7
Sign up to get free protection for your applications and to get access to all the features.
- data/app/Rakefile +64 -6
- data/app/configurations/development.rb.erb +2 -1
- data/app/configurations/mapping.rb.erb +1 -0
- data/app/configurations/production.rb.erb +1 -0
- data/app/lib/application.rb.erb +2 -2
- data/bin/waves +36 -1
- data/doc/HISTORY +44 -0
- data/doc/LICENSE +22 -0
- data/doc/rdoc/classes/Erubis/Context.html +218 -0
- data/doc/rdoc/classes/Kernel.html +145 -0
- data/doc/rdoc/classes/Symbol.html +154 -0
- data/doc/rdoc/classes/Tempfile.html +161 -0
- data/doc/rdoc/classes/Waves.html +455 -0
- data/doc/rdoc/classes/Waves/Application.html +371 -0
- data/doc/rdoc/classes/Waves/Blackboard.html +296 -0
- data/doc/rdoc/classes/Waves/Configurations.html +283 -0
- data/doc/rdoc/classes/Waves/Configurations/Base.html +209 -0
- data/doc/rdoc/classes/Waves/Configurations/Default.html +237 -0
- data/doc/rdoc/classes/Waves/Console.html +187 -0
- data/doc/rdoc/classes/Waves/Controllers.html +203 -0
- data/doc/rdoc/classes/Waves/Controllers/Base.html +151 -0
- data/doc/rdoc/classes/Waves/Controllers/Mixin.html +312 -0
- data/doc/rdoc/classes/Waves/Dispatchers.html +118 -0
- data/doc/rdoc/classes/Waves/Dispatchers/Base.html +198 -0
- data/doc/rdoc/classes/Waves/Dispatchers/Default.html +224 -0
- data/doc/rdoc/classes/Waves/Dispatchers/NotFoundError.html +122 -0
- data/doc/rdoc/classes/Waves/Dispatchers/Redirect.html +173 -0
- data/doc/rdoc/classes/Waves/Foundations.html +131 -0
- data/doc/rdoc/classes/Waves/Foundations/Default.html +179 -0
- data/doc/rdoc/classes/Waves/Foundations/Simple.html +167 -0
- data/doc/rdoc/classes/Waves/Helpers.html +176 -0
- data/doc/rdoc/classes/Waves/Helpers/AssetHelper.html +212 -0
- data/doc/rdoc/classes/Waves/Helpers/Common.html +213 -0
- data/doc/rdoc/classes/Waves/Helpers/Default.html +135 -0
- data/doc/rdoc/classes/Waves/Helpers/Form.html +201 -0
- data/doc/rdoc/classes/Waves/Helpers/Formatting.html +232 -0
- data/doc/rdoc/classes/Waves/Helpers/Model.html +194 -0
- data/doc/rdoc/classes/Waves/Helpers/NumberHelper.html +165 -0
- data/doc/rdoc/classes/Waves/Helpers/TagHelper.html +226 -0
- data/doc/rdoc/classes/Waves/Helpers/UrlHelper.html +242 -0
- data/doc/rdoc/classes/Waves/Helpers/View.html +163 -0
- data/doc/rdoc/classes/Waves/Inflect/InflectorMethods.html +475 -0
- data/doc/rdoc/classes/Waves/Layers.html +175 -0
- data/doc/rdoc/classes/Waves/Layers/DefaultErrors.html +161 -0
- data/doc/rdoc/classes/Waves/Layers/Inflect.html +119 -0
- data/doc/rdoc/classes/Waves/Layers/Inflect/English.html +168 -0
- data/doc/rdoc/classes/Waves/Layers/Inflect/English/Rules.html +112 -0
- data/doc/rdoc/classes/Waves/Layers/Inflect/English/StringMethods.html +194 -0
- data/doc/rdoc/classes/Waves/Layers/MVC.html +204 -0
- data/doc/rdoc/classes/Waves/Layers/ORM/ActiveRecord.html +239 -0
- data/doc/rdoc/classes/Waves/Layers/ORM/ActiveRecord/ControllerMethods.html +246 -0
- data/doc/rdoc/classes/Waves/Layers/ORM/ActiveRecord/Symbol.html +132 -0
- data/doc/rdoc/classes/Waves/Layers/ORM/DataMapper.html +166 -0
- data/doc/rdoc/classes/Waves/Layers/ORM/Filebase.html +157 -0
- data/doc/rdoc/classes/Waves/Layers/ORM/Sequel.html +232 -0
- data/doc/rdoc/classes/Waves/Layers/ORM/Sequel/ControllerMethods.html +246 -0
- data/doc/rdoc/classes/Waves/Layers/Simple.html +169 -0
- data/doc/rdoc/classes/Waves/Layers/SimpleErrors.html +159 -0
- data/doc/rdoc/classes/Waves/Logger.html +288 -0
- data/doc/rdoc/classes/Waves/Mapping.html +760 -0
- data/doc/rdoc/classes/Waves/Mapping/PrettyUrls.html +129 -0
- data/doc/rdoc/classes/Waves/Mapping/PrettyUrls/GetRules.html +174 -0
- data/doc/rdoc/classes/Waves/Mapping/PrettyUrls/RestRules.html +180 -0
- data/doc/rdoc/classes/Waves/MimeTypes.html +200 -0
- data/doc/rdoc/classes/Waves/Renderers/Erubis.html +162 -0
- data/doc/rdoc/classes/Waves/Renderers/Haml.html +160 -0
- data/doc/rdoc/classes/Waves/Renderers/Markaby.html +167 -0
- data/doc/rdoc/classes/Waves/Renderers/Mixin.html +191 -0
- data/doc/rdoc/classes/Waves/Renderers/Scope.html +181 -0
- data/doc/rdoc/classes/Waves/Request.html +441 -0
- data/doc/rdoc/classes/Waves/Request/ParseError.html +111 -0
- data/doc/rdoc/classes/Waves/Response.html +283 -0
- data/doc/rdoc/classes/Waves/ResponseMixin.html +460 -0
- data/doc/rdoc/classes/Waves/ResponseProxy.html +269 -0
- data/doc/rdoc/classes/Waves/Server.html +488 -0
- data/doc/rdoc/classes/Waves/Session.html +330 -0
- data/doc/rdoc/classes/Waves/Utilities/Hash.html +185 -0
- data/doc/rdoc/classes/Waves/Utilities/Integer.html +424 -0
- data/doc/rdoc/classes/Waves/Utilities/Module.html +174 -0
- data/doc/rdoc/classes/Waves/Utilities/Object.html +155 -0
- data/doc/rdoc/classes/Waves/Utilities/Proc.html +145 -0
- data/doc/rdoc/classes/Waves/Utilities/String.html +290 -0
- data/doc/rdoc/classes/Waves/Views.html +278 -0
- data/doc/rdoc/classes/Waves/Views/Base.html +118 -0
- data/doc/rdoc/classes/Waves/Views/Mixin.html +279 -0
- data/doc/rdoc/classes/Waves/Views/NoTemplateError.html +111 -0
- data/doc/rdoc/created.rid +1 -0
- data/doc/rdoc/files/README_rdoc.html +415 -0
- data/doc/rdoc/files/bin/waves.html +135 -0
- data/doc/rdoc/files/doc/HISTORY.html +265 -0
- data/doc/rdoc/files/lib/commands/waves-console_rb.html +110 -0
- data/doc/rdoc/files/lib/commands/waves-server_rb.html +108 -0
- data/doc/rdoc/files/lib/controllers/base_rb.html +101 -0
- data/doc/rdoc/files/lib/controllers/mixin_rb.html +101 -0
- data/doc/rdoc/files/lib/dispatchers/base_rb.html +101 -0
- data/doc/rdoc/files/lib/dispatchers/default_rb.html +101 -0
- data/doc/rdoc/files/lib/foundations/default_rb.html +101 -0
- data/doc/rdoc/files/lib/foundations/simple_rb.html +101 -0
- data/doc/rdoc/files/lib/helpers/asset_helper_rb.html +101 -0
- data/doc/rdoc/files/lib/helpers/common_rb.html +101 -0
- data/doc/rdoc/files/lib/helpers/default_rb.html +101 -0
- data/doc/rdoc/files/lib/helpers/form_rb.html +101 -0
- data/doc/rdoc/files/lib/helpers/formatting_rb.html +108 -0
- data/doc/rdoc/files/lib/helpers/model_rb.html +101 -0
- data/doc/rdoc/files/lib/helpers/number_helper_rb.html +101 -0
- data/doc/rdoc/files/lib/helpers/tag_helper_rb.html +101 -0
- data/doc/rdoc/files/lib/helpers/url_helper_rb.html +101 -0
- data/doc/rdoc/files/lib/helpers/view_rb.html +101 -0
- data/doc/rdoc/files/lib/layers/default_errors_rb.html +101 -0
- data/doc/rdoc/files/lib/layers/inflect/english/rules_rb.html +101 -0
- data/doc/rdoc/files/lib/layers/inflect/english/string_rb.html +101 -0
- data/doc/rdoc/files/lib/layers/inflect/english_rb.html +109 -0
- data/doc/rdoc/files/lib/layers/mvc_rb.html +101 -0
- data/doc/rdoc/files/lib/layers/orm/active_record/tasks/generate_rb.html +101 -0
- data/doc/rdoc/files/lib/layers/orm/active_record/tasks/schema_rb.html +101 -0
- data/doc/rdoc/files/lib/layers/orm/active_record_rb.html +108 -0
- data/doc/rdoc/files/lib/layers/orm/data_mapper_rb.html +108 -0
- data/doc/rdoc/files/lib/layers/orm/filebase_rb.html +101 -0
- data/doc/rdoc/files/lib/layers/orm/migration_rb.html +101 -0
- data/doc/rdoc/files/lib/layers/orm/sequel/tasks/generate_rb.html +101 -0
- data/doc/rdoc/files/lib/layers/orm/sequel/tasks/schema_rb.html +101 -0
- data/doc/rdoc/files/lib/layers/orm/sequel_rb.html +108 -0
- data/doc/rdoc/files/lib/layers/simple_errors_rb.html +101 -0
- data/doc/rdoc/files/lib/layers/simple_rb.html +101 -0
- data/doc/rdoc/files/lib/mapping/mapping_rb.html +101 -0
- data/doc/rdoc/files/lib/mapping/pretty_urls_rb.html +101 -0
- data/doc/rdoc/files/lib/renderers/erubis_rb.html +108 -0
- data/doc/rdoc/files/lib/renderers/haml_rb.html +108 -0
- data/doc/rdoc/files/lib/renderers/markaby_rb.html +108 -0
- data/doc/rdoc/files/lib/renderers/mixin_rb.html +101 -0
- data/doc/rdoc/files/lib/runtime/application_rb.html +107 -0
- data/doc/rdoc/files/lib/runtime/blackboard_rb.html +101 -0
- data/doc/rdoc/files/lib/runtime/configuration_rb.html +101 -0
- data/doc/rdoc/files/lib/runtime/console_rb.html +101 -0
- data/doc/rdoc/files/lib/runtime/debugger_rb.html +101 -0
- data/doc/rdoc/files/lib/runtime/logger_rb.html +108 -0
- data/doc/rdoc/files/lib/runtime/mime_types_rb.html +101 -0
- data/doc/rdoc/files/lib/runtime/request_rb.html +101 -0
- data/doc/rdoc/files/lib/runtime/response_mixin_rb.html +101 -0
- data/doc/rdoc/files/lib/runtime/response_proxy_rb.html +101 -0
- data/doc/rdoc/files/lib/runtime/response_rb.html +101 -0
- data/doc/rdoc/files/lib/runtime/server_rb.html +108 -0
- data/doc/rdoc/files/lib/runtime/session_rb.html +101 -0
- data/doc/rdoc/files/lib/tasks/cluster_rb.html +101 -0
- data/doc/rdoc/files/lib/tasks/gem_rb.html +108 -0
- data/doc/rdoc/files/lib/tasks/generate_rb.html +101 -0
- data/doc/rdoc/files/lib/utilities/hash_rb.html +101 -0
- data/doc/rdoc/files/lib/utilities/inflect_rb.html +111 -0
- data/doc/rdoc/files/lib/utilities/integer_rb.html +101 -0
- data/doc/rdoc/files/lib/utilities/module_rb.html +101 -0
- data/doc/rdoc/files/lib/utilities/object_rb.html +101 -0
- data/doc/rdoc/files/lib/utilities/proc_rb.html +101 -0
- data/doc/rdoc/files/lib/utilities/string_rb.html +101 -0
- data/doc/rdoc/files/lib/utilities/symbol_rb.html +101 -0
- data/doc/rdoc/files/lib/utilities/tempfile_rb.html +115 -0
- data/doc/rdoc/files/lib/views/base_rb.html +101 -0
- data/doc/rdoc/files/lib/views/mixin_rb.html +101 -0
- data/doc/rdoc/files/lib/waves_rb.html +195 -0
- data/doc/rdoc/fr_class_index.html +104 -0
- data/doc/rdoc/fr_file_index.html +97 -0
- data/doc/rdoc/fr_method_index.html +233 -0
- data/doc/rdoc/index.html +24 -0
- data/doc/rdoc/rdoc-style.css +208 -0
- data/lib/foundations/default.rb +1 -0
- data/lib/layers/default_errors.rb +10 -13
- data/lib/layers/inflect/english.rb +24 -0
- data/lib/layers/inflect/english/rules.rb +88 -0
- data/lib/layers/inflect/english/string.rb +24 -0
- data/lib/layers/mvc.rb +31 -35
- data/lib/layers/orm/active_record.rb +83 -32
- data/lib/layers/orm/active_record/tasks/generate.rb +28 -0
- data/lib/layers/orm/active_record/tasks/schema.rb +7 -15
- data/lib/layers/orm/data_mapper.rb +12 -16
- data/lib/layers/orm/migration.rb +20 -11
- data/lib/layers/orm/sequel.rb +53 -49
- data/lib/layers/orm/sequel/tasks/generate.rb +28 -0
- data/lib/layers/orm/sequel/tasks/schema.rb +6 -14
- data/lib/layers/simple.rb +6 -13
- data/lib/layers/simple_errors.rb +5 -8
- data/lib/renderers/haml.rb +45 -0
- data/lib/runtime/application.rb +0 -2
- data/lib/tasks/cluster.rb +1 -1
- data/lib/utilities/inflect.rb +86 -168
- data/lib/utilities/integer.rb +23 -16
- data/lib/utilities/module.rb +19 -15
- data/lib/utilities/object.rb +22 -14
- data/lib/utilities/proc.rb +13 -7
- data/lib/utilities/string.rb +0 -12
- data/lib/utilities/symbol.rb +4 -1
- data/lib/utilities/tempfile.rb +9 -0
- data/lib/waves.rb +3 -1
- data/samples/blog/Rakefile +14 -0
- data/samples/blog/bin/waves-console +3 -0
- data/samples/blog/bin/waves-server +3 -0
- data/samples/blog/blog.db +0 -0
- data/samples/blog/configurations/development.rb +31 -0
- data/samples/blog/configurations/mapping.rb +23 -0
- data/samples/blog/configurations/production.rb +30 -0
- data/samples/blog/doc/EMTPY +0 -0
- data/samples/blog/lib/application.rb +5 -0
- data/samples/blog/models/comment.rb +14 -0
- data/samples/blog/models/entry.rb +14 -0
- data/samples/blog/public/css/site.css +2 -0
- data/samples/blog/public/javascript/site.js +13 -0
- data/samples/blog/schema/migrations/001_initial_schema.rb +17 -0
- data/samples/blog/schema/migrations/002_add_comments.rb +18 -0
- data/samples/blog/schema/migrations/templates/empty.rb.erb +9 -0
- data/samples/blog/startup.rb +6 -0
- data/samples/blog/templates/comment/add.mab +10 -0
- data/samples/blog/templates/comment/list.mab +6 -0
- data/samples/blog/templates/entry/editor.mab +13 -0
- data/samples/blog/templates/entry/list.mab +11 -0
- data/samples/blog/templates/entry/show.mab +9 -0
- data/samples/blog/templates/entry/summary.mab +5 -0
- data/samples/blog/templates/errors/not_found_404.mab +2 -0
- data/samples/blog/templates/errors/server_error_500.mab +2 -0
- data/samples/blog/templates/layouts/default.mab +17 -0
- data/samples/jub/Rakefile +72 -0
- data/samples/jub/bin/waves-console +4 -0
- data/samples/jub/bin/waves-server +4 -0
- data/samples/jub/configurations/development.rb +31 -0
- data/samples/jub/configurations/mapping.rb +18 -0
- data/samples/jub/configurations/production.rb +31 -0
- data/samples/jub/lib/application.rb +5 -0
- data/samples/jub/startup.rb +6 -0
- data/samples/jub/templates/errors/not_found_404.mab +2 -0
- data/samples/jub/templates/errors/server_error_500.mab +2 -0
- data/samples/jub/templates/layouts/default.mab +14 -0
- data/verify/app_generation/helpers.rb +24 -0
- data/verify/app_generation/startup.rb +39 -0
- data/verify/blackboard/blackboard_verify.rb +92 -0
- data/verify/blackboard/helpers.rb +5 -0
- data/verify/configurations/attributes.rb +37 -0
- data/verify/configurations/helpers.rb +1 -0
- data/verify/configurations/rack_integration.rb +29 -0
- data/verify/controllers/base.rb +37 -0
- data/verify/controllers/helpers.rb +13 -0
- data/verify/controllers/interface.rb +51 -0
- data/verify/core/helpers.rb +3 -0
- data/verify/core/utilities.rb +177 -0
- data/verify/foundations/default.rb +86 -0
- data/verify/foundations/default_application/Rakefile +14 -0
- data/verify/foundations/default_application/bin/waves-console +3 -0
- data/verify/foundations/default_application/bin/waves-server +3 -0
- data/verify/foundations/default_application/configurations/development.rb +26 -0
- data/verify/foundations/default_application/configurations/mapping.rb +14 -0
- data/verify/foundations/default_application/configurations/production.rb +30 -0
- data/verify/foundations/default_application/controllers/default.rb +15 -0
- data/verify/foundations/default_application/controllers/loaded.rb +15 -0
- data/verify/foundations/default_application/defaultapplication.db +0 -0
- data/verify/foundations/default_application/helpers/loaded.rb +10 -0
- data/verify/foundations/default_application/lib/application.rb +5 -0
- data/verify/foundations/default_application/models/default.rb +13 -0
- data/verify/foundations/default_application/models/loaded.rb +13 -0
- data/verify/foundations/default_application/schema/migrations/templates/empty.rb.erb +9 -0
- data/verify/foundations/default_application/startup.rb +7 -0
- data/verify/foundations/default_application/templates/errors/not_found_404.mab +2 -0
- data/verify/foundations/default_application/templates/errors/server_error_500.mab +2 -0
- data/verify/foundations/default_application/templates/layouts/default.mab +14 -0
- data/verify/foundations/default_application/views/default.rb +7 -0
- data/verify/foundations/default_application/views/loaded.rb +15 -0
- data/verify/foundations/helpers.rb +1 -0
- data/verify/foundations/simple.rb +25 -0
- data/verify/helpers.rb +76 -0
- data/verify/layers/data_mapper/association_verify.rb +87 -0
- data/verify/layers/default_errors.rb +29 -0
- data/verify/layers/helpers.rb +1 -0
- data/verify/layers/migration.rb +33 -0
- data/verify/layers/sequel/model.rb +41 -0
- data/verify/layers/sequeltest.db +0 -0
- data/verify/mapping/always.rb +19 -0
- data/verify/mapping/filters.rb +65 -0
- data/verify/mapping/handle.rb +24 -0
- data/verify/mapping/helpers.rb +7 -0
- data/verify/mapping/matches.rb +27 -0
- data/verify/mapping/named.rb +29 -0
- data/verify/mapping/options.rb +17 -0
- data/verify/mapping/path.rb +40 -0
- data/verify/mapping/response_proxy.rb +50 -0
- data/verify/mapping/threaded.rb +25 -0
- data/verify/requests/helpers.rb +16 -0
- data/verify/requests/request.rb +73 -0
- data/verify/requests/response.rb +59 -0
- data/verify/requests/session.rb +54 -0
- data/verify/views/helpers.rb +1 -0
- data/verify/views/rendering.rb +34 -0
- data/verify/views/templates/foo.erb +0 -0
- data/verify/views/templates/moo.erb +0 -0
- data/verify/views/templates/moo.mab +0 -0
- metadata +597 -224
- data/lib/utilities/kernel.rb +0 -34
data/lib/utilities/integer.rb
CHANGED
@@ -1,17 +1,24 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
1
|
+
module Waves
|
2
|
+
module Utilities
|
3
|
+
module Integer
|
4
|
+
def seconds ; self ; end
|
5
|
+
def minutes ; self * 60 ; end
|
6
|
+
def hours ; self * 60.minutes ; end
|
7
|
+
def days ; self * 24.hours ; end
|
8
|
+
def weeks ; self * 7.days ; end
|
9
|
+
def bytes ; self ; end
|
10
|
+
def kilobytes ; self * 1024 ; end
|
11
|
+
def megabytes ; self * 1024.kilobytes ; end
|
12
|
+
def gigabytes ; self * 1024.megabytes ; end
|
13
|
+
def terabytes ; self * 1024.gigabytes ; end
|
14
|
+
def petabytes ; self * 1024.terabytes ; end
|
15
|
+
def exabytes ; self * 1024.petabytes ; end
|
16
|
+
def zettabytes ; self * 1024.exabytes ; end
|
17
|
+
def yottabytes ; self * 1024.zettabytes ; end
|
18
|
+
end
|
19
|
+
end
|
17
20
|
end
|
21
|
+
|
22
|
+
class Integer # :nodoc:
|
23
|
+
include Waves::Utilities::Integer
|
24
|
+
end
|
data/lib/utilities/module.rb
CHANGED
@@ -1,17 +1,21 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
# Just a convenience method for accessing a const within a Module
|
11
|
-
def []( cname )
|
12
|
-
const_get( cname.to_s.camel_case )
|
13
|
-
end
|
14
|
-
|
15
|
-
|
1
|
+
module Waves
|
2
|
+
module Utilities
|
3
|
+
module Module
|
4
|
+
# This comes in handy when you are trying to do meta-programming with modules / classes
|
5
|
+
# that may be nested within other modules / classes. I think I've seen it defined in
|
6
|
+
# facets, but I'm not relying on facets just for this one method.
|
7
|
+
def basename
|
8
|
+
self.name.split('::').last || ''
|
9
|
+
end
|
16
10
|
|
11
|
+
# Just a convenience method for accessing a const within a Module
|
12
|
+
def []( cname )
|
13
|
+
const_get( cname.to_s.camel_case )
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
17
|
end
|
18
|
+
|
19
|
+
class Module # :nodoc:
|
20
|
+
include Waves::Utilities::Module
|
21
|
+
end
|
data/lib/utilities/object.rb
CHANGED
@@ -1,17 +1,25 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
1
|
+
module Waves
|
2
|
+
module Utilities
|
3
|
+
module Object
|
4
|
+
# This is an extremely powerful little function that will be built-in to Ruby 1.9.
|
5
|
+
# This version is from Mauricio Fernandez via ruby-talk. Works like instance_eval
|
6
|
+
# except that you can pass parameters to the block. This means you can define a block
|
7
|
+
# intended for use with instance_eval, pass it to another method, which can then
|
8
|
+
# invoke with parameters. This is used quite a bit by the Waves::Mapping code.
|
9
|
+
def instance_exec(*args, &block)
|
10
|
+
mname = "__instance_exec_#{Thread.current.object_id.abs}"
|
11
|
+
class << self; self end.class_eval{ define_method(mname, &block) }
|
12
|
+
begin
|
13
|
+
ret = send(mname, *args)
|
14
|
+
ensure
|
15
|
+
class << self; self end.class_eval{ undef_method(mname) } rescue nil
|
16
|
+
end
|
17
|
+
ret
|
18
|
+
end
|
14
19
|
end
|
15
|
-
ret
|
16
20
|
end
|
17
21
|
end
|
22
|
+
|
23
|
+
class Object # :nodoc:
|
24
|
+
include Waves::Utilities::Object
|
25
|
+
end
|
data/lib/utilities/proc.rb
CHANGED
@@ -1,10 +1,16 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
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
|
7
10
|
end
|
8
11
|
end
|
9
|
-
|
10
12
|
end
|
13
|
+
|
14
|
+
class Proc # :nodoc:
|
15
|
+
include Waves::Utilities::Proc
|
16
|
+
end
|
data/lib/utilities/string.rb
CHANGED
@@ -17,18 +17,6 @@ module Waves
|
|
17
17
|
File.join(self,string.to_s)
|
18
18
|
end
|
19
19
|
|
20
|
-
def singular
|
21
|
-
Inflect::English.singular(self)
|
22
|
-
end
|
23
|
-
|
24
|
-
alias_method(:singularize, :singular)
|
25
|
-
|
26
|
-
def plural
|
27
|
-
Inflect::English.plural(self)
|
28
|
-
end
|
29
|
-
|
30
|
-
alias_method(:pluralize, :plural)
|
31
|
-
|
32
20
|
# produces stringsLikeThis
|
33
21
|
def lower_camel_case
|
34
22
|
gsub(/(_)(\w)/) { $2.upcase }
|
data/lib/utilities/symbol.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
class Symbol
|
2
2
|
# Does File.join on self and string, converting self to string before invocation.
|
3
|
-
# See String#/ for more.
|
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]
|
4
7
|
def / ( string )
|
5
8
|
self.to_s / string
|
6
9
|
end
|
@@ -0,0 +1,9 @@
|
|
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/waves.rb
CHANGED
@@ -26,12 +26,12 @@ require 'base64'
|
|
26
26
|
require 'utilities/module'
|
27
27
|
require 'utilities/string'
|
28
28
|
require 'utilities/symbol'
|
29
|
-
require 'utilities/kernel'
|
30
29
|
require 'utilities/object'
|
31
30
|
require 'utilities/integer'
|
32
31
|
require 'utilities/inflect'
|
33
32
|
require 'utilities/proc'
|
34
33
|
require 'utilities/hash'
|
34
|
+
require 'utilities/tempfile'
|
35
35
|
# waves Runtime
|
36
36
|
require 'dispatchers/base'
|
37
37
|
require 'dispatchers/default'
|
@@ -71,6 +71,7 @@ require 'helpers/number_helper'
|
|
71
71
|
require 'renderers/mixin'
|
72
72
|
require 'renderers/erubis'
|
73
73
|
require 'renderers/markaby'
|
74
|
+
require 'renderers/haml'
|
74
75
|
|
75
76
|
|
76
77
|
# waves foundations / layers
|
@@ -79,4 +80,5 @@ require 'layers/simple_errors'
|
|
79
80
|
require 'foundations/simple'
|
80
81
|
require 'layers/mvc'
|
81
82
|
require 'layers/default_errors'
|
83
|
+
require 'layers/inflect/english'
|
82
84
|
require 'foundations/default'
|
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Warning: This file is clobbered when you update your
|
4
|
+
# application with the waves script. Accordingly, you may
|
5
|
+
# wish to keep your tasks in .rb or .rake files in lib/tasks
|
6
|
+
require 'startup'
|
7
|
+
Waves::Console.load(:mode => ENV['mode'])
|
8
|
+
|
9
|
+
# load tasks from waves framework
|
10
|
+
%w( cluster generate gem ).each { |task| require "tasks/#{task}.rb" }
|
11
|
+
|
12
|
+
# load tasks from this app's lib/tasks
|
13
|
+
Dir["lib/tasks/*.{rb,rake}"].each { |task| require task }
|
14
|
+
|
Binary file
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Blog
|
2
|
+
|
3
|
+
module Configurations
|
4
|
+
|
5
|
+
class Development < Default
|
6
|
+
|
7
|
+
database :adapter => 'sqlite', :database => 'blog.db'
|
8
|
+
|
9
|
+
reloadable [ Blog ]
|
10
|
+
|
11
|
+
log :level => :debug
|
12
|
+
|
13
|
+
host '127.0.0.1'
|
14
|
+
|
15
|
+
port 3000
|
16
|
+
|
17
|
+
handler ::Rack::Handler::Mongrel, :Host => host, :Port => port
|
18
|
+
# handler ::Rack::Handler::WEBrick, :BindAddress => host, :Port => port
|
19
|
+
# handler ::Rack::Handler::Thin, :Host => host, :Port => port
|
20
|
+
|
21
|
+
application do
|
22
|
+
use ::Rack::ShowExceptions
|
23
|
+
use ::Rack::Static, :urls => [ '/css', '/javascript' ], :root => 'public'
|
24
|
+
run ::Waves::Dispatchers::Default.new
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,23 @@
|
|
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
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Blog
|
2
|
+
|
3
|
+
module Configurations
|
4
|
+
|
5
|
+
class Production < Default
|
6
|
+
|
7
|
+
database :host => 'localhost', :adapter => 'mysql', :database => 'blog',
|
8
|
+
:user => 'root', :password => ''
|
9
|
+
|
10
|
+
reloadable []
|
11
|
+
|
12
|
+
log :level => :error,
|
13
|
+
:output => ( :log / "waves.#{$$}" ),
|
14
|
+
:rotation => :weekly
|
15
|
+
|
16
|
+
host '0.0.0.0'
|
17
|
+
|
18
|
+
port 80
|
19
|
+
|
20
|
+
handler ::Rack::Handler::Mongrel, :Host => host, :Port => port
|
21
|
+
# handler ::Rack::Handler::WEBrick, :BindAddress => host, :Port => port
|
22
|
+
# handler ::Rack::Handler::Thin, :Host => host, :Port => port
|
23
|
+
|
24
|
+
application do
|
25
|
+
run ::Waves::Dispatchers::Default.new
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
File without changes
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Blog
|
2
|
+
|
3
|
+
module Models
|
4
|
+
|
5
|
+
class Entry < Default
|
6
|
+
one_to_many :comments, :class => Blog::Models::Comment, :key => :entry_id, :order => :updated_on
|
7
|
+
before_save do
|
8
|
+
set_with_params(:updated_on => Time.now) if columns.include? :updated_on
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
$(document).ready( function() {
|
2
|
+
$('a.delete').click( function() {
|
3
|
+
if ( confirm("Are you sure?") ) {
|
4
|
+
var href = $(this).attr('href');
|
5
|
+
$.ajax({ type: 'delete', url: href,
|
6
|
+
success: function() { window.location = '/entries'; }
|
7
|
+
});
|
8
|
+
}
|
9
|
+
// this isn't really a link ...
|
10
|
+
// so tell the browser we've handled it
|
11
|
+
return false;
|
12
|
+
});
|
13
|
+
});
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class AddComments < Sequel::Migration
|
2
|
+
|
3
|
+
def up
|
4
|
+
create_table :comments do
|
5
|
+
primary_key :id
|
6
|
+
foreign_key :entry_id, :table => :entries
|
7
|
+
text :name
|
8
|
+
text :email
|
9
|
+
text :content
|
10
|
+
timestamp :updated_on
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def down
|
15
|
+
drop_table :comments
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|