spud_cms 0.8.7 → 0.8.9

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.
@@ -50,9 +50,11 @@ class PagesController < ApplicationController
50
50
  end
51
51
  end
52
52
  if @page.is_private?
53
- if self.respond_to?('require_user') && require_user == false
53
+ if defined?(require_user) && require_user == false
54
+ logger.debug("responds to require user!")
54
55
  return
55
56
  end
57
+ logger.debug("does not!")
56
58
  end
57
59
 
58
60
  layout = Spud::Cms.default_page_layout
@@ -1,6 +1,7 @@
1
1
  class SpudPage < ActiveRecord::Base
2
2
  searchable
3
3
  belongs_to :spud_page
4
+ has_many :spud_page_partial_revisions
4
5
  belongs_to :spud_template,:foreign_key => :template_id
5
6
  has_many :spud_pages, :dependent => :nullify
6
7
  has_many :spud_page_partials,:dependent => :destroy
@@ -1,4 +1,22 @@
1
1
  class SpudPagePartial < ActiveRecord::Base
2
2
  belongs_to :spud_page
3
3
  attr_accessible :name,:spud_page_id,:content,:format
4
+ before_save :maintain_revisions
5
+
6
+
7
+ def maintain_revisions
8
+ if !self.changed.include?('content')
9
+ return true
10
+ end
11
+ revision = SpudPagePartialRevision.new(:spud_page_id => self.spud_page_id,:name => self.name,:format => self.format,:content => self.content)
12
+ revision.save
13
+ if Spud::Cms.max_revisions > 0
14
+ revision_count = SpudPagePartialRevision.where(:spud_page_id => self.spud_page_id,:name => self.name).count
15
+ if revision_count > Spud::Cms.max_revisions
16
+ revision_bye = SpudPagePartialRevision.where(:spud_page_id => self.spud_page_id,:name => self.name).order("created_at ASC").first
17
+ revision_bye.destroy if !revision_bye.blank?
18
+ end
19
+ end
20
+ return true
21
+ end
4
22
  end
@@ -0,0 +1,5 @@
1
+ class SpudPagePartialRevision < ActiveRecord::Base
2
+ belongs_to :spud_page
3
+
4
+ # attr_accessible :title, :body
5
+ end
@@ -0,0 +1,13 @@
1
+ class CreateSpudPagePartialRevisions < ActiveRecord::Migration
2
+ def change
3
+ create_table :spud_page_partial_revisions do |t|
4
+ t.string :name
5
+ t.text :content
6
+ t.string :format
7
+ t.integer :spud_page_id
8
+ t.timestamps
9
+ end
10
+
11
+ add_index :spud_page_partial_revisions,[:spud_page_id,:name],:name => "revision_idx"
12
+ end
13
+ end
@@ -2,7 +2,7 @@ module Spud
2
2
  module Cms
3
3
  include ActiveSupport::Configurable
4
4
 
5
- config_accessor :menus_enabled,:templates_enabled,:root_page_name,:default_page_parts,:yield_body_as_content_block,:default_page_layout,:enable_sitemap,:enable_full_page_caching,:enable_action_caching,:multisite_config
5
+ config_accessor :menus_enabled,:templates_enabled,:root_page_name,:default_page_parts,:yield_body_as_content_block,:default_page_layout,:enable_sitemap,:enable_full_page_caching,:enable_action_caching,:multisite_config,:max_revisions
6
6
 
7
7
  self.root_page_name = "home"
8
8
  self.menus_enabled = true
@@ -13,6 +13,7 @@ module Spud
13
13
  self.enable_full_page_caching = false
14
14
  self.enable_action_caching = false
15
15
  self.enable_sitemap = true
16
+ self.max_revisions = 10
16
17
  self.multisite_config = []
17
18
  def self.site_config_for_short_name(short_name)
18
19
  configs = Spud::Cms.multisite_config.select{|p| p[:short_name].to_s == short_name.to_s}
@@ -1,5 +1,5 @@
1
1
  module Spud
2
2
  module Cms
3
- VERSION = "0.8.7"
3
+ VERSION = "0.8.9"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spud_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.7
4
+ version: 0.8.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-08 00:00:00.000000000 Z
12
+ date: 2012-05-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70342597642680 !ruby/object:Gem::Requirement
16
+ requirement: &70196896877860 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.2.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70342597642680
24
+ version_requirements: *70196896877860
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: spud_core
27
- requirement: &70342597642140 !ruby/object:Gem::Requirement
27
+ requirement: &70196896877140 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -35,10 +35,10 @@ dependencies:
35
35
  version: 0.9.0
36
36
  type: :runtime
37
37
  prerelease: false
38
- version_requirements: *70342597642140
38
+ version_requirements: *70196896877140
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: spud_permalinks
41
- requirement: &70342597641260 !ruby/object:Gem::Requirement
41
+ requirement: &70196896876340 !ruby/object:Gem::Requirement
42
42
  none: false
43
43
  requirements:
44
44
  - - ~>
@@ -46,10 +46,10 @@ dependencies:
46
46
  version: 0.0.4
47
47
  type: :runtime
48
48
  prerelease: false
