merbiful-release 0.2.4 → 0.2.8
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -4
- data/lib/merbiful-release.rb +5 -1
- data/lib/merbiful-release.rb~ +1 -4
- data/lib/merbiful-release/body.rb +7 -7
- data/lib/merbiful-release/body.rb~ +13 -4
- data/lib/merbiful-release/controller.rb +7 -1
- data/lib/merbiful-release/controller.rb~ +61 -0
- data/lib/merbiful-release/css.rb +1 -1
- data/lib/merbiful-release/css.rb~ +1 -1
- data/lib/merbiful-release/js.rb +1 -1
- data/lib/merbiful-release/js.rb~ +1 -1
- data/lib/merbiful-release/page.rb +20 -0
- data/lib/merbiful-release/routes.rb +3 -3
- data/lib/merbiful-release/routes.rb~ +42 -0
- metadata +6 -113
data/Rakefile
CHANGED
@@ -5,7 +5,7 @@ require 'pathname'
|
|
5
5
|
|
6
6
|
PLUGIN = "merbiful-release"
|
7
7
|
NAME = "merbiful-release"
|
8
|
-
GEM_VERSION = "0.2.
|
8
|
+
GEM_VERSION = "0.2.8"
|
9
9
|
AUTHOR = "Martin Kihlgren"
|
10
10
|
EMAIL = "martin@wemind.se"
|
11
11
|
HOMEPAGE = ""
|
@@ -21,9 +21,6 @@ spec = Gem::Specification.new do |s|
|
|
21
21
|
s.author = AUTHOR
|
22
22
|
s.email = EMAIL
|
23
23
|
s.homepage = HOMEPAGE
|
24
|
-
%w(merb-core merb_helpers merb_datamapper merb-action-args merb-assets merb-haml dm-core dm-aggregates dm-migrations dm-timestamps dm-validations).each do |dep|
|
25
|
-
s.add_dependency(dep)
|
26
|
-
end
|
27
24
|
s.require_path = 'lib'
|
28
25
|
s.autorequire = PLUGIN
|
29
26
|
s.files = %w(Rakefile LICENSE) + Dir.glob("{lib,specs,templates}/**/*")
|
data/lib/merbiful-release.rb
CHANGED
data/lib/merbiful-release.rb~
CHANGED
@@ -7,14 +7,13 @@ require 'dm-core'
|
|
7
7
|
require 'dm-validations'
|
8
8
|
require 'dm-timestamps'
|
9
9
|
require 'dm-aggregates'
|
10
|
-
require 'haml'
|
11
10
|
require 'forwardable'
|
12
11
|
require 'pathname'
|
13
|
-
require 'erubis'
|
14
12
|
require 'pp'
|
15
13
|
require 'digest/sha1'
|
16
14
|
|
17
15
|
require File.join(File.dirname(__FILE__), 'merbiful-release', 'filters.rb')
|
16
|
+
require File.join(File.dirname(__FILE__), 'merbiful-release', 'string.rb')
|
18
17
|
require File.join(File.dirname(__FILE__), 'merbiful-release', 'relative_time.rb')
|
19
18
|
require File.join(File.dirname(__FILE__), 'merbiful-release', 'images.rb')
|
20
19
|
require File.join(File.dirname(__FILE__), 'merbiful-release', 'controller.rb')
|
@@ -25,5 +24,3 @@ require File.join(File.dirname(__FILE__), 'merbiful-release', 'css.rb')
|
|
25
24
|
require File.join(File.dirname(__FILE__), 'merbiful-release', 'js.rb')
|
26
25
|
require File.join(File.dirname(__FILE__), 'merbiful-release', 'page.rb')
|
27
26
|
require File.join(File.dirname(__FILE__), 'merbiful-release', 'layout.rb')
|
28
|
-
require File.join(File.dirname(__FILE__), 'merbiful-release', 'haml.rb')
|
29
|
-
require File.join(File.dirname(__FILE__), 'merbiful-release', 'erubis.rb')
|
@@ -17,14 +17,14 @@ module Merbiful
|
|
17
17
|
begin
|
18
18
|
filter = Merb::Template::EXTENSIONS[self.filter]
|
19
19
|
if filter.method(:compile_template).arity == 3
|
20
|
-
|
21
|
-
|
22
|
-
|
20
|
+
filter.compile_template(FAKE_IO_CLASS.new(self.body, render_id),
|
21
|
+
render_id,
|
22
|
+
Merb::InlineTemplates)
|
23
23
|
elsif filter.method(:compile_template).arity == 4
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
filter.compile_template(FAKE_IO_CLASS.new(self.body, render_id),
|
25
|
+
render_id,
|
26
|
+
[],
|
27
|
+
Merb::InlineTemplates)
|
28
28
|
end
|
29
29
|
end)
|
30
30
|
end
|
@@ -14,10 +14,19 @@ module Merbiful
|
|
14
14
|
self.body
|
15
15
|
else
|
16
16
|
controller.send(Merb::Template::METHOD_LIST[render_id] ||=
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
17
|
+
begin
|
18
|
+
filter = Merb::Template::EXTENSIONS[self.filter]
|
19
|
+
if filter.method(:compile_template).arity == 3
|
20
|
+
Merb::Template::EXTENSIONS[self.filter].compile_template(FAKE_IO_CLASS.new(self.body, render_id),
|
21
|
+
render_id,
|
22
|
+
Merb::InlineTemplates)
|
23
|
+
elsif filter.method(:compile_template).arity == 4
|
24
|
+
Merb::Template::EXTENSIONS[self.filter].compile_template(FAKE_IO_CLASS.new(self.body, render_id),
|
25
|
+
render_id,
|
26
|
+
[],
|
27
|
+
Merb::InlineTemplates)
|
28
|
+
end
|
29
|
+
end)
|
21
30
|
end
|
22
31
|
unless Merb.environment == "development"
|
23
32
|
caches.each do |destination, to_cache|
|
@@ -14,20 +14,26 @@ module Merbiful
|
|
14
14
|
|
15
15
|
class MissingJsError < RuntimeError
|
16
16
|
end
|
17
|
+
|
18
|
+
def root
|
19
|
+
Page.root
|
20
|
+
end
|
17
21
|
|
18
22
|
def css(id)
|
19
23
|
css_version = Css::Version.get(id)
|
20
24
|
raise MissingCssError.new(id) unless css_version
|
25
|
+
headers["Content-Type"] = "text/css"
|
21
26
|
css_version.render(self, css_version.css.path => css_version.css.cached)
|
22
27
|
end
|
23
28
|
|
24
29
|
def js(id)
|
25
30
|
js_version = Js::Version.get(id)
|
26
31
|
raise MissingJsError.new(id) unless js_version
|
32
|
+
headers["Content-Type"] = "text/javascript"
|
27
33
|
js_version.render(self, js_version.js.path => js_version.js.cached)
|
28
34
|
end
|
29
35
|
|
30
|
-
def
|
36
|
+
def page(what)
|
31
37
|
@page = Page.first(:path => what)
|
32
38
|
raise NotFound.new(what.inspect) unless @page
|
33
39
|
unless @page.jses.empty?
|
@@ -0,0 +1,61 @@
|
|
1
|
+
|
2
|
+
module Merbiful
|
3
|
+
|
4
|
+
class Controller < Merb::Controller
|
5
|
+
|
6
|
+
class MissingPageError < RuntimeError
|
7
|
+
end
|
8
|
+
|
9
|
+
class MissingLayoutError < RuntimeError
|
10
|
+
end
|
11
|
+
|
12
|
+
class MissingCssError < RuntimeError
|
13
|
+
end
|
14
|
+
|
15
|
+
class MissingJsError < RuntimeError
|
16
|
+
end
|
17
|
+
|
18
|
+
def root
|
19
|
+
Page.root
|
20
|
+
end
|
21
|
+
|
22
|
+
def css(id)
|
23
|
+
css_version = Css::Version.get(id)
|
24
|
+
raise MissingCssError.new(id) unless css_version
|
25
|
+
headers["Content-Type"] = "text/css"
|
26
|
+
css_version.render(self, css_version.css.path => css_version.css.cached)
|
27
|
+
end
|
28
|
+
|
29
|
+
def js(id)
|
30
|
+
js_version = Js::Version.get(id)
|
31
|
+
raise MissingJsError.new(id) unless js_version
|
32
|
+
headers["Content-Type"] = "text/javascript"
|
33
|
+
js_version.render(self, js_version.js.path => js_version.js.cached)
|
34
|
+
end
|
35
|
+
|
36
|
+
def plur(what)
|
37
|
+
@page = Page.first(:path => what)
|
38
|
+
raise NotFound.new(what.inspect) unless @page
|
39
|
+
unless @page.jses.empty?
|
40
|
+
throw_content(:for_js, @page.jses.inject([]) do |sum, frozen_js|
|
41
|
+
js = Js.get(frozen_js.id)
|
42
|
+
sum << "<script src='#{js.path}' type='text/javascript'></script>"
|
43
|
+
end.join("\n"))
|
44
|
+
end
|
45
|
+
unless @page.csses.empty?
|
46
|
+
throw_content(:for_css, @page.csses.inject([]) do |sum, frozen_css|
|
47
|
+
css = Css.get(frozen_css.id)
|
48
|
+
sum << "<link href='#{css.path}' #{css.media.blank? ? "" : "media='#{css.media}' "}rel='Stylesheet' type='text/css' />"
|
49
|
+
end.join("\n"))
|
50
|
+
end
|
51
|
+
if @page.layout
|
52
|
+
throw_content :for_layout, @page.render(self)
|
53
|
+
@page.layout.render(self, @page.path => @page.cached)
|
54
|
+
else
|
55
|
+
@page.render(self, @page.path => @page.cached)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
data/lib/merbiful-release/css.rb
CHANGED
data/lib/merbiful-release/js.rb
CHANGED
data/lib/merbiful-release/js.rb~
CHANGED
@@ -43,6 +43,26 @@ module Merbiful
|
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
|
+
def self.root
|
47
|
+
first(:path => "/")
|
48
|
+
end
|
49
|
+
|
50
|
+
def ancestors
|
51
|
+
if self.parent.nil?
|
52
|
+
return []
|
53
|
+
else
|
54
|
+
return [parent] + parent.ancestors
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def descendants
|
59
|
+
if self.children.empty?
|
60
|
+
return []
|
61
|
+
else
|
62
|
+
return self.children + self.children.inject([]) do |sum, child| sum + child.descendants end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
46
66
|
def latest
|
47
67
|
versions.first(:page_id => self.id, :order => [:id.desc])
|
48
68
|
end
|
@@ -4,9 +4,9 @@ Merb::Router.append do |r|
|
|
4
4
|
r.match("/merbiful_admin").to(:controller => "admin", :namespace => "merbiful", :action => "index").name(:merbiful_admin_index)
|
5
5
|
r.match("/merbiful_admin/:action").to(:controller => "admin", :namespace => "merbiful").name(:merbiful_admin)
|
6
6
|
r.match("/stylesheets/admin").to(:controller => "admin", :namespace => "merbiful", :action => "render_css").name(:merbiful_admin_css)
|
7
|
-
r.match("/stylesheets/:id").to(:controller => "controller", :namespace => "merbiful", :action => "css")
|
8
|
-
r.match("/javascripts/:id").to(:controller => "controller", :namespace => "merbiful", :action => "js")
|
9
|
-
r.match(/(.*)/).to(:controller => "controller", :namespace => "merbiful", :action => "
|
7
|
+
r.match("/stylesheets/:id.css").to(:controller => "controller", :namespace => "merbiful", :action => "css")
|
8
|
+
r.match("/javascripts/:id.js").to(:controller => "controller", :namespace => "merbiful", :action => "js")
|
9
|
+
r.match(/(.*)/).to(:controller => "controller", :namespace => "merbiful", :action => "page", :what => "[1]")
|
10
10
|
end
|
11
11
|
|
12
12
|
module Merbiful
|
@@ -0,0 +1,42 @@
|
|
1
|
+
|
2
|
+
Merb.logger.info("Compiling merbiful routes...")
|
3
|
+
Merb::Router.append do |r|
|
4
|
+
r.match("/merbiful_admin").to(:controller => "admin", :namespace => "merbiful", :action => "index").name(:merbiful_admin_index)
|
5
|
+
r.match("/merbiful_admin/:action").to(:controller => "admin", :namespace => "merbiful").name(:merbiful_admin)
|
6
|
+
r.match("/stylesheets/admin").to(:controller => "admin", :namespace => "merbiful", :action => "render_css").name(:merbiful_admin_css)
|
7
|
+
r.match("/stylesheets/:id.css").to(:controller => "controller", :namespace => "merbiful", :action => "css")
|
8
|
+
r.match("/javascripts/:id.js").to(:controller => "controller", :namespace => "merbiful", :action => "js")
|
9
|
+
r.match(/(.*)/).to(:controller => "controller", :namespace => "merbiful", :action => "plur", :what => "[1]")
|
10
|
+
end
|
11
|
+
|
12
|
+
module Merbiful
|
13
|
+
|
14
|
+
PREPEND_ROUTES = Merb::Router.routes[0..4]
|
15
|
+
APPEND_ROUTES = Merb::Router.routes[5..-1]
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
module Merb
|
20
|
+
|
21
|
+
class Router
|
22
|
+
|
23
|
+
class << self
|
24
|
+
|
25
|
+
alias :merbiful_old_prepare :prepare
|
26
|
+
|
27
|
+
def prepare(first = [], last = [], &block)
|
28
|
+
merbiful_old_prepare(first + ::Merbiful::PREPEND_ROUTES, last + ::Merbiful::APPEND_ROUTES, &block)
|
29
|
+
end
|
30
|
+
|
31
|
+
alias :merbiful_old_compile :compile
|
32
|
+
|
33
|
+
def compile
|
34
|
+
merbiful_old_compile unless compiled_statement.blank?
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: merbiful-release
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Kihlgren
|
@@ -9,119 +9,10 @@ autorequire: merbiful-release
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2009-02-19 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
|
-
dependencies:
|
15
|
-
|
16
|
-
name: merb-core
|
17
|
-
type: :runtime
|
18
|
-
version_requirement:
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">="
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: "0"
|
24
|
-
version:
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: merb_helpers
|
27
|
-
type: :runtime
|
28
|
-
version_requirement:
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: "0"
|
34
|
-
version:
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: merb_datamapper
|
37
|
-
type: :runtime
|
38
|
-
version_requirement:
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
40
|
-
requirements:
|
41
|
-
- - ">="
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: "0"
|
44
|
-
version:
|
45
|
-
- !ruby/object:Gem::Dependency
|
46
|
-
name: merb-action-args
|
47
|
-
type: :runtime
|
48
|
-
version_requirement:
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - ">="
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: "0"
|
54
|
-
version:
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: merb-assets
|
57
|
-
type: :runtime
|
58
|
-
version_requirement:
|
59
|
-
version_requirements: !ruby/object:Gem::Requirement
|
60
|
-
requirements:
|
61
|
-
- - ">="
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: "0"
|
64
|
-
version:
|
65
|
-
- !ruby/object:Gem::Dependency
|
66
|
-
name: merb-haml
|
67
|
-
type: :runtime
|
68
|
-
version_requirement:
|
69
|
-
version_requirements: !ruby/object:Gem::Requirement
|
70
|
-
requirements:
|
71
|
-
- - ">="
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
version: "0"
|
74
|
-
version:
|
75
|
-
- !ruby/object:Gem::Dependency
|
76
|
-
name: dm-core
|
77
|
-
type: :runtime
|
78
|
-
version_requirement:
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - ">="
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: "0"
|
84
|
-
version:
|
85
|
-
- !ruby/object:Gem::Dependency
|
86
|
-
name: dm-aggregates
|
87
|
-
type: :runtime
|
88
|
-
version_requirement:
|
89
|
-
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
requirements:
|
91
|
-
- - ">="
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: "0"
|
94
|
-
version:
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
|
-
name: dm-migrations
|
97
|
-
type: :runtime
|
98
|
-
version_requirement:
|
99
|
-
version_requirements: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ">="
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: "0"
|
104
|
-
version:
|
105
|
-
- !ruby/object:Gem::Dependency
|
106
|
-
name: dm-timestamps
|
107
|
-
type: :runtime
|
108
|
-
version_requirement:
|
109
|
-
version_requirements: !ruby/object:Gem::Requirement
|
110
|
-
requirements:
|
111
|
-
- - ">="
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
version: "0"
|
114
|
-
version:
|
115
|
-
- !ruby/object:Gem::Dependency
|
116
|
-
name: dm-validations
|
117
|
-
type: :runtime
|
118
|
-
version_requirement:
|
119
|
-
version_requirements: !ruby/object:Gem::Requirement
|
120
|
-
requirements:
|
121
|
-
- - ">="
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
version: "0"
|
124
|
-
version:
|
14
|
+
dependencies: []
|
15
|
+
|
125
16
|
description: Merb plugin that provides a simple CMS
|
126
17
|
email: martin@wemind.se
|
127
18
|
executables: []
|
@@ -139,6 +30,7 @@ files:
|
|
139
30
|
- lib/merbiful-release/body.rb
|
140
31
|
- lib/merbiful-release/body.rb~
|
141
32
|
- lib/merbiful-release/controller.rb
|
33
|
+
- lib/merbiful-release/controller.rb~
|
142
34
|
- lib/merbiful-release/css.rb
|
143
35
|
- lib/merbiful-release/css.rb~
|
144
36
|
- lib/merbiful-release/erubis.rb~
|
@@ -155,6 +47,7 @@ files:
|
|
155
47
|
- lib/merbiful-release/page.rb~
|
156
48
|
- lib/merbiful-release/relative_time.rb
|
157
49
|
- lib/merbiful-release/routes.rb
|
50
|
+
- lib/merbiful-release/routes.rb~
|
158
51
|
- lib/merbiful-release/string.rb
|
159
52
|
- lib/merbiful-release/string.rb~
|
160
53
|
- lib/merbiful-release.rb
|