merbiful-release 0.2.4 → 0.2.8
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.
- 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
|