merbiful-release 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/lib/merbiful-release.rb +1 -0
- data/lib/merbiful-release.rb~ +2 -13
- data/lib/merbiful-release/admin.rb~ +5 -1
- data/lib/merbiful-release/body.rb +1 -7
- data/lib/merbiful-release/css.rb +1 -1
- data/lib/merbiful-release/css.rb~ +10 -3
- data/lib/merbiful-release/filters.rb +1 -1
- data/lib/merbiful-release/filters.rb~ +13 -5
- data/lib/merbiful-release/js.rb +1 -1
- data/lib/merbiful-release/js.rb~ +10 -3
- data/lib/merbiful-release/page.rb +1 -1
- data/lib/merbiful-release/page.rb~ +15 -4
- data/lib/merbiful-release/string.rb +26 -0
- data/lib/merbiful-release/string.rb~ +16 -0
- metadata +4 -2
data/Rakefile
CHANGED
data/lib/merbiful-release.rb
CHANGED
@@ -15,6 +15,7 @@ require 'pp'
|
|
15
15
|
require 'digest/sha1'
|
16
16
|
|
17
17
|
require File.join(File.dirname(__FILE__), 'merbiful-release', 'filters.rb')
|
18
|
+
require File.join(File.dirname(__FILE__), 'merbiful-release', 'string.rb')
|
18
19
|
require File.join(File.dirname(__FILE__), 'merbiful-release', 'relative_time.rb')
|
19
20
|
require File.join(File.dirname(__FILE__), 'merbiful-release', 'images.rb')
|
20
21
|
require File.join(File.dirname(__FILE__), 'merbiful-release', 'controller.rb')
|
data/lib/merbiful-release.rb~
CHANGED
@@ -14,20 +14,9 @@ require 'erubis'
|
|
14
14
|
require 'pp'
|
15
15
|
require 'digest/sha1'
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
FILTERS = []
|
20
|
-
|
21
|
-
def self.filters
|
22
|
-
FILTERS.inject([[nil, "Verbatim"]]) do |sum, filter|
|
23
|
-
filter_name = filter.name.gsub(/^Merbiful::/, "")
|
24
|
-
sum + [[filter_name, filter_name]]
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
end
|
29
|
-
|
17
|
+
require File.join(File.dirname(__FILE__), 'merbiful-release', 'filters.rb')
|
30
18
|
require File.join(File.dirname(__FILE__), 'merbiful-release', 'relative_time.rb')
|
19
|
+
require File.join(File.dirname(__FILE__), 'merbiful-release', 'images.rb')
|
31
20
|
require File.join(File.dirname(__FILE__), 'merbiful-release', 'controller.rb')
|
32
21
|
require File.join(File.dirname(__FILE__), 'merbiful-release', 'body.rb')
|
33
22
|
require File.join(File.dirname(__FILE__), 'merbiful-release', 'admin.rb')
|
@@ -199,6 +199,10 @@ module Merbiful
|
|
199
199
|
|
200
200
|
private
|
201
201
|
|
202
|
+
def confirm(message)
|
203
|
+
"return confirm('#{message}');"
|
204
|
+
end
|
205
|
+
|
202
206
|
def text_area_rows
|
203
207
|
20
|
204
208
|
end
|
@@ -249,7 +253,7 @@ module Merbiful
|
|
249
253
|
rval << "</a>"
|
250
254
|
rval << "<li class='up'><a href='#{url(:merbiful_admin, :action => 'move_page_up', :page_id => page.id)}'>↑</a></li>"
|
251
255
|
rval << "<li class='down'><a href='#{url(:merbiful_admin, :action => 'move_page_down', :page_id => page.id)}'>↓</a></li>"
|
252
|
-
rval << "<li class='remove'><a href='#{url(:merbiful_admin, :action => 'destroy_page', :page_id => page.id)}'>-</a></li>" unless page.parent_id.nil?
|
256
|
+
rval << "<li class='remove'><a href='#{url(:merbiful_admin, :action => 'destroy_page', :page_id => page.id)}' onclick=\"#{confirm("Are you absolutely certain that you want to destroy the page at #{page.path}? All versions will be irreversibly destroyed.")}\">-</a></li>" unless page.parent_id.nil?
|
253
257
|
rval << "<li class='append'><a href='#{url(:merbiful_admin, :action => 'create_page', :parent_id => page.id)}'>+</a></li>"
|
254
258
|
rval << "</ul>"
|
255
259
|
rval << render_template_without_layout("page_form.html.haml") if params[:page_id].to_s == page.id.to_s
|
@@ -13,7 +13,7 @@ module Merbiful
|
|
13
13
|
unless Merb.environment == "development"
|
14
14
|
caches.each do |destination, to_cache|
|
15
15
|
if to_cache
|
16
|
-
path =
|
16
|
+
path = destination.cached_path
|
17
17
|
Merb.logger.info("Flushing to #{path.inspect}")
|
18
18
|
path.parent.mkpath
|
19
19
|
path.open("w") do |out|
|
@@ -25,12 +25,6 @@ module Merbiful
|
|
25
25
|
return rval
|
26
26
|
end
|
27
27
|
|
28
|
-
def clear_cache(target)
|
29
|
-
return if target == "/"
|
30
|
-
path = Pathname.new(File.join(Merb.root, "public", target))
|
31
|
-
path.unlink if path.exist?
|
32
|
-
end
|
33
|
-
|
34
28
|
end
|
35
29
|
|
36
30
|
end
|
data/lib/merbiful-release/css.rb
CHANGED
@@ -17,9 +17,14 @@ module Merbiful
|
|
17
17
|
property :updated_at, DateTime
|
18
18
|
|
19
19
|
has n, :css_nesses, :class_name => "Merbiful::Css::Ness"
|
20
|
-
has n, :page_versions, :through => :css_nesses, :class_name => "Merbiful::Page::Version"
|
20
|
+
has n, :page_versions, :through => :css_nesses, :class_name => "Merbiful::Page::Version", :child_key => [:css_id]
|
21
21
|
has n, :css_versions, :class_name => "Merbiful::Css::Version"
|
22
22
|
|
23
|
+
before :destroy do
|
24
|
+
css_nesses.destroy!
|
25
|
+
css_versions.destroy!
|
26
|
+
end
|
27
|
+
|
23
28
|
def latest
|
24
29
|
css_versions.first(:css_id => self.id, :order => [:id.desc])
|
25
30
|
end
|
@@ -35,9 +40,11 @@ module Merbiful
|
|
35
40
|
include DataMapper::Validate
|
36
41
|
|
37
42
|
property :id, Serial
|
43
|
+
property :page_version_id, Integer
|
44
|
+
property :css_id, Integer
|
38
45
|
|
39
|
-
belongs_to :css, :class_name => "Merbiful::Css"
|
40
|
-
belongs_to :page_version, :class_name => "Merbiful::Page::Version"
|
46
|
+
belongs_to :css, :class_name => "Merbiful::Css", :child_key => [:css_id]
|
47
|
+
belongs_to :page_version, :class_name => "Merbiful::Page::Version", :child_key => [:page_version_id]
|
41
48
|
end
|
42
49
|
|
43
50
|
class Version
|
@@ -1,13 +1,21 @@
|
|
1
1
|
|
2
2
|
module Merbiful
|
3
3
|
|
4
|
-
|
4
|
+
module Filter
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
@filters = []
|
7
|
+
|
8
|
+
def self.register_filter(filter)
|
9
|
+
@filters << filter
|
10
10
|
end
|
11
|
+
|
12
|
+
def self.filters
|
13
|
+
@filters.inject([[nil, "Verbatim"]]) do |sum, filter|
|
14
|
+
filter_name = filter.name.gsub(/^Merbiful::/, "")
|
15
|
+
sum + [[filter_name, filter_name]]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
11
19
|
end
|
12
20
|
|
13
21
|
end
|
data/lib/merbiful-release/js.rb
CHANGED
data/lib/merbiful-release/js.rb~
CHANGED
@@ -16,9 +16,14 @@ module Merbiful
|
|
16
16
|
property :updated_at, DateTime
|
17
17
|
|
18
18
|
has n, :js_nesses, :class_name => "Merbiful::Js::Ness"
|
19
|
-
has n, :page_versions, :through => :js_nesses, :class_name => "Merbiful::Page::Version"
|
19
|
+
has n, :page_versions, :through => :js_nesses, :class_name => "Merbiful::Page::Version", :child_key => [:js_id]
|
20
20
|
has n, :js_versions, :class_name => "Merbiful::Js::Version"
|
21
21
|
|
22
|
+
before :destroy do
|
23
|
+
js_nesses.destroy!
|
24
|
+
js_versions.destroy!
|
25
|
+
end
|
26
|
+
|
22
27
|
def latest
|
23
28
|
js_versions.first(:js_id => self.id, :order => [:id.desc])
|
24
29
|
end
|
@@ -34,9 +39,11 @@ module Merbiful
|
|
34
39
|
include DataMapper::Validate
|
35
40
|
|
36
41
|
property :id, Serial
|
42
|
+
property :page_version_id, Integer
|
43
|
+
property :js_id, Integer
|
37
44
|
|
38
|
-
belongs_to :js, :class_name => "Merbiful::Js"
|
39
|
-
belongs_to :page_version, :class_name => "Merbiful::Page::Version"
|
45
|
+
belongs_to :js, :class_name => "Merbiful::Js", :child_key => [:js_id]
|
46
|
+
belongs_to :page_version, :class_name => "Merbiful::Page::Version", :child_key => [:page_version_id]
|
40
47
|
end
|
41
48
|
|
42
49
|
class Version
|
@@ -26,6 +26,12 @@ module Merbiful
|
|
26
26
|
|
27
27
|
validates_is_unique :path
|
28
28
|
|
29
|
+
before :destroy do
|
30
|
+
versions.each do |version|
|
31
|
+
version.destroy
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
29
35
|
before :save do
|
30
36
|
if self.position.nil?
|
31
37
|
last_position = self.class.first(:parent_id => self.parent_id, :id.not => self.id)
|
@@ -66,17 +72,22 @@ module Merbiful
|
|
66
72
|
belongs_to :layout, :class_name => "Merbiful::Layout"
|
67
73
|
|
68
74
|
has n, :css_nesses, :class_name => "Merbiful::Css::Ness"
|
69
|
-
has n, :csses, :through => :css_nesses, :class_name => "Merbiful::Css", :remote_name => :css
|
75
|
+
has n, :csses, :through => :css_nesses, :class_name => "Merbiful::Css", :remote_name => :css, :child_key => [:page_version_id]
|
70
76
|
|
71
77
|
has n, :js_nesses, :class_name => "Merbiful::Js::Ness"
|
72
|
-
has n, :jses, :through => :js_nesses, :class_name => "Merbiful::Js", :remote_name => :js
|
78
|
+
has n, :jses, :through => :js_nesses, :class_name => "Merbiful::Js", :remote_name => :js, :child_key => [:page_version_id]
|
79
|
+
|
80
|
+
before :destroy do
|
81
|
+
css_nesses.destroy!
|
82
|
+
js_nesses.destroy!
|
83
|
+
end
|
73
84
|
|
74
85
|
before :save do
|
75
86
|
clear_cache(page.path) if page.latest
|
76
87
|
end
|
77
88
|
|
78
89
|
def add_css(css)
|
79
|
-
Merbiful::Css::Ness.
|
90
|
+
Merbiful::Css::Ness.create(:css => css, :page_version => self)
|
80
91
|
end
|
81
92
|
|
82
93
|
def remove_css(css)
|
@@ -84,7 +95,7 @@ module Merbiful
|
|
84
95
|
end
|
85
96
|
|
86
97
|
def add_js(js)
|
87
|
-
Merbiful::Js::Ness.
|
98
|
+
Merbiful::Js::Ness.create(:js => js, :page_version => self)
|
88
99
|
end
|
89
100
|
|
90
101
|
def remove_js(js)
|
@@ -0,0 +1,26 @@
|
|
1
|
+
|
2
|
+
String.class_eval do
|
3
|
+
|
4
|
+
def cached_path
|
5
|
+
path = Pathname.new(File.join(Merb.root, "public", self))
|
6
|
+
raise "H4xx0r" unless path.to_s.index(Pathname.new(Merb.root).join("public").expand_path.to_s) == 0
|
7
|
+
if path.parent.file?
|
8
|
+
path.parent.unlink
|
9
|
+
elsif path.directory?
|
10
|
+
path = path.join("index.html")
|
11
|
+
end
|
12
|
+
path.parent.mkpath
|
13
|
+
path
|
14
|
+
end
|
15
|
+
|
16
|
+
def currently_cached?
|
17
|
+
path = cached_path
|
18
|
+
path.exist? && path.file?
|
19
|
+
end
|
20
|
+
|
21
|
+
def clear_cache!
|
22
|
+
path = cached_path
|
23
|
+
path.rmtree if path.exist?
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
|
2
|
+
String.class_eval do
|
3
|
+
|
4
|
+
def cached_path
|
5
|
+
path = Pathname.new(File.join(Merb.root, "public", self))
|
6
|
+
raise "H4xx0r" unless path.to_s.index(Pathname.new(Merb.root).join("public").expand_path.to_s) == 0
|
7
|
+
if path.parent.file?
|
8
|
+
path.parent.unlink
|
9
|
+
elsif path.directory?
|
10
|
+
path = path.join("index.html")
|
11
|
+
end
|
12
|
+
path
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
end
|
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.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Kihlgren
|
@@ -9,7 +9,7 @@ autorequire: merbiful-release
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-09-
|
12
|
+
date: 2008-09-16 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -67,6 +67,8 @@ files:
|
|
67
67
|
- lib/merbiful-release/page.rb~
|
68
68
|
- lib/merbiful-release/relative_time.rb
|
69
69
|
- lib/merbiful-release/routes.rb
|
70
|
+
- lib/merbiful-release/string.rb
|
71
|
+
- lib/merbiful-release/string.rb~
|
70
72
|
- lib/merbiful-release.rb
|
71
73
|
- lib/merbiful-release.rb~
|
72
74
|
- templates/admin.css
|