GitHub Sale: sign up for any paid plan this week and pay nothing until January 1, 2009!  [ hide ]

public
Rubygem
Description: Resource-oriented open source Ruby framework for Web apps.
Homepage: http://rubywaves.com/
Clone URL: git://github.com/dyoder/waves.git
More changed related to layer refactoring.
dyoder (author)
Sun Sep 28 11:35:47 -0700 2008
commit  a601a59cbd8c7e45ba040daf008a4aeca259614c
tree    612a9ec95bc46f51b65b5b82ae6aaaab9f6e8c9f
parent  1e9dce857af0f38f886d24c0f43374feba9da3c0
...
3
4
5
 
 
 
6
7
8
9
...
3
4
5
6
7
8
9
10
11
12
0
@@ -3,6 +3,9 @@ module Waves
0
     module Basic
0
       attr_reader :request
0
       include Waves::ResponseMixin
0
+
0
+ def app ; Waves.main ; end
0
+
0
     end
0
   end
0
 end
0
\ No newline at end of file
...
29
30
31
32
 
33
34
35
...
29
30
31
 
32
33
34
35
0
@@ -29,7 +29,7 @@ module Waves
0
       #
0
       def layout( name, assigns = {}, &block )
0
         assigns[ :layout_content ] = capture(&block)
0
- self << app::Views[:layouts].process( request ) do
0
+ self << Waves.main::Views[:layouts].process( request ) do
0
           send( name, assigns )
0
         end
0
       end
...
18
19
20
21
22
23
24
 
25
26
27
28
29
30
31
 
32
33
34
...
18
19
20
 
 
21
 
22
23
24
25
26
27
28
 
29
30
31
32
0
@@ -18,17 +18,15 @@ module Waves
0
     #
0
     module Model
0
       
0
- include ResponseMixin
0
-
0
       def model( name )
0
- models[ name ]
0
+ Waves.main::Models[ name ][ domain ]
0
       end
0
       
0
       # Just like model.all. Returns all the instances of that model.
0
       def all( model )
0
         model( model ).all( domain )
0
       end
0
-
0
+
0
       # Finds a specific instance using the name field
0
       def find( model, name )
0
         model( model )[ :name => name ] rescue nil
...
15
16
17
18
 
19
20
21
...
15
16
17
 
18
19
20
21
0
@@ -15,7 +15,7 @@ module Waves
0
       
0
       # Invokes the view for the given model, passing the assigns as instance variables.
0
       def view( model, view, assigns = {} )
0
- self << app::Views[ model ].process( request ) do
0
+ self << Waves.main::Views[ model ].process( request ) do
0
           send( view, assigns )
0
         end
0
       end
...
14
15
16
17
 
 
 
 
 
 
18
19
20
21
22
 
23
24
25
...
14
15
16
 
17
18
19
20
21
22
23
24
25
26
 
27
28
29
30
0
@@ -14,12 +14,17 @@ module Waves
0
             include Waves::Layers::Inflect::English::StringMethods
0
           end
0
           
0
- Waves::Resources::Mixin.class_eval do
0
+ Waves::Resources::Mixin::ClassMethods.module_eval do
0
+ def singular ; basename.snake_case.singular ; end
0
+ def plural ; basename.snake_case.plural ; end
0
+ end
0
+
0
+ Waves::Resources::Mixin.module_eval do
0
             def singular ; self.class.singular ; end
0
             def plural ; self.class.plural ; end
0
           end
0
           
0
- Waves::Resources::Paths.class_eval do
0
+ Waves::Resources::Paths.module_eval do
0
             def resource ; self.class.resource.singular ; end
0
             def resources ; self.class.resource.plural ; end
0
 
...
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
 
 
 
 
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
 
 
 
 
 
 
 
 
 
 
48
49
50
51
 
 
52
53
54
 
 
 
 
 
 
55
56
57
 
 
 
 
58
59
60
61
 
 
 
 
 
 
 
62
63
64
65
66
67
68
 
 
69
70
 
 
 
 
 
 
 
 
 
 
 
 
 
71
 
 
 
72
73
74
...
8
9
10
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
12
13
14
15
16
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
18
19
20
21
22
23
24
25
26
27
28
 
 
 
29
30
31
 
 
32
33
34
35
36
37
38
 
 
39
40
41
42
43
 
 
 
