sunrise-core 0.1.3 → 0.1.4

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.
Files changed (40) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +20 -22
  3. data/Rakefile +17 -13
  4. data/app/controllers/manage/assets_controller.rb +3 -20
  5. data/app/controllers/manage/structures_controller.rb +1 -1
  6. data/app/controllers/manage/users_controller.rb +1 -11
  7. data/{lib/generators/sunrise/templates → app}/sweepers/page_sweeper.rb +1 -2
  8. data/{lib/generators/sunrise/templates → app}/sweepers/structure_sweeper.rb +1 -9
  9. data/app/views/kaminari/manage/_first_page.html.erb +11 -0
  10. data/app/views/kaminari/manage/_gap.html.erb +8 -0
  11. data/app/views/kaminari/manage/_last_page.html.erb +11 -0
  12. data/app/views/kaminari/manage/_next_page.html.erb +9 -0
  13. data/app/views/kaminari/manage/_page.html.erb +15 -0
  14. data/app/views/kaminari/manage/_paginator.html.erb +23 -0
  15. data/app/views/kaminari/manage/_prev_page.html.erb +10 -0
  16. data/app/views/layouts/manage.html.erb +1 -1
  17. data/app/views/manage/shared/_locale.html.erb +1 -1
  18. data/app/views/manage/users/_model_filter.html.erb +2 -0
  19. data/app/views/manage/users/index.html.erb +1 -1
  20. data/config/locales/defaults/en.yml +1 -1
  21. data/config/locales/manage/en.yml +3 -0
  22. data/config/locales/manage/ru.yml +3 -0
  23. data/config/locales/manage/uk.yml +3 -0
  24. data/lib/generators/sunrise/install_generator.rb +3 -7
  25. data/lib/generators/sunrise/templates/models/defaults/avatar.rb +1 -0
  26. data/lib/generators/sunrise/templates/models/defaults/picture.rb +1 -0
  27. data/lib/generators/sunrise/templates/models/defaults/structure.rb +0 -2
  28. data/lib/generators/sunrise/templates/views/layouts/application.html.erb +1 -1
  29. data/lib/sunrise/core.rb +4 -16
  30. data/lib/sunrise/engine.rb +9 -3
  31. data/lib/sunrise/models/role_type.rb +4 -0
  32. data/lib/sunrise/models/structure.rb +3 -0
  33. data/lib/sunrise/models/user.rb +2 -2
  34. data/lib/sunrise/nested_set/depth.rb +50 -0
  35. data/lib/sunrise/nested_set/descendants.rb +25 -0
  36. data/lib/sunrise/plugin.rb +14 -3
  37. data/lib/sunrise/utils.rb +29 -0
  38. data/lib/sunrise/version.rb +1 -1
  39. metadata +825 -47
  40. data/lib/generators/sunrise/templates/sweepers/user_sweeper.rb +0 -17
@@ -50,10 +50,6 @@ module Sunrise
50
50
  directory "models", "app/models"
51
51
  end
52
52
 
53
- def copy_sweepers
54
- directory "sweepers", "app/sweepers"
55
- end
56
-
57
53
  def download_rails_js
58
54
  say_status("fetching rails.js", "", :green)
59
55
  get "https://github.com/rails/jquery-ujs/raw/master/src/rails.js", "public/javascripts/rails.js"
@@ -84,10 +80,10 @@ module Sunrise
84
80
  end
85
81
 
86
82
  def autoload_paths
