Capcode 0.8.9 → 0.9.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 (92) hide show
  1. data/README.rdoc +13 -1
  2. data/doc/rdoc/classes/Capcode.html +410 -545
  3. data/doc/rdoc/classes/Capcode/Configuration.html +263 -0
  4. data/doc/rdoc/classes/Capcode/Helpers.html +154 -345
  5. data/doc/rdoc/classes/Capcode/Helpers/Authorization.html +6 -6
  6. data/doc/rdoc/created.rid +1 -1
  7. data/doc/rdoc/files/README_rdoc.html +42 -2
  8. data/doc/rdoc/files/lib/capcode/configuration_rb.html +1 -1
  9. data/doc/rdoc/files/lib/capcode/render/text_rb.html +1 -1
  10. data/doc/rdoc/files/lib/capcode_rb.html +14 -1
  11. data/doc/rdoc/fr_class_index.html +1 -1
  12. data/doc/rdoc/fr_file_index.html +0 -13
  13. data/doc/rdoc/fr_method_index.html +12 -14
  14. data/examples/render-image.rb +1 -1
  15. data/examples/render-text.rb +4 -1
  16. data/examples/rest.rb +1 -0
  17. data/examples/sample.rb +5 -3
  18. data/examples/upload.rb +1 -0
  19. data/lib/capcode.rb +45 -61
  20. data/lib/capcode/configuration.rb +69 -34
  21. data/lib/capcode/render/text.rb +1 -1
  22. data/lib/capcode/version.rb +1 -1
  23. metadata +31 -106
  24. data/doc/rdoc/classes/Capcode/Mab.html +0 -118
  25. data/doc/rdoc/files/lib/capcode/render/binary_rb.html +0 -101
  26. data/doc/rdoc/files/lib/capcode/render/email_rb.html +0 -108
  27. data/doc/rdoc/files/lib/capcode/render/erb_rb.html +0 -108
  28. data/doc/rdoc/files/lib/capcode/render/haml_rb.html +0 -108
  29. data/doc/rdoc/files/lib/capcode/render/json_rb.html +0 -108
  30. data/doc/rdoc/files/lib/capcode/render/markaby_rb.html +0 -108
  31. data/doc/rdoc/files/lib/capcode/render/mustache_rb.html +0 -108
  32. data/doc/rdoc/files/lib/capcode/render/none_rb.html +0 -101
  33. data/doc/rdoc/files/lib/capcode/render/redirect_rb.html +0 -101
  34. data/doc/rdoc/files/lib/capcode/render/sass_rb.html +0 -108
  35. data/doc/rdoc/files/lib/capcode/render/static_rb.html +0 -101
  36. data/doc/rdoc/files/lib/capcode/render/webdav_rb.html +0 -124
  37. data/doc/rdoc/files/lib/capcode/render/xml_rb.html +0 -101
  38. data/examples/auth-webdav.rb +0 -29
  39. data/examples/blog-ar.rb +0 -81
  40. data/examples/blog-ar.yml +0 -3
  41. data/examples/blog-couchdb-run.rb +0 -10
  42. data/examples/blog-couchdb.rb +0 -314
  43. data/examples/blog-couchdb.ru +0 -12
  44. data/examples/blog-couchdb.yml +0 -2
  45. data/examples/blog-dm.rb +0 -63
  46. data/examples/blog-dm.yml +0 -2
  47. data/examples/blog-mongodb-run.rb +0 -10
  48. data/examples/blog-mongodb.rb +0 -304
  49. data/examples/blog-mongodb.yml +0 -3
  50. data/examples/blog-sq.rb +0 -82
  51. data/examples/blog-sq.yml +0 -3
  52. data/examples/mail/mail_html.rhtml +0 -1
  53. data/examples/mail/mail_text.rhtml +0 -1
  54. data/examples/mail/ok.rhtml +0 -1
  55. data/examples/mail/rubyfr.png +0 -0
  56. data/examples/mustache/with_class.mustache +0 -8
  57. data/examples/mustache/without_class.mustache +0 -1
  58. data/examples/render-binary.rb +0 -46
  59. data/examples/render-email.rb +0 -68
  60. data/examples/render-erb.rb +0 -19
  61. data/examples/render-haml_sass.rb +0 -26
  62. data/examples/render-json.rb +0 -13
  63. data/examples/render-markaby.rb +0 -29
  64. data/examples/render-mustache.rb +0 -30
  65. data/examples/render-redirect.rb +0 -19
  66. data/examples/render-static.rb +0 -21
  67. data/examples/render-static.ru +0 -19
  68. data/examples/render-use.rb +0 -32
  69. data/examples/render-webdav.rb +0 -26
  70. data/examples/render-xml.rb +0 -24
  71. data/examples/rss.rb +0 -48
  72. data/examples/static/coderay.css +0 -131
  73. data/examples/static/index.html +0 -24
  74. data/examples/test/index.html +0 -1
  75. data/lib/capcode/base/ar.rb +0 -54
  76. data/lib/capcode/base/couchdb.rb +0 -23
  77. data/lib/capcode/base/dm.rb +0 -33
  78. data/lib/capcode/base/mongodb.rb +0 -27
  79. data/lib/capcode/base/sq.rb +0 -58
  80. data/lib/capcode/render/binary.rb +0 -8
  81. data/lib/capcode/render/email.rb +0 -73
  82. data/lib/capcode/render/erb.rb +0 -59
  83. data/lib/capcode/render/haml.rb +0 -60
  84. data/lib/capcode/render/json.rb +0 -14
  85. data/lib/capcode/render/markaby.rb +0 -38
  86. data/lib/capcode/render/mustache.rb +0 -37
  87. data/lib/capcode/render/none.rb +0 -7
  88. data/lib/capcode/render/redirect.rb +0 -7
  89. data/lib/capcode/render/sass.rb +0 -48
  90. data/lib/capcode/render/static.rb +0 -14
  91. data/lib/capcode/render/webdav.rb +0 -49
  92. data/lib/capcode/render/xml.rb +0 -119