44
45
46
47
48
49
50
51
 
 
 
 
 
 
52
53
54
 
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
0
@@ -8,67 +8,67 @@ module Waves
0
       
0
       def self.included( target )
0
         target.module_eval do
0
-
0
- include ResponseMixin
0
- include Functor::Method
0
-
0
- # TODO: why the fuck is @resource nil here?
0
- def self.paths
0
- unless @paths
0
- resource = self
0
- @paths = Class.new( superclass.respond_to?( :paths ) ? superclass.paths : Waves::Resources::Paths ) do
0
- @resource = resource
0
- def self.resource ; @resource ; end
0
- end
0
- else
0
- @paths
0
- end
0
+ include ResponseMixin, Functor::Method
0
+ extend ClassMethods
0
+ before {} ; after {} ; always {}
0
+ %w( post get put delete ).each do | method |
0
+ on( method ) { not_found }
0
           end
0
- def self.with( options ) ; @options = options ; yield ; @options = nil ; end
0
- def self.on( method, path = true, options = nil, &block )
0
- if path.is_a? Hash
0
- generator = path.keys.first
0
- path = path.values.first
0
- end
0
- if options
0
- options[ :path ] = path
0
- else
0
- options = { :path => path }
0
- end
0
- options = @options.merge( options ) if @options
0
- matcher = Waves::Matchers::Resource.new( options )
0
- methods = case method
0
- when nil then nil
0
- when true then [ :post, :get, :put, :delete ]
0
- when Array then method
0
- else [ method ]
0
- end
0
- methods.each do | method |
0
- functor_with_self( method, matcher, &block )
0
+ end
0
+ end
0
+
0
+ module ClassMethods
0
+
0
+ def paths
0
+ unless @paths
0
+ resource = self
0
+ @paths = Class.new( superclass.respond_to?( :paths ) ? superclass.paths : Waves::Resources::Paths ) do
0
+ @resource = resource
0
+ def self.resource ; @resource ; end
0
             end
0
- paths.module_eval {
0
- define_method( generator ) { | *args | generate( path, args ) }
0
- } if generator
0
+ else
0
+ @paths
0
           end
0
- def self.before( path = nil, options = {}, &block )
0
- on( :before, path, options, &block )
0
+ end
0
+ def with( options ) ; @options = options ; yield ; @options = nil ; end
0
+ def on( method, path = true, options = nil, &block )
0
+ if path.is_a? Hash
0
+ generator = path.keys.first
0
+ path = path.values.first
0
           end
0
- def self.after( path = nil, options = {}, &block )
0
- on( :after, path, options, &block )
0
+ if options
0
+ options[ :path ] = path
0
+ else
0
+ options = { :path => path }
0
           end
0
- def self.wrap( path = nil, options = {}, &block )
0
- before( path, options, &block )
0
- after( path, options, &block )
0
+ options = @options.merge( options ) if @options
0
+ matcher = Waves::Matchers::Resource.new( options )
0
+ methods = case method
0
+ when nil then nil
0
+ when true then [ :post, :get, :put, :delete ]
0
+ when Array then method
0
+ else [ method ]
0
           end
0
- def self.handler( exception, &block ) ; functor( :handler, exception, &block ) ; end
0
- def self.always( &block ) ; define_method( :always, &block ) ; end
0
-
0
- before {} ; after {} ; always {}
0
- %w( post get put delete ).each do | method |
0
- on( method ) { not_found }
0
+ methods.each do | method |
0
+ functor_with_self( method, matcher, &block )
0
           end
0
-
0
+ paths.module_eval {
0
+ define_method( generator ) { | *args | generate( path, args ) }
0
+ } if generator
0
+ end
0
+ def before( path = nil, options = {}, &block )
0
+ on( :before, path, options, &block )
0
+ end
0
+ def after( path = nil, options = {}, &block )
0
+ on( :after, path, options, &block )
0
+ end
0
+ def wrap( path = nil, options = {}, &block )
0
+ before( path, options, &block )
0
+ after( path, options, &block )
0
         end
0
+ def handler( exception, &block ) ; functor( :handler, exception, &block ) ; end
0
+ def always( &block ) ; define_method( :always, &block ) ; end
0
+
0
       end
0
       
0
       # Resources are initialized with a Waves::Request

Comments

    No one has commented yet.