Capcode 0.8.7 → 0.8.8
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +10 -1
- data/doc/rdoc/classes/Capcode.html +410 -390
- data/doc/rdoc/classes/Capcode/Helpers.html +146 -126
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/README_rdoc.html +26 -2
- data/doc/rdoc/files/lib/capcode/render/haml_rb.html +1 -1
- data/doc/rdoc/files/lib/capcode/render/json_rb.html +1 -1
- data/doc/rdoc/files/lib/capcode/render/markaby_rb.html +1 -1
- data/doc/rdoc/files/lib/capcode/render/sass_rb.html +1 -1
- data/doc/rdoc/files/lib/capcode/render/webdav_rb.html +1 -1
- data/doc/rdoc/files/lib/capcode_rb.html +1 -1
- data/doc/rdoc/fr_file_index.html +5 -0
- data/examples/blog-ar.rb +81 -0
- data/examples/blog-ar.yml +3 -0
- data/examples/blog-sq.rb +82 -0
- data/examples/blog-sq.yml +3 -0
- data/examples/mail/mail_html.rhtml +1 -0
- data/examples/mail/mail_text.rhtml +1 -0
- data/examples/mail/ok.rhtml +1 -0
- data/examples/mail/rubyfr.png +0 -0
- data/examples/mustache/with_class.mustache +8 -0
- data/examples/mustache/without_class.mustache +1 -0
- data/examples/render-binary.rb +46 -0
- data/examples/render-email.rb +68 -0
- data/examples/render-erb.rb +2 -0
- data/examples/render-mustache.rb +30 -0
- data/examples/render-redirect.rb +19 -0
- data/lib/capcode.rb +3 -0
- data/lib/capcode/base/ar.rb +54 -0
- data/lib/capcode/base/couchdb.rb +5 -1
- data/lib/capcode/base/dm.rb +5 -1
- data/lib/capcode/base/sq.rb +58 -0
- data/lib/capcode/core_ext.rb +1 -1
- data/lib/capcode/render/binary.rb +8 -0
- data/lib/capcode/render/email.rb +73 -0
- data/lib/capcode/render/haml.rb +5 -1
- data/lib/capcode/render/json.rb +5 -1
- data/lib/capcode/render/markaby.rb +5 -1
- data/lib/capcode/render/mustache.rb +37 -0
- data/lib/capcode/render/none.rb +7 -0
- data/lib/capcode/render/redirect.rb +7 -0
- data/lib/capcode/render/sass.rb +5 -1
- data/lib/capcode/render/webdav.rb +11 -7
- data/lib/capcode/version.rb +1 -1
- metadata +30 -3
- data/examples/my_blog.db +0 -0
data/lib/capcode/base/couchdb.rb
CHANGED
data/lib/capcode/base/dm.rb
CHANGED
@@ -0,0 +1,58 @@
|
|
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
|
data/lib/capcode/core_ext.rb
CHANGED
@@ -0,0 +1,73 @@
|
|
1
|
+
begin
|
2
|
+
require 'mail'
|
3
|
+
rescue LoadError => e
|
4
|
+
raise MissingLibrary, "mail could not be loaded (is it installed?): #{e.message}"
|
5
|
+
end
|
6
|
+
|
7
|
+
module Capcode
|
8
|
+
module Helpers
|
9
|
+
def render_email( f, _ ) #:nodoc:
|
10
|
+
if @smtp.nil?
|
11
|
+
@smtp = { :server => "127.0.0.1", :port => 25 }.merge(Capcode.get( :smtp ) || {})
|
12
|
+
end
|
13
|
+
|
14
|
+
# Set SMTP info
|
15
|
+
conf = Mail::Configuration.instance.defaults
|
16
|
+
conf.smtp @smtp[:server], @smtp[:port]
|
17
|
+
|
18
|
+
# Create mail
|
19
|
+
mail = Mail.new()
|
20
|
+
|
21
|
+
# Mail Header
|
22
|
+
mail.from = f[:from]
|
23
|
+
mail.subject = f[:subject] if f.has_key?(:subject)
|
24
|
+
[:to, :cc, :bcc].each do |t|
|
25
|
+
next unless f.has_key?(t) and not f[t].nil?
|
26
|
+
if f[t].class == Array
|
27
|
+
mail[t] = f[t]
|
28
|
+
else
|
29
|
+
mail[t] = f[t].to_s.split( ',' ).map { |x| x.strip }
|
30
|
+
end
|
31
|
+
end
|
32
|
+
mail.message_id = f[:message_id] if f.has_key?(:message_id)
|
33
|
+
|
34
|
+
# Mail Body
|
35
|
+
if f[:body].class == String
|
36
|
+
mail.body = f[:body]
|
37
|
+
elsif f[:body].class == Hash
|
38
|
+
if f[:body].has_key?(:html)
|
39
|
+
mail.html_part = Mail::Part.new
|
40
|
+
mail.html_part.content_type = f[:body][:html].delete(:content_type) { |_| 'text/html' }
|
41
|
+
mail.html_part.body = render( f[:body][:html] )
|
42
|
+
end
|
43
|
+
if f[:body].has_key?(:text)
|
44
|
+
mail.text_part = Mail::Part.new
|
45
|
+
mail.text_part.body = render( f[:body][:text] )
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
# Mail Attachment
|
50
|
+
if f.has_key?(:file)
|
51
|
+
f[:file] = [f[:file]] unless f[:file].class == Array
|
52
|
+
f[:file].each do |file|
|
53
|
+
data = {}
|
54
|
+
if file.class == Hash
|
55
|
+
data[:filename] = file.delete(:filename) if file.has_key?(:filename)
|
56
|
+
data[:mime_type] = file.delete(:mime_type) if file.has_key?(:mime_type)
|
57
|
+
data[:data] = self.send(file[:data])
|
58
|
+
else
|
59
|
+
data = { :data => render( :static => file, :exact_path => false ), :filename => File.basename(file) }
|
60
|
+
end
|
61
|
+
mail.add_file(data)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
begin
|
66
|
+
mail.deliver!
|
67
|
+
render f[:ok]
|
68
|
+
rescue
|
69
|
+
render f[:error]
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
data/lib/capcode/render/haml.rb
CHANGED
data/lib/capcode/render/json.rb
CHANGED
@@ -0,0 +1,37 @@
|
|
1
|
+
begin
|
2
|
+
require 'mustache'
|
3
|
+
rescue LoadError => e
|
4
|
+
raise MissingLibrary, "Mustache could not be loaded (is it installed?): #{e.message}"
|
5
|
+
end
|
6
|
+
|
7
|
+
module Capcode
|
8
|
+
module Helpers
|
9
|
+
def render_mustache( f, opts ) #:nodoc:
|
10
|
+
mustache_path = Capcode.get( :mustache ) || Capcode.static()
|
11
|
+
|
12
|
+
name = Mustache.classify(f.to_s)
|
13
|
+
|
14
|
+
if Capcode::Views.const_defined?(name)
|
15
|
+
klass = Capcode::Views.const_get(name)
|
16
|
+
else
|
17
|
+
klass = Mustache
|
18
|
+
klass.template_file = mustache_path + "/" + f.to_s + ".mustache"
|
19
|
+
end
|
20
|
+
|
21
|
+
klass.template_extension = 'mustache'
|
22
|
+
klass.template_path = mustache_path
|
23
|
+
|
24
|
+
instance = klass.new
|
25
|
+
|
26
|
+
instance_variables.each do |name|
|
27
|
+
instance.instance_variable_set(name, instance_variable_get(name))
|
28
|
+
end
|
29
|
+
|
30
|
+
opts.each do |k, v|
|
31
|
+
instance[k] = v
|
32
|
+
end
|
33
|
+
|
34
|
+
instance.to_html
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/lib/capcode/render/sass.rb
CHANGED
@@ -4,13 +4,17 @@ require 'time'
|
|
4
4
|
require 'uri'
|
5
5
|
require 'rexml/document'
|
6
6
|
require 'webrick/httputils'
|
7
|
-
|
8
|
-
|
9
|
-
require 'rack_dav/
|
10
|
-
require 'rack_dav/
|
11
|
-
require 'rack_dav/
|
12
|
-
require 'rack_dav/
|
13
|
-
require 'rack_dav/
|
7
|
+
|
8
|
+
begin
|
9
|
+
require 'rack_dav/builder_namespace'
|
10
|
+
require 'rack_dav/http_status'
|
11
|
+
require 'rack_dav/resource'
|
12
|
+
require 'rack_dav/file_resource'
|
13
|
+
require 'rack_dav/handler'
|
14
|
+
require 'rack_dav/controller'
|
15
|
+
rescue LoadError => e
|
16
|
+
raise MissingLibrary, "Rack_Dav could not be loaded (is it installed?): #{e.message}"
|
17
|
+
end
|
14
18
|
|
15
19
|
|
16
20
|
module Capcode
|
data/lib/capcode/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: Capcode
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Gr\xC3\xA9goire Lejeune"
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-11-17 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -45,10 +45,15 @@ extra_rdoc_files:
|
|
45
45
|
- lib/capcode.rb
|
46
46
|
- lib/capcode/configuration.rb
|
47
47
|
- lib/capcode/base/db.rb
|
48
|
+
- lib/capcode/render/binary.rb
|
49
|
+
- lib/capcode/render/email.rb
|
48
50
|
- lib/capcode/render/erb.rb
|
49
51
|
- lib/capcode/render/haml.rb
|
50
52
|
- lib/capcode/render/json.rb
|
51
53
|
- lib/capcode/render/markaby.rb
|
54
|
+
- lib/capcode/render/mustache.rb
|
55
|
+
- lib/capcode/render/none.rb
|
56
|
+
- lib/capcode/render/redirect.rb
|
52
57
|
- lib/capcode/render/sass.rb
|
53
58
|
- lib/capcode/render/static.rb
|
54
59
|
- lib/capcode/render/text.rb
|
@@ -89,16 +94,23 @@ files:
|
|
89
94
|
- doc/rdoc/fr_method_index.html
|
90
95
|
- doc/rdoc/index.html
|
91
96
|
- doc/rdoc/rdoc-style.css
|
97
|
+
- lib/capcode/base/ar.rb
|
92
98
|
- lib/capcode/base/couchdb.rb
|
93
99
|
- lib/capcode/base/db.rb
|
94
100
|
- lib/capcode/base/dm.rb
|
101
|
+
- lib/capcode/base/sq.rb
|
95
102
|
- lib/capcode/configuration.rb
|
96
103
|
- lib/capcode/core_ext.rb
|
97
104
|
- lib/capcode/helpers/auth.rb
|
105
|
+
- lib/capcode/render/binary.rb
|
106
|
+
- lib/capcode/render/email.rb
|
98
107
|
- lib/capcode/render/erb.rb
|
99
108
|
- lib/capcode/render/haml.rb
|
100
109
|
- lib/capcode/render/json.rb
|
101
110
|
- lib/capcode/render/markaby.rb
|
111
|
+
- lib/capcode/render/mustache.rb
|
112
|
+
- lib/capcode/render/none.rb
|
113
|
+
- lib/capcode/render/redirect.rb
|
102
114
|
- lib/capcode/render/sass.rb
|
103
115
|
- lib/capcode/render/static.rb
|
104
116
|
- lib/capcode/render/text.rb
|
@@ -109,12 +121,16 @@ files:
|
|
109
121
|
- examples/auth-basic.rb
|
110
122
|
- examples/auth-digest.rb
|
111
123
|
- examples/auth-webdav.rb
|
124
|
+
- examples/blog-ar.rb
|
125
|
+
- examples/blog-ar.yml
|
112
126
|
- examples/blog-couchdb-run.rb
|
113
127
|
- examples/blog-couchdb.rb
|
114
128
|
- examples/blog-couchdb.ru
|
115
129
|
- examples/blog-couchdb.yml
|
116
130
|
- examples/blog-dm.rb
|
117
131
|
- examples/blog-dm.yml
|
132
|
+
- examples/blog-sq.rb
|
133
|
+
- examples/blog-sq.yml
|
118
134
|
- examples/erb/cf.rhtml
|
119
135
|
- examples/erb/cf_layout.rhtml
|
120
136
|
- examples/erb/layout.rhtml
|
@@ -124,12 +140,21 @@ files:
|
|
124
140
|
- examples/haml/layout.haml
|
125
141
|
- examples/haml/m_hello.haml
|
126
142
|
- examples/haml/style.sass
|
127
|
-
- examples/
|
143
|
+
- examples/mail/mail_html.rhtml
|
144
|
+
- examples/mail/mail_text.rhtml
|
145
|
+
- examples/mail/ok.rhtml
|
146
|
+
- examples/mail/rubyfr.png
|
147
|
+
- examples/mustache/with_class.mustache
|
148
|
+
- examples/mustache/without_class.mustache
|
149
|
+
- examples/render-binary.rb
|
150
|
+
- examples/render-email.rb
|
128
151
|
- examples/render-erb.rb
|
129
152
|
- examples/render-haml_sass.rb
|
130
153
|
- examples/render-image.rb
|
131
154
|
- examples/render-json.rb
|
132
155
|
- examples/render-markaby.rb
|
156
|
+
- examples/render-mustache.rb
|
157
|
+
- examples/render-redirect.rb
|
133
158
|
- examples/render-static.rb
|
134
159
|
- examples/render-static.ru
|
135
160
|
- examples/render-text.rb
|
@@ -155,8 +180,10 @@ post_install_message: |+
|
|
155
180
|
If you want to use Markaby renderer, you must install Markaby.
|
156
181
|
If you want to use HAML renderer, you must install haml.
|
157
182
|
If you want to use SASS renderer, you must install sass.
|
183
|
+
If you want to use Mustache renderer, you must install mustache.
|
158
184
|
If you want to use JSON renderer, you must install json.
|
159
185
|
If you want to use WebDAV renderer, you must install rack_dav.
|
186
|
+
If you want to use Mail renderer, you must install mail.
|
160
187
|
|
161
188
|
If For more information about Capcode, see
|
162
189
|
http://capcode.rubyforge.org
|
data/examples/my_blog.db
DELETED
Binary file
|