@@ -1,26 +0,0 @@
1
- $:.unshift( "../lib" )
2
- require 'capcode'
3
- require 'capcode/render/webdav'
4
-
5
- module Capcode
6
-
7
- # Render file from /Users/greg/temp !!!
8
- class WebDav < Route '/temp'
9
- def get
10
- render :webdav => "/Users/greg"
11
- end
12
-
13
- def method_missing(id, *a, &b)
14
- get
15
- end
16
- end
17
-
18
- class Index < Route '/'
19
- def get
20
- render "WebDav server acces : <a href='#{URL(Capcode::WebDav)}'>#{URL(Capcode::WebDav)}</a>"
21
- end
22
- end
23
-
24
- end
25
-
26
- Capcode.run( )
@@ -1,24 +0,0 @@
1
- $:.unshift( "../lib" )
2
- require 'capcode'
3
- require 'capcode/render/xml'
4
-
5
- module Capcode
6
- class Index < Route '/'
7
- def get
8
- render :xml => :index
9
- end
10
- end
11
- end
12
-
13
- module Capcode::Views
14
- def index
15
- xml? :version => '1.0'
16
- html do
17
- body do
18
- h1 "Hello XML !"
19
- end
20
- end
21
- end
22
- end
23
-
24
- Capcode.run( )
@@ -1,48 +0,0 @@
1
- $:.unshift( "../lib" )
2
- require 'rubygems'
3
- require 'capcode'
4
- require 'capcode/render/xml'
5
-
6
- ## !! THIS IS JUSTE FOR THIS EXAMPLE !!
7
- class Hash
8
- def method_missing( id, *a )
9
- self[id.id2name.to_sym]
10
- end
11
- end
12
-
13
- module Capcode
14
- class RSS < Route "/rss"
15
- def get
16
- @posts = [
17
- { :title => "Welcome", :body => "This is a RSS example for Capcode!", :iid => 1, :created_at => Time.now() },
18
- { :title => "Just For Fun", :body => "See more examples on the Capcode Website...", :iid => 2, :created_at => Time.now() },
19
- ]
20
- render :xml => :rss_view
21
- end
22
- end
23
- end
24
-
25
- module Capcode::Views
26
- def rss_view
27
- xml? :version => '1.0'
28
- rss :version => "2.0" do
29
- channel do
30
- title "Capcode News"
31
- description "Capcode Framework."
32
- link "http://example.com/"
33
-
34
- @posts.each do |post|
35
- item do
36
- title post.title
37
- link "http://example.com/posts/#{post.iid}"
38
- description post.body
39
- pubDate Time.parse(post.created_at.to_s).rfc822()
40
- guid "http://example.com/posts/#{post.iid}"
41
- end
42
- end
43
- end
44
- end
45
- end
46
- end
47
-
48
- Capcode.run()
@@ -1,131 +0,0 @@
1
- .CodeRay {
2
- background-color: #f8f8f8;
3
- border: 1px solid silver;
4
- font-family: 'Courier New', 'Terminal', monospace;
5
- color: #000;
6
- }
7
- .CodeRay pre { margin: 0px }
8
-
9
- div.CodeRay { }
10
-
11
- span.CodeRay { white-space: pre; border: 0px; padding: 2px }
12
-
13
- table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px }
14
- table.CodeRay td { padding: 2px 4px; vertical-align: top }
15
-
16
- .CodeRay .line_numbers, .CodeRay .no {
17
- background-color: #def;
18
- color: gray;
19
- text-align: right;
20
- }
21
- .CodeRay .line_numbers tt { font-weight: bold }
22
- .CodeRay .line_numbers .highlighted { color: red }
23
- .CodeRay .no { padding: 0px 4px }
24
- .CodeRay .code { width: 100% }
25
-
26
- ol.CodeRay { font-size: 10pt }
27
- ol.CodeRay li { white-space: pre }
28
-
29
- .CodeRay .code pre { overflow: auto }
30
-
31
- .CodeRay .debug { color:white ! important; background:blue ! important; }
32
-
33
- .CodeRay .af { color:#00C }
34
- .CodeRay .an { color:#007 }
35
- .CodeRay .at { color:#f08 }
36
- .CodeRay .av { color:#700 }
37
- .CodeRay .aw { color:#C00 }
38
- .CodeRay .bi { color:#509; font-weight:bold }
39
- .CodeRay .c { color:#888; }
40
-
41
- .CodeRay .ch { color:#04D }
42
- .CodeRay .ch .k { color:#04D }
43
- .CodeRay .ch .dl { color:#039 }
44
-
45
- .CodeRay .cl { color:#B06; font-weight:bold }
46
- .CodeRay .cm { color:#A08; font-weight:bold }
47
- .CodeRay .co { color:#036; font-weight:bold }
48
- .CodeRay .cr { color:#0A0 }
49
- .CodeRay .cv { color:#369 }
50
- .CodeRay .de { color:#B0B; }
51
- .CodeRay .df { color:#099; font-weight:bold }
52
- .CodeRay .di { color:#088; font-weight:bold }
53
- .CodeRay .dl { color:black }
54
- .CodeRay .do { color:#970 }
55
- .CodeRay .dt { color:#34b }
56
- .CodeRay .ds { color:#D42; font-weight:bold }
57
- .CodeRay .e { color:#666; font-weight:bold }
58
- .CodeRay .en { color:#800; font-weight:bold }
59
- .CodeRay .er { color:#F00; background-color:#FAA }
60
- .CodeRay .ex { color:#F00; font-weight:bold }
61
- .CodeRay .fl { color:#60E; font-weight:bold }
62
- .CodeRay .fu { color:#06B; font-weight:bold }
63
- .CodeRay .gv { color:#d70; font-weight:bold }
64
- .CodeRay .hx { color:#058; font-weight:bold }
65
- .CodeRay .i { color:#00D; font-weight:bold }
66
- .CodeRay .ic { color:#B44; font-weight:bold }
67
-
68
- .CodeRay .il { background: #ddd; color: black }
69
- .CodeRay .il .il { background: #ccc }
70
- .CodeRay .il .il .il { background: #bbb }
71
- .CodeRay .il .idl { background: #ddd; font-weight: bold; color: #666 }
72
- .CodeRay .idl { background-color: #bbb; font-weight: bold; color: #666; }
73
-
74
- .CodeRay .im { color:#f00; }
75
- .CodeRay .in { color:#B2B; font-weight:bold }
76
- .CodeRay .iv { color:#33B }
77
- .CodeRay .la { color:#970; font-weight:bold }
78
- .CodeRay .lv { color:#963 }
79
- .CodeRay .oc { color:#40E; font-weight:bold }
80
- .CodeRay .of { color:#000; font-weight:bold }
81
- .CodeRay .op { }
82
- .CodeRay .pc { color:#038; font-weight:bold }
83
- .CodeRay .pd { color:#369; font-weight:bold }
84
- .CodeRay .pp { color:#579; }
85
- .CodeRay .ps { color:#00C; font-weight: bold; }
86
- .CodeRay .pt { color:#349; font-weight:bold }
87
- .CodeRay .r, .kw { color:#080; font-weight:bold }
88
-
89
- .CodeRay .ke { color: #808; }
90
- .CodeRay .ke .dl { color: #606; }
91
- .CodeRay .ke .ch { color: #80f; }
92
- .CodeRay .vl { color: #088; }
93
-
94
- .CodeRay .rx { background-color:#fff0ff }
95
- .CodeRay .rx .k { color:#808 }
96
- .CodeRay .rx .dl { color:#404 }
97
- .CodeRay .rx .mod { color:#C2C }
98
- .CodeRay .rx .fu { color:#404; font-weight: bold }
99
-
100
- .CodeRay .s { background-color:#fff0f0; color: #D20; }
101
- .CodeRay .s .s { background-color:#ffe0e0 }
102
- .CodeRay .s .s .s { background-color:#ffd0d0 }
103
- .CodeRay .s .k { }
104
- .CodeRay .s .ch { color: #b0b; }
105
- .CodeRay .s .dl { color: #710; }
106
-
107
- .CodeRay .sh { background-color:#f0fff0; color:#2B2 }
108
- .CodeRay .sh .k { }
109
- .CodeRay .sh .dl { color:#161 }
110
-
111
- .CodeRay .sy { color:#A60 }
112
- .CodeRay .sy .k { color:#A60 }
113
- .CodeRay .sy .dl { color:#630 }
114
-
115
- .CodeRay .ta { color:#070 }
116
- .CodeRay .tf { color:#070; font-weight:bold }
117
- .CodeRay .ts { color:#D70; font-weight:bold }
118
- .CodeRay .ty { color:#339; font-weight:bold }
119
- .CodeRay .v { color:#036 }
120
- .CodeRay .xt { color:#444 }
121
-
122
- .CodeRay .ins { background: #afa; }
123
- .CodeRay .del { background: #faa; }
124
- .CodeRay .chg { color: #aaf; background: #007; }
125
- .CodeRay .head { color: #f8f; background: #505 }
126
-
127
- .CodeRay .ins .ins { color: #080; font-weight:bold }
128
- .CodeRay .del .del { color: #800; font-weight:bold }
129
- .CodeRay .chg .chg { color: #66f; }
130
- .CodeRay .head .head { color: #f4f; }
131
-
@@ -1,24 +0,0 @@
1
- <html>
2
- <head>
3
- <link href="/style" media="screen" rel="Stylesheet" type="text/css" />
4
- </head>
5
- <body>
6
- <h1>Capcode hello !</h1>
7
-
8
- <p>
9
- Code :
10
- <pre>:::ruby
11
- # In an object instance variable (denoted with '@'), remember a block.
12
- def remember(&a_block)
13
- @block = a_block
14
- end
15
-
16
- # Invoke the above method, giving it a block which takes a name.
17
- remember {|name| puts "Hello, #{name}!"}
18
-
19
- # When the time is right (for the object) -- call the closure!
20
- @block.call("Jon")
21
- # => "Hello, Jon!"</pre>
22
- </p>
23
- </body>
24
- </html>
@@ -1 +0,0 @@
1
- welcome in test directory
@@ -1,54 +0,0 @@
1
- begin
2
- require 'active_record'
3
- rescue LoadError => e
4
- raise MissingLibrary, "ActiveRecord could not be loaded (is it installed?): #{e.message}"
5
- end
6
-
7
- module Capcode
8
- # This module contains the resources needed in a model
9
- module Resource
10
- end
11
-
12
- # This class allow you to define models
13
- Base = ActiveRecord::Base
14
-
15
- # Schema info
16
- class SchemaInfo < Base
17
- end
18
-
19
- class << self
20
- # This class allow you to define models
21
- def Model( n )
22
- @final = [n, @final.to_f].max
23
- m = (@migrations ||= [])
24
- Class.new(ActiveRecord::Migration) do
25
- meta_def(:version) { n }
26
- meta_def(:inherited) { |k| m << k }
27
- end
28
- end
29
-
30
- def db_connect( dbfile, logfile ) #:nodoc:
31
- dbconfig = YAML::load(File.open(dbfile)).keys_to_sym
32
- version = dbconfig.delete(:schema_version) { |_| @final }
33
-
34
- ActiveRecord::Base.establish_connection(dbconfig)
35
- ActiveRecord::Base.logger = Logger.new(logfile)
36
-
37
- if @migrations
38
- unless SchemaInfo.table_exists?
39
- ActiveRecord::Schema.define do
40
- create_table SchemaInfo.table_name do |t|
41
- t.column :version, :float
42
- end
43
- end
44
- end
45
- si = SchemaInfo.find(:first) || SchemaInfo.new(:version => 0)
46
- @migrations.each do |k|
47
- k.migrate(:up) if si.version < k.version and k.version <= version
48
- k.migrate(:down) if si.version >= k.version and k.version > version
49
- end
50
- si.update_attributes(:version => version)
51
- end
52
- end
53
- end
54
- end
@@ -1,23 +0,0 @@
1
- require 'rubygems'
2
- begin
3
- require 'couch_foo'
4
- rescue LoadError => e
5
- raise MissingLibrary, "CouchFoo could not be loaded (is it installed?): #{e.message}"
6
- end
7
- require 'yaml'
8
- require 'logger'
9
-
10
- module Capcode
11
- module Resource
12
- end
13
-
14
- Base = CouchFoo::Base
15
-
16
- class << self
17
- def db_connect( dbfile, logfile )
18
- dbconfig = YAML::load(File.open(dbfile)).keys_to_sym
19
- Base.set_database(dbconfig)
20
- Base.logger = Logger.new(logfile)
21
- end
22
- end
23
- end
@@ -1,33 +0,0 @@
1
- require 'rubygems'
2
- begin
3
- require 'dm-core'
4
- rescue LoadError => e
5
- raise MissingLibrary, "DataMapper could not be loaded (is it installed?): #{e.message}"
6
- end
7
- require 'yaml'
8
- require 'logger'
9
-
10
- module Capcode
11
- Resource = DataMapper::Resource
12
-
13
- # use DataMapper
14
- #
15
- # class Story < Capcode::Base
16
- # include Capcode::Base
17
- # property :id, Integer, :serial => true
18
- # property :title, String
19
- # property :body, String
20
- # property :date, String
21
- # end
22
- class Base
23
- end
24
-
25
- class << self
26
- def db_connect( dbfile, logfile ) #:nodoc:
27
- dbconfig = YAML::load(File.open(dbfile)).keys_to_sym
28
- DataMapper.setup(:default, dbconfig)
29
- DataMapper::Logger.new(logfile, :debug)
30
- DataMapper.auto_upgrade!
31
- end
32
- end
33
- end
@@ -1,27 +0,0 @@
1
- require 'rubygems'
2
- begin
3
- require 'mongoid'
4
- rescue LoadError => e
5
- raise MissingLibrary, "Mongoid could not be loaded (is it installed?): #{e.message}"
6
- end
7
- require 'yaml'
8
- require 'logger'
9
-
10
- module Capcode
11
- module Resource
12
- end
13
-
14
- Base = Mongoid::Document
15
-
16
- class << self
17
- def db_connect( dbfile, logfile )
18
- dbconfig = YAML::load(File.open(dbfile)).keys_to_sym
19
-
20
- connection = Mongo::Connection.new(dbconfig[:host], dbconfig[:port])
21
- Mongoid.database = connection.db(dbconfig[:database])
22
- if dbconfig[:username]
23
- Mongoid.database.authenticate(dbconfig[:username], dbconfig[:password])
24
- end
25
- end
26
- end
27
- end
@@ -1,58 +0,0 @@
1
- begin
2
- require 'sequel'
3
- Sequel.extension :migration
4
- Sequel.extension :inflector
5
- rescue LoadError => e
6
- raise LoadError, "Sequel could not be loaded (is it installed?): #{e.message}"
7
- end
8
-
9
- module Capcode
10
- # This module contains the resources needed in a model
11
- module Resource
12
- end
13
-
14
- # This class allow you to define models
15
- class Base
16
- def self.method_missing( name, *args, &block )
17
- if block_given?
18
- Capcode::db[self.to_s.tableize.to_sym].__send__(name.to_sym, *args, &block)
19
- else
20
- Capcode::db[self.to_s.tableize.to_sym].__send__(name.to_sym, *args)
21
- end
22
- end
23
- end
24
-
25
- class << self
26
- # This class allow you to define models
27
- def Model( n )
28
- @final = [n, @final.to_f].max
29
- m = (@migrations ||= [])
30
- Class.new(Sequel::Migration) do
31
- meta_def(:version) { n }
32
- meta_def(:inherited) { |k| m << k }
33
- end
34
- end
35
-
36
- def db
37
- @db ||= Sequel.connect(@dbconfig)
38
- end
39
-
40
- def db_connect( dbfile, logfile )
41
- @dbconfig = YAML::load(File.open(dbfile)).keys_to_sym
42
- @dbconfig[:adapter] = "sqlite" if @dbconfig[:adapter] == "sqlite3"
43
- version = dbconfig.delete(:schema_version) { |_| @final }
44
-
45
- if @migrations
46
- Capcode::db.create_table? :schema_table do
47
- Float :version
48
- end
49
- si = Capcode::db[:schema_table].first || (Capcode::db[:schema_table].insert(:version => 0); {:version => 0})
50
- @migrations.each do |k|
51
- k.apply(Capcode::db, :up) if si[:version] < k.version and k.version <= version
52
- k.apply(Capcode::db, :down) if si[:version] >= k.version and k.version > version
53
- end
54
- Capcode::db[:schema_table].where(:version => si[:version]).update(:version => version)
55
- end
56
- end
57
- end
58
- end