87
- log :autoload_paths, "models/defaults and app/sweepers"
83
+ log :autoload_paths, "models/defaults"
88
84
  sentinel = /\.autoload_paths\s+\+=\s+\%W\(\#\{config\.root\}\/extras\)\s*$/
89
-
90
- code = 'config.autoload_paths += %W(#{config.root}/app/models/defaults #{config.root}/app/sweepers)'
85
+
86
+ code = 'config.autoload_paths += %W(#{config.root}/app/models/defaults)'
91
87
 
92
88
  in_root do
93
89
  inject_into_file 'config/application.rb', " #{code}\n", { :after => sentinel, :verbose => false }
@@ -31,6 +31,7 @@ class Avatar < Asset
31
31
  :convert_options => { :all => "-strip" },
32
32
  :styles => { :thumb => "50x50#", :small => "32x32#" }
33
33
 
34
+ validates_attachment_presence :data
34
35
  validates_attachment_size :data, :less_than => 1.megabyte
35
36
  validates_attachment_content_type :data, :content_type => Sunrise::Utils::IMAGE_TYPES
36
37
  end
@@ -29,6 +29,7 @@ class Picture < Asset
29
29
  :convert_options => { :all => "-strip" },
30
30
  :styles => { :content => '575>', :thumb => '80x80#' }
31
31
 
32
+ validates_attachment_presence :data
32
33
  validates_attachment_size :data, :less_than => 2.megabytes
33
34
  validates_attachment_content_type :data, :content_type => Sunrise::Utils::IMAGE_TYPES
34
35
  end
@@ -1,8 +1,6 @@
1
1
  class Structure < ActiveRecord::Base
2
2
  include Sunrise::Models::Structure
3
3
 
4
- acts_as_nested_set
5
-
6
4
  has_slug :prepend_id => false
7
5
 
8
6
  attr_accessible :title, :kind, :position, :parent_id, :redirect_url,
@@ -14,7 +14,7 @@
14
14
  <script src="https://www.google.com/jsapi?key=" type="text/javascript"></script>
15
15
  <script language="Javascript" type="text/javascript">
16
16
  //<![CDATA[
17
- google.load("jquery", "1.5.1");
17
+ google.load("jquery", "1.6.1");
18
18
  google.load("swfobject", "2.2");
19
19
  //]]>
20
20
  </script>
data/lib/sunrise/core.rb CHANGED
@@ -6,6 +6,7 @@ module Sunrise
6
6
  autoload :ModelFilter, 'sunrise/model_filter'
7
7
  autoload :Plugins, 'sunrise/plugins'
8
8
  autoload :Plugin, 'sunrise/plugin'
9
+ autoload :Utils, 'sunrise/utils'
9
10
 
10
11
  module Models
11
12
  autoload :RoleType, 'sunrise/models/role_type'
@@ -24,22 +25,9 @@ module Sunrise
24
25
  autoload :FormBuilder, 'sunrise/views/form_builder'
25
26
  end
26
27
 
27
- module Utils
28
- autoload :Header, 'sunrise/utils/header'
29
- autoload :Mysql, 'sunrise/utils/mysql'
30
- autoload :Settingslogic, 'sunrise/utils/settingslogic'
31
- autoload :Transliteration, 'sunrise/utils/transliteration'
32
- autoload :AccessibleAttributes, 'sunrise/utils/accessible_attributes'
33
- autoload :I18nBackend, 'sunrise/utils/i18n_backend'
34
-
35
- IMAGE_TYPES = ['image/jpeg', 'image/png', 'image/gif', 'image/jpg', 'image/pjpeg', 'image/tiff', 'image/x-png']
36
-
37
- def self.parameterize_filename(filename)
38
- extension = File.extname(filename)
39
- basename = filename.gsub(/#{extension}$/, "")
40
-
41
- [basename.parameterize('_'), extension].join.downcase
42
- end
28
+ module NestedSet
29
+ autoload :Descendants, 'sunrise/nested_set/descendants'
30
+ autoload :Depth, 'sunrise/nested_set/depth'
43
31
  end
44
32
 
45
33
  # Custom flash_keys
@@ -4,12 +4,13 @@ require 'sunrise-file-upload'
4
4
 
5
5
  module Sunrise
6
6
  class Engine < ::Rails::Engine
7
- config.before_initialize do
7
+ config.i18n.load_path += Dir[File.join(File.dirname(__FILE__), "../../config", 'locales', '**', '*.{rb,yml}').to_s]
8
+ config.autoload_paths << File.expand_path("../../../app/sweepers", __FILE__)
9
+
10
+ initializer "sunrise.core.setup" do
8
11
  ActiveSupport::XmlMini.backend = 'Nokogiri'
9
12
  InheritedResources.flash_keys = Sunrise.flash_keys
10
13
 
11
- config.i18n.load_path += Dir[File.join(File.dirname(__FILE__), "../../config", 'locales', '**', '*.{rb,yml}').to_s]
12
-
13
14
  I18n.backend = Sunrise::Utils::I18nBackend.new
14
15
 
15
16
  ActiveSupport.on_load :active_record do
@@ -26,6 +27,11 @@ module Sunrise
26
27
  end
27
28
  end
28
29
 
30
+ initializer "sunrise.core.awesome_nested_set" do
31
+ CollectiveIdea::Acts::NestedSet::Model.send :include, Sunrise::NestedSet::Depth
32
+ CollectiveIdea::Acts::NestedSet::Model::InstanceMethods.send :include, Sunrise::NestedSet::Descendants
33
+ end
34
+
29
35
  # Wrap errors in ul->li list and skip labels.
30
36
  config.to_prepare do
31
37
  ActionView::Base.field_error_proc = Sunrise.field_error_proc
@@ -9,6 +9,10 @@ module Sunrise
9
9
 
10
10
  def title
11
11
  I18n.t(@code, :scope => [:manage, :role, :kind])
12
+ end
13
+
14
+ def self.legal?(value)
15
+ all.map(&:id).include?(value)
12
16
  end
13
17
  end
14
18
  end
@@ -19,6 +19,9 @@ module Sunrise
19
19
 
20
20
  has_one :page, :dependent => :destroy
21
21
 
22
+ acts_as_nested_set
23
+ set_callback :move, :after, :update_depth
24
+
22
25
  scope :visible, where(:is_visible => true)
23
26
  scope :with_kind, proc {|structure_type| where(:kind => structure_type.id) }
24
27
  scope :with_depth, proc {|level| where(:depth => level.to_i) }
@@ -10,7 +10,7 @@ module Sunrise
10
10
  module ClassMethods
11
11
  def self.extended(base)
12
12
  base.class_eval do
13
- has_many :roles, :dependent => :delete_all
13
+ has_many :roles, :dependent => :delete_all, :autosave => true
14
14
  has_one :avatar, :as => :assetable, :dependent => :destroy, :autosave => true
15
15
 
16
16
  scope :with_role, lambda {|role| joins(:roles).where(["`roles`.role_type = ?", role.id]) }
@@ -73,7 +73,7 @@ module Sunrise
73
73
  def role_type_id=(value)
74
74
  role_id = value.blank? ? nil : value.to_i
75
75
 
76
- if ::RoleType.all.map(&:id).include?(role_id)
76
+ if ::RoleType.legal?(role_id)
77
77
  ::RoleType.all.each do |role_type|
78
78
  create_or_destroy_role(role_type.id, role_type.id == role_id)
79
79
  end
@@ -0,0 +1,50 @@
1
+ module Sunrise
2
+ module NestedSet
3
+ module Depth
4
+ extend ActiveSupport::Concern
5
+
6
+ module ClassMethods
7
+ # Update cached_level attribute for all records tree
8
+ def update_depth
9
+ roots.each do |node|
10
+ connection.execute("UPDATE #{quoted_table_name} a SET a.depth = \
11
+ (SELECT count(*) - 1 FROM (SELECT * FROM #{quoted_table_name} WHERE #{scope_condition(node)}) AS b \
12
+ WHERE #{scope_condition(node, 'a')} AND \
13
+ (a.#{quoted_left_column_name} BETWEEN b.#{quoted_left_column_name} AND b.#{quoted_right_column_name}))
14
+ WHERE #{scope_condition(node, 'a')}")
15
+ end
16
+ end
17
+
18
+ def depth?
19
+ column_names.include?("depth")
20
+ end
21
+
22
+ protected
23
+
24
+ # Model scope conditions
25
+ def scope_condition(node, table_name = nil)
26
+ table_name ||= quoted_table_name
27
+
28
+ scope_string = Array(acts_as_nested_set_options[:scope]).map do |c|
29
+ "#{table_name}.#{connection.quote_column_name(c)} = #{node.send(c)}"
30
+ end.join(" AND ")
31
+
32
+ scope_string.blank? ? "1 = 1" : scope_string
33
+ end
34
+ end
35
+
36
+ module InstanceMethods
37
+
38
+ # Check is model has depth column
39
+ def depth?
40
+ self.class.depth?
41
+ end
42
+
43
+ # Update cached_level attribute
44
+ def update_depth
45
+ update_attribute(:depth, level)
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,25 @@
1
+ module Sunrise
2
+ module NestedSet
3
+ module Descendants
4
+ # Returns the number of nested children of this object.
5
+ def descendants_count
6
+ return (right - left - 1)/2
7
+ end
8
+
9
+ # Check if has descendants
10
+ def has_descendants?
11
+ !descendants_count.zero?
12
+ end
13
+
14
+ # Move node up or down (sort)
15
+ def move_by_direction(ditection)
16
+ return if ditection.blank?
17
+
18
+ case ditection.to_sym
19
+ when :up, :left then move_left
20
+ when :down, :right then move_right
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -37,10 +37,21 @@ module Sunrise
37
37
  plugin.version ||= Sunrise::VERSION.dup
38
38
 
39
39
  if plugin.model
40
- model_path = (plugin.model == true ? "sunrise/models/#{plugin.name}" : plugin.model)
41
- Sunrise::Models.send(:autoload, plugin.module_name, model_path)
40
+ [plugin.model].flatten.each do |model|
41
+ module_name = plugin.module_name
42
+ model_path = "sunrise/models/#{plugin.name}"
43
+
44
+ case model
45
+ when String then model_path = model
46
+ when Symbol then
47
+ model_name = model.to_s.singularize
48
+ module_name = model_name.camelize.to_sym
49
+ model_path = "sunrise/models/#{model_name}"
50
+ end
51
+
52
+ Sunrise::Models.send(:autoload, module_name, model_path)
53
+ end
42
54
  end
43
55
  end
44
56
  end
45
-
46
57
  end
@@ -0,0 +1,29 @@
1
+ # encoding: utf-8
2
+ require 'fileutils'
3
+
4
+ module Sunrise
5
+ module Utils
6
+ autoload :Header, 'sunrise/utils/header'
7
+ autoload :Mysql, 'sunrise/utils/mysql'
8
+ autoload :Settingslogic, 'sunrise/utils/settingslogic'
9
+ autoload :Transliteration, 'sunrise/utils/transliteration'
10
+ autoload :AccessibleAttributes, 'sunrise/utils/accessible_attributes'
11
+ autoload :I18nBackend, 'sunrise/utils/i18n_backend'
12
+
13
+ IMAGE_TYPES = ['image/jpeg', 'image/png', 'image/gif', 'image/jpg', 'image/pjpeg', 'image/tiff', 'image/x-png']
14
+
15
+ def self.parameterize_filename(filename)
16
+ extension = File.extname(filename)
17
+ basename = filename.gsub(/#{extension}$/, "")
18
+
19
+ [basename.parameterize('_'), extension].join.downcase
20
+ end
21
+
22
+ def self.clear_cache
23
+ cache_store = Rails.application.config.action_controller.cache_store
24
+ cache_store.clear if cache_store
25
+
26
+ FileUtils.rm_r(Dir.glob(Rails.root.join('public', 'cache', '*').to_s), :force => true)
27
+ end
28
+ end
29
+ end
@@ -1,3 +1,3 @@
1
1
  module Sunrise
2
- VERSION = "0.1.3".freeze
2
+ VERSION = "0.1.4".freeze
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sunrise-core
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 3
10
- version: 0.1.3
9
+ - 4
10
+ version: 0.1.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Igor Galeta
@@ -16,44 +16,58 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-06-08 00:00:00 +03:00
19
+ date: 2011-07-22 00:00:00 +03:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
23
23
  type: :runtime
24
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ name: sunrise-core
34
+ version_requirements: *id001
35
+ prerelease: false
36
+ - !ruby/object:Gem::Dependency
37
+ type: :runtime
38
+ requirement: &id002 !ruby/object:Gem::Requirement
25
39
  none: false
26
40
  requirements:
27
41
  - - ~>
28
42
  - !ruby/object:Gem::Version
29
- hash: 23
43
+ hash: 21
30
44
  segments:
31
45
  - 3
32
46
  - 0
33
- - 8
34
- version: 3.0.8
47
+ - 9
48
+ version: 3.0.9
35
49
  name: rails
36
- version_requirements: *id001
50
+ version_requirements: *id002
37
51
  prerelease: false
38
52
  - !ruby/object:Gem::Dependency
39
53
  type: :runtime
40
- requirement: &id002 !ruby/object:Gem::Requirement
54
+ requirement: &id003 !ruby/object:Gem::Requirement
41
55
  none: false
42
56
  requirements:
43
57
  - - ~>
44
58
  - !ruby/object:Gem::Version
45
- hash: 15
59
+ hash: 3
46
60
  segments:
47
61
  - 1
48
- - 4
49
- - 4
50
- version: 1.4.4
62
+ - 5
63
+ - 0
64
+ version: 1.5.0
51
65
  name: nokogiri
52
- version_requirements: *id002
66
+ version_requirements: *id003
53
67
  prerelease: false
54
68
  - !ruby/object:Gem::Dependency
55
69
  type: :runtime
56
- requirement: &id003 !ruby/object:Gem::Requirement
70
+ requirement: &id004 !ruby/object:Gem::Requirement
57
71
  none: false
58
72
  requirements:
59
73
  - - ~>
@@ -65,27 +79,27 @@ dependencies:
65
79
  - 2
66
80
  version: 1.2.2
67
81
  name: inherited_resources
68
- version_requirements: *id003
82
+ version_requirements: *id004
69
83
  prerelease: false
70
84
  - !ruby/object:Gem::Dependency
71
85
  type: :runtime
72
- requirement: &id004 !ruby/object:Gem::Requirement
86
+ requirement: &id005 !ruby/object:Gem::Requirement
73
87
  none: false
74
88
  requirements:
75
89
  - - ~>
76
90
  - !ruby/object:Gem::Version
77
- hash: 21
91
+ hash: 29
78
92
  segments:
79
93
  - 2
80
94
  - 3
81
- - 11
82
- version: 2.3.11
95
+ - 15
96
+ version: 2.3.15
83
97
  name: paperclip
84
- version_requirements: *id004
98
+ version_requirements: *id005
85
99
  prerelease: false
86
100
  - !ruby/object:Gem::Dependency
87
101
  type: :runtime
88
- requirement: &id005 !ruby/object:Gem::Requirement
102
+ requirement: &id006 !ruby/object:Gem::Requirement
89
103
  none: false
90
104
  requirements:
91
105
  - - ~>
@@ -96,11 +110,11 @@ dependencies:
96
110
  - 16
97
111
  version: "1.16"
98
112
  name: mime-types
99
- version_requirements: *id005
113
+ version_requirements: *id006
100
114
  prerelease: false
101
115
  - !ruby/object:Gem::Dependency
102
116
  type: :runtime
103
- requirement: &id006 !ruby/object:Gem::Requirement
117
+ requirement: &id007 !ruby/object:Gem::Requirement
104
118
  none: false
105
119
  requirements:
106
120
  - - ~>
@@ -112,11 +126,11 @@ dependencies:
112
126
  - 4
113
127
  version: 0.12.4
114
128
  name: kaminari
115
- version_requirements: *id006
129
+ version_requirements: *id007
116
130
  prerelease: false
117
131
  - !ruby/object:Gem::Dependency
118
132
  type: :runtime
119
- requirement: &id007 !ruby/object:Gem::Requirement
133
+ requirement: &id008 !ruby/object:Gem::Requirement
120
134
  none: false
121
135
  requirements:
122
136
  - - ~>
@@ -128,59 +142,75 @@ dependencies:
128
142
  - 5
129
143
  version: 1.6.5
130
144
  name: cancan
131
- version_requirements: *id007
145
+ version_requirements: *id008
132
146
  prerelease: false
133
147
  - !ruby/object:Gem::Dependency
134
148
  type: :runtime
135
- requirement: &id008 !ruby/object:Gem::Requirement
149
+ requirement: &id009 !ruby/object:Gem::Requirement
136
150
  none: false
137
151
  requirements:
138
152
  - - ~>
139
153
  - !ruby/object:Gem::Version
140
- hash: 31
154
+ hash: 29
141
155
  segments:
142
156
  - 0
143
157
  - 1
144
- - 2
145
- version: 0.1.2
158
+ - 3
159
+ version: 0.1.3
146
160
  name: cancan_namespace
147
- version_requirements: *id008
161
+ version_requirements: *id009
148
162
  prerelease: false
149
163
  - !ruby/object:Gem::Dependency
150
164
  type: :runtime
151
- requirement: &id009 !ruby/object:Gem::Requirement
165
+ requirement: &id010 !ruby/object:Gem::Requirement
152
166
  none: false
153
167
  requirements:
154
168
  - - ~>
155
169
  - !ruby/object:Gem::Version
156
- hash: 19
170
+ hash: 3
157
171
  segments:
158
172
  - 1
159
- - 3
160
173
  - 4
161
- version: 1.3.4
174
+ - 2
175
+ version: 1.4.2
162
176
  name: devise
163
- version_requirements: *id009
177
+ version_requirements: *id010
164
178
  prerelease: false
165
179
  - !ruby/object:Gem::Dependency
166
180
  type: :runtime
167
- requirement: &id010 !ruby/object:Gem::Requirement
181
+ requirement: &id011 !ruby/object:Gem::Requirement
168
182
  none: false
169
183
  requirements:
170
184
  - - ~>
171
185
  - !ruby/object:Gem::Version
172
- hash: 7
186
+ hash: 3
173
187
  segments:
174
188
  - 1
175
189
  - 4
176
- - 0
177
- version: 1.4.0
190
+ - 2
191
+ version: 1.4.2
178
192
  name: simple_form
179
- version_requirements: *id010
193
+ version_requirements: *id011
180
194
  prerelease: false
181
195
  - !ruby/object:Gem::Dependency
182
196
  type: :runtime
183
- requirement: &id011 !ruby/object:Gem::Requirement
197
+ requirement: &id012 !ruby/object:Gem::Requirement
198
+ none: false
199
+ requirements:
200
+ - - ~>
201
+ - !ruby/object:Gem::Version
202
+ hash: 13
203
+ segments:
204
+ - 2
205
+ - 0
206
+ - 1
207
+ version: 2.0.1
208
+ name: awesome_nested_set
209
+ version_requirements: *id012
210
+ prerelease: false
211
+ - !ruby/object:Gem::Dependency
212
+ type: :runtime
213
+ requirement: &id013 !ruby/object:Gem::Requirement
184
214
  none: false
185
215
  requirements:
186
216
  - - ">="
@@ -189,8 +219,746 @@ dependencies:
189
219
  segments:
190
220
  - 0
191
221
  version: "0"
222
+ name: ckeditor
223
+ version_requirements: *id013
224
+ prerelease: false
225
+ - !ruby/object:Gem::Dependency
226
+ type: :runtime
227
+ requirement: &id014 !ruby/object:Gem::Requirement
228
+ none: false
229
+ requirements:
230
+ - - ~>
231
+ - !ruby/object:Gem::Version
232
+ hash: 19
233
+ segments:
234
+ - 0
235
+ - 1
236
+ - 4
237
+ version: 0.1.4
238
+ name: galetahub-enum_field
239
+ version_requirements: *id014
240
+ prerelease: false
241
+ - !ruby/object:Gem::Dependency
242
+ type: :runtime
243
+ requirement: &id015 !ruby/object:Gem::Requirement
244
+ none: false
245
+ requirements:
246
+ - - ~>
247
+ - !ruby/object:Gem::Version
248
+ hash: 23
249
+ segments:
250
+ - 1
251
+ - 0
252
+ - 0
253
+ version: 1.0.0
254
+ name: galetahub-salty_slugs
255
+ version_requirements: *id015
256
+ prerelease: false
257
+ - !ruby/object:Gem::Dependency
258
+ type: :runtime
259
+ requirement: &id016 !ruby/object:Gem::Requirement
260
+ none: false
261
+ requirements:
262
+ - - ~>
263
+ - !ruby/object:Gem::Version
264
+ hash: 31
265
+ segments:
266
+ - 0
267
+ - 1
268
+ - 2
269
+ version: 0.1.2
192
270
  name: sunrise-file-upload
193
- version_requirements: *id011
271
+ version_requirements: *id016
272
+ prerelease: false
273
+ - !ruby/object:Gem::Dependency
274
+ type: :development
275
+ requirement: &id017 !ruby/object:Gem::Requirement
276
+ none: false
277
+ requirements:
278
+ - - "="
279
+ - !ruby/object:Gem::Version
280
+ hash: 21
281
+ segments:
282
+ - 2
283
+ - 6
284
+ - 1
285
+ version: 2.6.1
286
+ name: rspec-rails
287
+ version_requirements: *id017
288
+ prerelease: false
289
+ - !ruby/object:Gem::Dependency
290
+ type: :development
291
+ requirement: &id018 !ruby/object:Gem::Requirement
292
+ none: false
293
+ requirements:
294
+ - - "="
295
+ - !ruby/object:Gem::Version
296
+ hash: 11
297
+ segments:
298
+ - 1
299
+ - 6
300
+ - 2
301
+ version: 1.6.2
302
+ name: jeweler
303
+ version_requirements: *id018
304
+ prerelease: false
305
+ - !ruby/object:Gem::Dependency
306
+ type: :development
307
+ requirement: &id019 !ruby/object:Gem::Requirement
308
+ none: false
309
+ requirements:
310
+ - - ~>
311
+ - !ruby/object:Gem::Version
312
+ hash: 29
313
+ segments:
314
+ - 3
315
+ - 6
316
+ - 1
317
+ version: 3.6.1
318
+ name: rdoc
319
+ version_requirements: *id019
320
+ prerelease: false
321
+ - !ruby/object:Gem::Dependency
322
+ type: :development
323
+ requirement: &id020 !ruby/object:Gem::Requirement
324
+ none: false
325
+ requirements:
326
+ - - ~>
327
+ - !ruby/object:Gem::Version
328
+ hash: 3
329
+ segments:
330
+ - 0
331
+ - 2
332
+ - 10
333
+ version: 0.2.10
334
+ name: mysql2
335
+ version_requirements: *id020
336
+ prerelease: false
337
+ - !ruby/object:Gem::Dependency
338
+ type: :development
339
+ requirement: &id021 !ruby/object:Gem::Requirement
340
+ none: false
341
+ requirements:
342
+ - - ~>
343
+ - !ruby/object:Gem::Version
344
+ hash: 23
345
+ segments:
346
+ - 1
347
+ - 0
348
+ - 0
349
+ version: 1.0.0
350
+ name: capybara
351
+ version_requirements: *id021
352
+ prerelease: false
353
+ - !ruby/object:Gem::Dependency
354
+ type: :development
355
+ requirement: &id022 !ruby/object:Gem::Requirement
356
+ none: false
357
+ requirements:
358
+ - - "="
359
+ - !ruby/object:Gem::Version
360
+ hash: 21
361
+ segments:
362
+ - 2
363
+ - 6
364
+ - 1
365
+ version: 2.6.1
366
+ name: rspec-rails
367
+ version_requirements: *id022
368
+ prerelease: false
369
+ - !ruby/object:Gem::Dependency
370
+ type: :development
371
+ requirement: &id023 !ruby/object:Gem::Requirement
372
+ none: false
373
+ requirements:
374
+ - - "="
375
+ - !ruby/object:Gem::Version
376
+ hash: 11
377
+ segments:
378
+ - 1
379
+ - 6
380
+ - 2
381
+ version: 1.6.2
382
+ name: jeweler
383
+ version_requirements: *id023
384
+ prerelease: false
385
+ - !ruby/object:Gem::Dependency
386
+ type: :development
387
+ requirement: &id024 !ruby/object:Gem::Requirement
388
+ none: false
389
+ requirements:
390
+ - - ~>
391
+ - !ruby/object:Gem::Version
392
+ hash: 29
393
+ segments:
394
+ - 3
395
+ - 6
396
+ - 1
397
+ version: 3.6.1
398
+ name: rdoc
399
+ version_requirements: *id024
400
+ prerelease: false
401
+ - !ruby/object:Gem::Dependency
402
+ type: :development
403
+ requirement: &id025 !ruby/object:Gem::Requirement
404
+ none: false
405
+ requirements:
406
+ - - ~>
407
+ - !ruby/object:Gem::Version
408
+ hash: 3
409
+ segments:
410
+ - 0
411
+ - 2
412
+ - 10
413
+ version: 0.2.10
414
+ name: mysql2
415
+ version_requirements: *id025
416
+ prerelease: false
417
+ - !ruby/object:Gem::Dependency
418
+ type: :development
419
+ requirement: &id026 !ruby/object:Gem::Requirement
420
+ none: false
421
+ requirements:
422
+ - - ~>
423
+ - !ruby/object:Gem::Version
424
+ hash: 23
425
+ segments:
426
+ - 1
427
+ - 0
428
+ - 0
429
+ version: 1.0.0
430
+ name: capybara
431
+ version_requirements: *id026
432
+ prerelease: false
433
+ - !ruby/object:Gem::Dependency
434
+ type: :development
435
+ requirement: &id027 !ruby/object:Gem::Requirement
436
+ none: false
437
+ requirements:
438
+ - - ">="
439
+ - !ruby/object:Gem::Version
440
+ hash: 3
441
+ segments:
442
+ - 0
443
+ version: "0"
444
+ name: database_cleaner
445
+ version_requirements: *id027
446
+ prerelease: false
447
+ - !ruby/object:Gem::Dependency
448
+ type: :development
449
+ requirement: &id028 !ruby/object:Gem::Requirement
450
+ none: false
451
+ requirements:
452
+ - - ">="
453
+ - !ruby/object:Gem::Version
454
+ hash: 3
455
+ segments:
456
+ - 0
457
+ version: "0"
458
+ name: factory_girl
459
+ version_requirements: *id028
460
+ prerelease: false
461
+ - !ruby/object:Gem::Dependency
462
+ type: :development
463
+ requirement: &id029 !ruby/object:Gem::Requirement
464
+ none: false
465
+ requirements:
466
+ - - ">="
467
+ - !ruby/object:Gem::Version
468
+ hash: 3
469
+ segments:
470
+ - 0
471
+ version: "0"
472
+ name: fuubar
473
+ version_requirements: *id029
474
+ prerelease: false
475
+ - !ruby/object:Gem::Dependency
476
+ type: :development
477
+ requirement: &id030 !ruby/object:Gem::Requirement
478
+ none: false
479
+ requirements:
480
+ - - "="
481
+ - !ruby/object:Gem::Version
482
+ hash: 21
483
+ segments:
484
+ - 2
485
+ - 6
486
+ - 1
487
+ version: 2.6.1
488
+ name: rspec-rails
489
+ version_requirements: *id030
490
+ prerelease: false
491
+ - !ruby/object:Gem::Dependency
492
+ type: :development
493
+ requirement: &id031 !ruby/object:Gem::Requirement
494
+ none: false
495
+ requirements:
496
+ - - "="
497
+ - !ruby/object:Gem::Version
498
+ hash: 11
499
+ segments:
500
+ - 1
501
+ - 6
502
+ - 2
503
+ version: 1.6.2
504
+ name: jeweler
505
+ version_requirements: *id031
506
+ prerelease: false
507
+ - !ruby/object:Gem::Dependency
508
+ type: :development
509
+ requirement: &id032 !ruby/object:Gem::Requirement
510
+ none: false
511
+ requirements:
512
+ - - ~>
513
+ - !ruby/object:Gem::Version
514
+ hash: 29
515
+ segments:
516
+ - 3
517
+ - 6
518
+ - 1
519
+ version: 3.6.1
520
+ name: rdoc
521
+ version_requirements: *id032
522
+ prerelease: false
523
+ - !ruby/object:Gem::Dependency
524
+ type: :development
525
+ requirement: &id033 !ruby/object:Gem::Requirement
526
+ none: false
527
+ requirements:
528
+ - - ~>
529
+ - !ruby/object:Gem::Version
530
+ hash: 3
531
+ segments:
532
+ - 0
533
+ - 2
534
+ - 10
535
+ version: 0.2.10
536
+ name: mysql2
537
+ version_requirements: *id033
538
+ prerelease: false
539
+ - !ruby/object:Gem::Dependency
540
+ type: :development
541
+ requirement: &id034 !ruby/object:Gem::Requirement
542
+ none: false
543
+ requirements:
544
+ - - ~>
545
+ - !ruby/object:Gem::Version
546
+ hash: 23
547
+ segments:
548
+ - 1
549
+ - 0
550
+ - 0
551
+ version: 1.0.0
552
+ name: capybara
553
+ version_requirements: *id034
554
+ prerelease: false
555
+ - !ruby/object:Gem::Dependency
556
+ type: :development
557
+ requirement: &id035 !ruby/object:Gem::Requirement
558
+ none: false
559
+ requirements:
560
+ - - ">="
561
+ - !ruby/object:Gem::Version
562
+ hash: 3
563
+ segments:
564
+ - 0
565
+ version: "0"
566
+ name: database_cleaner
567
+ version_requirements: *id035
568
+ prerelease: false
569
+ - !ruby/object:Gem::Dependency
570
+ type: :development
571
+ requirement: &id036 !ruby/object:Gem::Requirement
572
+ none: false
573
+ requirements:
574
+ - - ">="
575
+ - !ruby/object:Gem::Version
576
+ hash: 3
577
+ segments:
578
+ - 0
579
+ version: "0"
580
+ name: factory_girl
581
+ version_requirements: *id036
582
+ prerelease: false
583
+ - !ruby/object:Gem::Dependency
584
+ type: :development
585
+ requirement: &id037 !ruby/object:Gem::Requirement
586
+ none: false
587
+ requirements:
588
+ - - ">="
589
+ - !ruby/object:Gem::Version
590
+ hash: 3
591
+ segments:
592
+ - 0
593
+ version: "0"
594
+ name: fuubar
595
+ version_requirements: *id037
596
+ prerelease: false
597
+ - !ruby/object:Gem::Dependency
598
+ type: :development
599
+ requirement: &id038 !ruby/object:Gem::Requirement
600
+ none: false
601
+ requirements:
602
+ - - "="
603
+ - !ruby/object:Gem::Version
604
+ hash: 21
605
+ segments:
606
+ - 2
607
+ - 6
608
+ - 1
609
+ version: 2.6.1
610
+ name: rspec-rails
611
+ version_requirements: *id038
612
+ prerelease: false
613
+ - !ruby/object:Gem::Dependency
614
+ type: :development
615
+ requirement: &id039 !ruby/object:Gem::Requirement
616
+ none: false
617
+ requirements:
618
+ - - "="
619
+ - !ruby/object:Gem::Version
620
+ hash: 11
621
+ segments:
622
+ - 1
623
+ - 6
624
+ - 2
625
+ version: 1.6.2
626
+ name: jeweler
627
+ version_requirements: *id039
628
+ prerelease: false
629
+ - !ruby/object:Gem::Dependency
630
+ type: :development
631
+ requirement: &id040 !ruby/object:Gem::Requirement
632
+ none: false
633
+ requirements:
634
+ - - ~>
635
+ - !ruby/object:Gem::Version
636
+ hash: 29
637
+ segments:
638
+ - 3
639
+ - 6
640
+ - 1
641
+ version: 3.6.1
642
+ name: rdoc
643
+ version_requirements: *id040
644
+ prerelease: false
645
+ - !ruby/object:Gem::Dependency
646
+ type: :development
647
+ requirement: &id041 !ruby/object:Gem::Requirement
648
+ none: false
649
+ requirements:
650
+ - - ~>
651
+ - !ruby/object:Gem::Version
652
+ hash: 3
653
+ segments:
654
+ - 0
655
+ - 2
656
+ - 10
657
+ version: 0.2.10
658
+ name: mysql2
659
+ version_requirements: *id041
660
+ prerelease: false
661
+ - !ruby/object:Gem::Dependency
662
+ type: :development
663
+ requirement: &id042 !ruby/object:Gem::Requirement
664
+ none: false
665
+ requirements:
666
+ - - ~>
667
+ - !ruby/object:Gem::Version
668
+ hash: 23
669
+ segments:
670
+ - 1
671
+ - 0
672
+ - 0
673
+ version: 1.0.0
674
+ name: capybara
675
+ version_requirements: *id042
676
+ prerelease: false
677
+ - !ruby/object:Gem::Dependency
678
+ type: :development
679
+ requirement: &id043 !ruby/object:Gem::Requirement
680
+ none: false
681
+ requirements:
682
+ - - ">="
683
+ - !ruby/object:Gem::Version
684
+ hash: 3
685
+ segments:
686
+ - 0
687
+ version: "0"
688
+ name: database_cleaner
689
+ version_requirements: *id043
690
+ prerelease: false
691
+ - !ruby/object:Gem::Dependency
692
+ type: :development
693
+ requirement: &id044 !ruby/object:Gem::Requirement
694
+ none: false
695
+ requirements:
696
+ - - ">="
697
+ - !ruby/object:Gem::Version
698
+ hash: 3
699
+ segments:
700
+ - 0
701
+ version: "0"
702
+ name: factory_girl
703
+ version_requirements: *id044
704
+ prerelease: false
705
+ - !ruby/object:Gem::Dependency
706
+ type: :development
707
+ requirement: &id045 !ruby/object:Gem::Requirement
708
+ none: false
709
+ requirements:
710
+ - - ">="
711
+ - !ruby/object:Gem::Version
712
+ hash: 3
713
+ segments:
714
+ - 0
715
+ version: "0"
716
+ name: fuubar
717
+ version_requirements: *id045
718
+ prerelease: false
719
+ - !ruby/object:Gem::Dependency
720
+ type: :development
721
+ requirement: &id046 !ruby/object:Gem::Requirement
722
+ none: false
723
+ requirements:
724
+ - - "="
725
+ - !ruby/object:Gem::Version
726
+ hash: 21
727
+ segments:
728
+ - 2
729
+ - 6
730
+ - 1
731
+ version: 2.6.1
732
+ name: rspec-rails
733
+ version_requirements: *id046
734
+ prerelease: false
735
+ - !ruby/object:Gem::Dependency
736
+ type: :development
737
+ requirement: &id047 !ruby/object:Gem::Requirement
738
+ none: false
739
+ requirements:
740
+ - - "="
741
+ - !ruby/object:Gem::Version
742
+ hash: 11
743
+ segments:
744
+ - 1
745
+ - 6
746
+ - 2
747
+ version: 1.6.2
748
+ name: jeweler
749
+ version_requirements: *id047
750
+ prerelease: false
751
+ - !ruby/object:Gem::Dependency
752
+ type: :development
753
+ requirement: &id048 !ruby/object:Gem::Requirement
754
+ none: false
755
+ requirements:
756
+ - - ~>
757
+ - !ruby/object:Gem::Version
758
+ hash: 29
759
+ segments:
760
+ - 3
761
+ - 6
762
+ - 1
763
+ version: 3.6.1
764
+ name: rdoc
765
+ version_requirements: *id048
766
+ prerelease: false
767
+ - !ruby/object:Gem::Dependency
768
+ type: :development
769
+ requirement: &id049 !ruby/object:Gem::Requirement
770
+ none: false
771
+ requirements:
772
+ - - ~>
773
+ - !ruby/object:Gem::Version
774
+ hash: 3
775
+ segments:
776
+ - 0
777
+ - 2
778
+ - 10
779
+ version: 0.2.10
780
+ name: mysql2
781
+ version_requirements: *id049
782
+ prerelease: false
783
+ - !ruby/object:Gem::Dependency
784
+ type: :development
785
+ requirement: &id050 !ruby/object:Gem::Requirement
786
+ none: false
787
+ requirements:
788
+ - - ~>
789
+ - !ruby/object:Gem::Version
790
+ hash: 23
791
+ segments:
792
+ - 1
793
+ - 0
794
+ - 0
795
+ version: 1.0.0
796
+ name: capybara
797
+ version_requirements: *id050
798
+ prerelease: false
799
+ - !ruby/object:Gem::Dependency
800
+ type: :development
801
+ requirement: &id051 !ruby/object:Gem::Requirement
802
+ none: false
803
+ requirements:
804
+ - - ">="
805
+ - !ruby/object:Gem::Version
806
+ hash: 3
807
+ segments:
808
+ - 0
809
+ version: "0"
810
+ name: database_cleaner
811
+ version_requirements: *id051
812
+ prerelease: false
813
+ - !ruby/object:Gem::Dependency
814
+ type: :development
815
+ requirement: &id052 !ruby/object:Gem::Requirement
816
+ none: false
817
+ requirements:
818
+ - - ">="
819
+ - !ruby/object:Gem::Version
820
+ hash: 3
821
+ segments:
822
+ - 0
823
+ version: "0"
824
+ name: factory_girl
825
+ version_requirements: *id052
826
+ prerelease: false
827
+ - !ruby/object:Gem::Dependency
828
+ type: :development
829
+ requirement: &id053 !ruby/object:Gem::Requirement
830
+ none: false
831
+ requirements:
832
+ - - ">="
833
+ - !ruby/object:Gem::Version
834
+ hash: 3
835
+ segments:
836
+ - 0
837
+ version: "0"
838
+ name: fuubar
839
+ version_requirements: *id053
840
+ prerelease: false
841
+ - !ruby/object:Gem::Dependency
842
+ type: :development
843
+ requirement: &id054 !ruby/object:Gem::Requirement
844
+ none: false
845
+ requirements:
846
+ - - "="
847
+ - !ruby/object:Gem::Version
848
+ hash: 21
849
+ segments:
850
+ - 2
851
+ - 6
852
+ - 1
853
+ version: 2.6.1
854
+ name: rspec-rails
855
+ version_requirements: *id054
856
+ prerelease: false
857
+ - !ruby/object:Gem::Dependency
858
+ type: :development
859
+ requirement: &id055 !ruby/object:Gem::Requirement
860
+ none: false
861
+ requirements:
862
+ - - "="
863
+ - !ruby/object:Gem::Version
864
+ hash: 11
865
+ segments:
866
+ - 1
867
+ - 6
868
+ - 2
869
+ version: 1.6.2
870
+ name: jeweler
871
+ version_requirements: *id055
872
+ prerelease: false
873
+ - !ruby/object:Gem::Dependency
874
+ type: :development
875
+ requirement: &id056 !ruby/object:Gem::Requirement
876
+ none: false
877
+ requirements:
878
+ - - ~>
879
+ - !ruby/object:Gem::Version
880
+ hash: 29
881
+ segments:
882
+ - 3
883
+ - 6
884
+ - 1
885
+ version: 3.6.1
886
+ name: rdoc
887
+ version_requirements: *id056
888
+ prerelease: false
889
+ - !ruby/object:Gem::Dependency
890
+ type: :development
891
+ requirement: &id057 !ruby/object:Gem::Requirement
892
+ none: false
893
+ requirements:
894
+ - - ~>
895
+ - !ruby/object:Gem::Version
896
+ hash: 3
897
+ segments:
898
+ - 0
899
+ - 2
900
+ - 10
901
+ version: 0.2.10
902
+ name: mysql2
903
+ version_requirements: *id057
904
+ prerelease: false
905
+ - !ruby/object:Gem::Dependency
906
+ type: :development
907
+ requirement: &id058 !ruby/object:Gem::Requirement
908
+ none: false
909
+ requirements:
910
+ - - ~>
911
+ - !ruby/object:Gem::Version
912
+ hash: 23
913
+ segments:
914
+ - 1
915
+ - 0
916
+ - 0
917
+ version: 1.0.0
918
+ name: capybara
919
+ version_requirements: *id058
920
+ prerelease: false
921
+ - !ruby/object:Gem::Dependency
922
+ type: :development
923
+ requirement: &id059 !ruby/object:Gem::Requirement
924
+ none: false
925
+ requirements:
926
+ - - ">="
927
+ - !ruby/object:Gem::Version
928
+ hash: 3
929
+ segments:
930
+ - 0
931
+ version: "0"
932
+ name: database_cleaner
933
+ version_requirements: *id059
934
+ prerelease: false
935
+ - !ruby/object:Gem::Dependency
936
+ type: :development
937
+ requirement: &id060 !ruby/object:Gem::Requirement
938
+ none: false
939
+ requirements:
940
+ - - ">="
941
+ - !ruby/object:Gem::Version
942
+ hash: 3
943
+ segments:
944
+ - 0
945
+ version: "0"
946
+ name: factory_girl
947
+ version_requirements: *id060
948
+ prerelease: false
949
+ - !ruby/object:Gem::Dependency
950
+ type: :development
951
+ requirement: &id061 !ruby/object:Gem::Requirement
952
+ none: false
953
+ requirements:
954
+ - - ">="
955
+ - !ruby/object:Gem::Version
956
+ hash: 3
957
+ segments:
958
+ - 0
959
+ version: "0"
960
+ name: fuubar
961
+ version_requirements: *id061
194
962
  prerelease: false
195
963
  description: Sunrise is a Aimbulance CMS
196
964
  email: galeta.igor@gmail.com
@@ -201,6 +969,7 @@ extensions: []
201
969
  extra_rdoc_files:
202
970
  - README.rdoc
203
971
  files:
972
+ - MIT-LICENSE
204
973
  - README.rdoc
205
974
  - Rakefile
206
975
  - app/controllers/manage/assets_controller.rb
@@ -210,6 +979,15 @@ files:
210
979
  - app/controllers/manage/structures_controller.rb
211
980
  - app/controllers/manage/users_controller.rb
212
981
  - app/controllers/pages_controller.rb
982
+ - app/sweepers/page_sweeper.rb
983
+ - app/sweepers/structure_sweeper.rb
984
+ - app/views/kaminari/manage/_first_page.html.erb
985
+ - app/views/kaminari/manage/_gap.html.erb
986
+ - app/views/kaminari/manage/_last_page.html.erb
987
+ - app/views/kaminari/manage/_next_page.html.erb
988
+ - app/views/kaminari/manage/_page.html.erb
989
+ - app/views/kaminari/manage/_paginator.html.erb
990
+ - app/views/kaminari/manage/_prev_page.html.erb
213
991
  - app/views/layouts/manage.html.erb
214
992
  - app/views/manage/fileupload/_asset.html.erb
215
993
  - app/views/manage/fileupload/_container.html.erb
@@ -427,9 +1205,6 @@ files:
427
1205
  - lib/generators/sunrise/templates/stylesheets/smoothness/images/ui-icons_888888_256x240.png
428
1206
  - lib/generators/sunrise/templates/stylesheets/smoothness/images/ui-icons_cd0a0a_256x240.png
429
1207
  - lib/generators/sunrise/templates/stylesheets/smoothness/jquery-ui-1.8.13.custom.css
430
- - lib/generators/sunrise/templates/sweepers/page_sweeper.rb
431
- - lib/generators/sunrise/templates/sweepers/structure_sweeper.rb
432
- - lib/generators/sunrise/templates/sweepers/user_sweeper.rb
433
1208
  - lib/generators/sunrise/templates/views/layouts/application.html.erb
434
1209
  - lib/generators/sunrise/templates/views/pages/show.html.erb
435
1210
  - lib/generators/sunrise/templates/views/shared/_notice.html.erb
@@ -452,9 +1227,12 @@ files:
452
1227
  - lib/sunrise/models/structure.rb
453
1228
  - lib/sunrise/models/structure_type.rb
454
1229
  - lib/sunrise/models/user.rb
1230
+ - lib/sunrise/nested_set/depth.rb
1231
+ - lib/sunrise/nested_set/descendants.rb
455
1232
  - lib/sunrise/plugin.rb
456
1233
  - lib/sunrise/plugins.rb
457
1234
  - lib/sunrise/system_settings.rb
1235
+ - lib/sunrise/utils.rb
458
1236
  - lib/sunrise/utils/accessible_attributes.rb
459
1237
  - lib/sunrise/utils/header.rb
460
1238
  - lib/sunrise/utils/i18n_backend.rb