49
- version_requirements: *70342597641260
49
+ version_requirements: *70196896876340
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: codemirror-rails
52
- requirement: &70342597640760 !ruby/object:Gem::Requirement
52
+ requirement: &70196896875960 !ruby/object:Gem::Requirement
53
53
  none: false
54
54
  requirements:
55
55
  - - ! '>='
@@ -57,10 +57,10 @@ dependencies:
57
57
  version: '0'
58
58
  type: :runtime
59
59
  prerelease: false
60
- version_requirements: *70342597640760
60
+ version_requirements: *70196896875960
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: mysql2
63
- requirement: &70342597640060 !ruby/object:Gem::Requirement
63
+ requirement: &70196896875480 !ruby/object:Gem::Requirement
64
64
  none: false
65
65
  requirements:
66
66
  - - ! '>='
@@ -68,10 +68,10 @@ dependencies:
68
68
  version: '0'
69
69
  type: :development
70
70
  prerelease: false
71
- version_requirements: *70342597640060
71
+ version_requirements: *70196896875480
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: rspec
74
- requirement: &70342597639400 !ruby/object:Gem::Requirement
74
+ requirement: &70196896875000 !ruby/object:Gem::Requirement
75
75
  none: false
76
76
  requirements:
77
77
  - - ! '>='
@@ -79,10 +79,10 @@ dependencies:
79
79
  version: '0'
80
80
  type: :development
81
81
  prerelease: false
82
- version_requirements: *70342597639400
82
+ version_requirements: *70196896875000
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec-rails
85
- requirement: &70342597638820 !ruby/object:Gem::Requirement
85
+ requirement: &70196896874580 !ruby/object:Gem::Requirement
86
86
  none: false
87
87
  requirements:
88
88
  - - ! '>='
@@ -90,10 +90,10 @@ dependencies:
90
90
  version: '0'
91
91
  type: :development
92
92
  prerelease: false
93
- version_requirements: *70342597638820
93
+ version_requirements: *70196896874580
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: factory_girl
96
- requirement: &70342597638140 !ruby/object:Gem::Requirement
96
+ requirement: &70196896873800 !ruby/object:Gem::Requirement
97
97
  none: false
98
98
  requirements:
99
99
  - - =
@@ -101,10 +101,10 @@ dependencies:
101
101
  version: 2.5.0
102
102
  type: :development
103
103
  prerelease: false
104
- version_requirements: *70342597638140
104
+ version_requirements: *70196896873800
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: mocha
107
- requirement: &70342597637080 !ruby/object:Gem::Requirement
107
+ requirement: &70196896873100 !ruby/object:Gem::Requirement
108
108
  none: false
109
109
  requirements:
110
110
  - - =
@@ -112,10 +112,10 @@ dependencies:
112
112
  version: 0.10.3
113
113
  type: :development
114
114
  prerelease: false
115
- version_requirements: *70342597637080
115
+ version_requirements: *70196896873100
116
116
  - !ruby/object:Gem::Dependency
117
117
  name: database_cleaner
118
- requirement: &70342597652700 !ruby/object:Gem::Requirement
118
+ requirement: &70196896872400 !ruby/object:Gem::Requirement
119
119
  none: false
120
120
  requirements:
121
121
  - - =
@@ -123,7 +123,7 @@ dependencies:
123
123
  version: 0.7.1
124
124
  type: :development
125
125
  prerelease: false
126
- version_requirements: *70342597652700
126
+ version_requirements: *70196896872400
127
127
  description: Spud CMS is a full-featured light weight modular cms engine as a part
128
128
  of the spud suite of rails gems. This particular gem comes with page management,
129
129
  administrative dashboard, template management, menu management and more. It is also
@@ -156,6 +156,7 @@ files:
156
156
  - app/models/spud_menu_item.rb
157
157
  - app/models/spud_page.rb
158
158
  - app/models/spud_page_partial.rb
159
+ - app/models/spud_page_partial_revision.rb
159
160
  - app/models/spud_template.rb
160
161
  - app/views/layouts/spud/admin/cms/detail.html.erb
161
162
  - app/views/pages/show.html.erb
@@ -196,6 +197,7 @@ files:
196
197
  - db/migrate/20120329132314_add_site_id_to_spud_pages.rb
197
198
  - db/migrate/20120329132322_add_site_id_to_spud_templates.rb
198
199
  - db/migrate/20120329132330_add_site_id_to_spud_menus.rb
200
+ - db/migrate/20120510195151_create_spud_page_partial_revisions.rb
199
201
  - lib/spud_cms/configuration.rb
200
202
  - lib/spud_cms/engine.rb
201
203
  - lib/spud_cms/page_route.rb
@@ -257,7 +259,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
257
259
  version: '0'
258
260
  segments:
259
261
  - 0
260
- hash: -2359263101530837589
262
+ hash: 3473395814718108521
261
263
  required_rubygems_version: !ruby/object:Gem::Requirement
262
264
  none: false
263
265
  requirements:
@@ -266,7 +268,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
266
268
  version: '0'
267
269
  segments:
268
270
  - 0
269
- hash: -2359263101530837589
271
+ hash: 3473395814718108521
270
272
  requirements: []
271
273
  rubyforge_project:
272
274
  rubygems_version: 1.8.15