sunrise-core 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
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