comfortable_mexican_sofa 1.3.8 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. data/Gemfile +1 -1
  2. data/README.md +1 -1
  3. data/VERSION +1 -1
  4. data/app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-bg_inset-soft_95_fef1ec_1x100.png +0 -0
  5. data/app/assets/javascripts/comfortable_mexican_sofa/application.js +38 -25
  6. data/app/assets/javascripts/comfortable_mexican_sofa/jquery_ui.js +176 -174
  7. data/app/assets/stylesheets/comfortable_mexican_sofa/content.css +142 -32
  8. data/app/assets/stylesheets/comfortable_mexican_sofa/form.css +12 -0
  9. data/app/assets/stylesheets/comfortable_mexican_sofa/jquery_ui.css +16 -16
  10. data/app/assets/stylesheets/comfortable_mexican_sofa/structure.css +3 -2
  11. data/app/assets/stylesheets/comfortable_mexican_sofa/widgets.css +2 -1
  12. data/app/controllers/cms_admin/categories_controller.rb +33 -0
  13. data/app/controllers/cms_admin/files_controller.rb +82 -0
  14. data/app/controllers/cms_admin/pages_controller.rb +8 -4
  15. data/app/controllers/cms_admin/snippets_controller.rb +1 -1
  16. data/app/models/cms/categorization.rb +17 -0
  17. data/app/models/cms/category.rb +22 -0
  18. data/app/models/cms/{upload.rb → file.rb} +17 -3
  19. data/app/models/cms/page.rb +1 -0
  20. data/app/models/cms/site.rb +1 -1
  21. data/app/models/cms/snippet.rb +2 -0
  22. data/app/views/cms_admin/categories/_categories.html.erb +6 -0
  23. data/app/views/cms_admin/categories/_edit.html.erb +7 -0
  24. data/app/views/cms_admin/categories/_form.html.erb +12 -0
  25. data/app/views/cms_admin/categories/_index.html.erb +31 -0
  26. data/app/views/cms_admin/categories/_show.html.erb +16 -0
  27. data/app/views/cms_admin/categories/create.js.erb +7 -0
  28. data/app/views/cms_admin/categories/destroy.js.erb +3 -0
  29. data/app/views/cms_admin/categories/edit.js.erb +3 -0
  30. data/app/views/cms_admin/categories/update.js.erb +6 -0
  31. data/app/views/cms_admin/{uploads → files}/_file.html.erb +1 -1
  32. data/app/views/cms_admin/files/_form.html.erb +15 -0
  33. data/app/views/cms_admin/files/_index.html.erb +13 -0
  34. data/app/views/cms_admin/files/create.js.erb +3 -0
  35. data/app/views/cms_admin/files/destroy.js.erb +3 -0
  36. data/app/views/cms_admin/files/edit.html.erb +5 -0
  37. data/app/views/cms_admin/files/index.html.erb +25 -0
  38. data/app/views/cms_admin/files/new.html.erb +5 -0
  39. data/app/views/cms_admin/layouts/_form.html.erb +1 -1
  40. data/app/views/cms_admin/pages/_form.html.erb +3 -1
  41. data/app/views/cms_admin/pages/_index_branch.html.erb +6 -4
  42. data/app/views/cms_admin/pages/index.html.erb +2 -0
  43. data/app/views/cms_admin/snippets/_form.html.erb +3 -1
  44. data/app/views/cms_admin/snippets/index.html.erb +3 -0
  45. data/app/views/layouts/cms_admin/_head.html.erb +2 -6
  46. data/app/views/layouts/cms_admin/_left.html.erb +1 -0
  47. data/comfortable_mexican_sofa.gemspec +44 -21
  48. data/config/database.yml +2 -8
  49. data/config/locales/en.yml +35 -2
  50. data/config/locales/es.yml +38 -5
  51. data/config/routes.rb +3 -2
  52. data/db/migrate/01_create_cms.rb +23 -4
  53. data/db/migrate/upgrades/05_upgrade_to_1_4_0.rb +33 -0
  54. data/lib/comfortable_mexican_sofa.rb +6 -5
  55. data/lib/comfortable_mexican_sofa/{acts_as_tree.rb → extensions/acts_as_tree.rb} +0 -0
  56. data/lib/comfortable_mexican_sofa/{has_revisions.rb → extensions/has_revisions.rb} +0 -0
  57. data/lib/comfortable_mexican_sofa/extensions/is_categorized.rb +45 -0
  58. data/lib/comfortable_mexican_sofa/{is_mirrored.rb → extensions/is_mirrored.rb} +0 -0
  59. data/lib/comfortable_mexican_sofa/{rails_extensions.rb → extensions/rails.rb} +0 -0
  60. data/lib/comfortable_mexican_sofa/tag.rb +2 -2
  61. data/lib/comfortable_mexican_sofa/tags/{upload.rb → file.rb} +6 -6
  62. data/test/fixtures/cms/categories.yml +3 -0
  63. data/test/fixtures/cms/categorizations.yml +3 -0
  64. data/test/fixtures/cms/{uploads.yml → files.yml} +3 -1
  65. data/test/functional/cms_admin/categories_controller_test.rb +70 -0
  66. data/test/functional/cms_admin/files_controller_test.rb +168 -0
  67. data/test/functional/cms_admin/pages_controller_test.rb +19 -1
  68. data/test/functional/cms_admin/snippets_controller_test.rb +18 -0
  69. data/test/unit/models/block_test.rb +1 -1
  70. data/test/unit/models/categorization_test.rb +76 -0
  71. data/test/unit/models/category_test.rb +39 -0
  72. data/test/unit/models/file_test.rb +33 -0
  73. data/test/unit/models/site_test.rb +9 -0
  74. data/test/unit/tags/asset_test.rb +1 -1
  75. data/test/unit/tags/field_datetime_test.rb +1 -1
  76. data/test/unit/tags/field_integer_test.rb +1 -1
  77. data/test/unit/tags/field_string_test.rb +1 -1
  78. data/test/unit/tags/field_text_test.rb +1 -1
  79. data/test/unit/tags/file_test.rb +67 -0
  80. data/test/unit/tags/helper_test.rb +1 -1
  81. data/test/unit/tags/page_datetime_test.rb +1 -1
  82. data/test/unit/tags/page_integer_test.rb +1 -1
  83. data/test/unit/tags/page_rich_text.rb +1 -1
  84. data/test/unit/tags/page_string_test.rb +1 -1
  85. data/test/unit/tags/page_text_test.rb +1 -1
  86. data/test/unit/tags/partial_test.rb +1 -1
  87. data/test/unit/tags/snippet_test.rb +1 -1
  88. metadata +49 -26
  89. data/app/assets/javascripts/comfortable_mexican_sofa/plupload/plupload.html5.js +0 -1
  90. data/app/assets/javascripts/comfortable_mexican_sofa/plupload/plupload.js +0 -2
  91. data/app/controllers/cms_admin/uploads_controller.rb +0 -29
  92. data/app/views/cms_admin/uploads/_index.html.erb +0 -10
  93. data/app/views/cms_admin/uploads/destroy.js.erb +0 -3
  94. data/test/functional/cms_admin/uploads_controller_test.rb +0 -26
  95. data/test/unit/models/upload_test.rb +0 -32
  96. data/test/unit/tags/upload_test.rb +0 -67
@@ -15,7 +15,25 @@ class CmsAdmin::PagesControllerTest < ActionController::TestCase
15
15
  assert_response :redirect
16
16
  assert_redirected_to :action => :new
17
17
  end
18
-
18
+
19
+ def test_get_index_with_category
20
+ category = Cms::Category.create!(:label => 'Test Category', :categorized_type => 'Cms::Page')
21
+ category.categorizations.create!(:categorized => cms_pages(:child))
22
+
23
+ get :index, :site_id => cms_sites(:default), :category => category.label
24
+ assert_response :success
25
+ assert assigns(:pages)
26
+ assert_equal 1, assigns(:pages).count
27
+ assert assigns(:pages).first.categories.member? category
28
+ end
29
+
30
+ def test_get_index_with_category_invalid
31
+ get :index, :site_id => cms_sites(:default), :category => 'invalid'
32
+ assert_response :success
33
+ assert assigns(:pages)
34
+ assert_equal 0, assigns(:pages).count
35
+ end
36
+
19
37
  def test_get_new
20
38
  site = cms_sites(:default)
21
39
  get :new, :site_id => site
@@ -15,6 +15,24 @@ class CmsAdmin::SnippetsControllerTest < ActionController::TestCase
15
15
  assert_response :redirect
16
16
  assert_redirected_to :action => :new
17
17
  end
18
+
19
+ def test_get_index_with_category
20
+ category = Cms::Category.create!(:label => 'Test Category', :categorized_type => 'Cms::Snippet')
21
+ category.categorizations.create!(:categorized => cms_snippets(:default))
22
+
23
+ get :index, :site_id => cms_sites(:default), :category => category.label
24
+ assert_response :success
25
+ assert assigns(:snippets)
26
+ assert_equal 1, assigns(:snippets).count
27
+ assert assigns(:snippets).first.categories.member? category
28
+ end
29
+
30
+ def test_get_index_with_category_invalid
31
+ get :index, :site_id => cms_sites(:default), :category => 'invalid'
32
+ assert_response :success
33
+ assert assigns(:snippets)
34
+ assert_equal 0, assigns(:snippets).count
35
+ end
18
36
 
19
37
  def test_get_new
20
38
  site = cms_sites(:default)
@@ -1,6 +1,6 @@
1
1
  require File.expand_path('../../test_helper', File.dirname(__FILE__))
2
2
 
3
- class BlockTest < ActiveSupport::TestCase
3
+ class CmsBlockTest < ActiveSupport::TestCase
4
4
 
5
5
  def test_fixtures_validity
6
6
  Cms::Block.all.each do |block|
@@ -0,0 +1,76 @@
1
+ require File.expand_path('../../test_helper', File.dirname(__FILE__))
2
+
3
+ class CmsCategorizationTest < ActiveSupport::TestCase
4
+
5
+ def test_fixtures_validity
6
+ Cms::Categorization.all.each do |categorization|
7
+ assert categorization.valid?, categorization.errors.full_messages.to_s
8
+ end
9
+ end
10
+
11
+ def test_validation
12
+ category = Cms::Categorization.new
13
+ assert category.invalid?
14
+ assert_has_errors_on category, [:categorized_type, :categorized_id]
15
+ end
16
+
17
+ def test_creation
18
+ assert_difference 'Cms::Categorization.count' do
19
+ categorization = cms_categories(:default).categorizations.create!(
20
+ :categorized => cms_snippets(:default)
21
+ )
22
+ end
23
+ end
24
+
25
+ def test_categorized_relationship
26
+ file = cms_files(:default)
27
+ assert file.respond_to?(:category_ids)
28
+ assert_equal 1, file.categories.count
29
+ assert_equal cms_categories(:default), file.categories.first
30
+
31
+ assert cms_snippets(:default).respond_to?(:category_ids)
32
+ assert_equal 0, cms_snippets(:default).categories.count
33
+ assert cms_pages(:default).respond_to?(:category_ids)
34
+ assert_equal 0, cms_pages(:default).categories.count
35
+ end
36
+
37
+ def test_categorized_destruction
38
+ file = cms_files(:default)
39
+ assert_difference ['Cms::File.count', 'Cms::Categorization.count'], -1 do
40
+ file.destroy
41
+ end
42
+ end
43
+
44
+ def test_categorized_syncing
45
+ snippet = cms_snippets(:default)
46
+ assert_equal 0, snippet.categories.count
47
+
48
+ snippet.update_attribute(:category_ids, {
49
+ cms_categories(:default).id => 1,
50
+ 'invalid' => 1
51
+ })
52
+ snippet.reload
53
+ assert_equal 1, snippet.categories.count
54
+
55
+ snippet.update_attribute(:category_ids, {
56
+ cms_categories(:default).id => 0,
57
+ 'invalid' => 0
58
+ })
59
+ snippet.reload
60
+ assert_equal 0, snippet.categories.count
61
+ end
62
+
63
+ def test_scope_for_category
64
+ category = cms_categories(:default)
65
+ assert_equal 1, Cms::File.for_category(category.label).count
66
+ assert_equal 0, Cms::File.for_category('invalid').count
67
+ assert_equal 1, Cms::File.for_category(category.label, 'invalid').count
68
+ assert_equal 1, Cms::File.for_category(nil).count
69
+
70
+ new_category = Cms::Category.create!(:label => 'Test Category', :categorized_type => 'Cms::File')
71
+ new_category.categorizations.create!(:categorized => cms_files(:default))
72
+ assert_equal 1, Cms::File.for_category(category.label, new_category.label).all.size
73
+ assert_equal 1, Cms::File.for_category(category.label, new_category.label).count(:distinct => true)
74
+ end
75
+
76
+ end
@@ -0,0 +1,39 @@
1
+ require File.expand_path('../../test_helper', File.dirname(__FILE__))
2
+
3
+ class CmsCategoryTest < ActiveSupport::TestCase
4
+
5
+ def test_fixtures_validity
6
+ Cms::Category.all.each do |category|
7
+ assert category.valid?, category.errors.full_messages.to_s
8
+ end
9
+ end
10
+
11
+ def test_validation
12
+ category = Cms::Category.new
13
+ assert category.invalid?
14
+ assert_has_errors_on category, [:label, :categorized_type]
15
+ end
16
+
17
+ def test_creation
18
+ assert_difference 'Cms::Category.count' do
19
+ Cms::Category.create(
20
+ :label => 'Test Category',
21
+ :categorized_type => 'Cms::Snippet'
22
+ )
23
+ end
24
+ end
25
+
26
+ def test_destruction
27
+ category = cms_categories(:default)
28
+ assert_equal 1, category.categorizations.count
29
+ assert_difference ['Cms::Category.count', 'Cms::Categorization.count'], -1 do
30
+ category.destroy
31
+ end
32
+ end
33
+
34
+ def test_scope_of_type
35
+ assert_equal 1, Cms::Category.of_type('Cms::File').count
36
+ assert_equal 0, Cms::Category.of_type('Invalid').count
37
+ end
38
+
39
+ end
@@ -0,0 +1,33 @@
1
+ require File.expand_path('../../test_helper', File.dirname(__FILE__))
2
+
3
+ class CmsFileTest < ActiveSupport::TestCase
4
+
5
+ def test_fixtures_validity
6
+ Cms::File.all.each do |file|
7
+ assert file.valid?, file.errors.full_messages.to_s
8
+ end
9
+ end
10
+
11
+ def test_validations
12
+ assert_no_difference 'Cms::File.count' do
13
+ file = Cms::File.create
14
+ assert file.errors.present?
15
+ assert_has_errors_on file, [:file_file_name]
16
+ end
17
+ end
18
+
19
+ def test_create
20
+ assert_difference 'Cms::File.count' do
21
+ file = cms_sites(:default).files.create(
22
+ :file => fixture_file_upload('files/valid_image.jpg')
23
+ )
24
+ assert_equal 'Valid Image', file.label
25
+ end
26
+ end
27
+
28
+ def test_create_failure
29
+ assert_no_difference 'Cms::File.count' do
30
+ cms_sites(:default).files.create(:file => '')
31
+ end
32
+ end
33
+ end
@@ -51,6 +51,15 @@ class CmsSiteTest < ActiveSupport::TestCase
51
51
  assert_equal '', site.path
52
52
  end
53
53
 
54
+ def test_creation
55
+ assert_difference 'Cms::Site.count' do
56
+ Cms::Site.create!(
57
+ :label => 'Test Site',
58
+ :hostname => 'test.test'
59
+ )
60
+ end
61
+ end
62
+
54
63
  def test_cascading_destroy
55
64
  assert_difference 'Cms::Site.count', -1 do
56
65
  assert_difference 'Cms::Layout.count', -3 do
@@ -1,6 +1,6 @@
1
1
  require File.expand_path('../../test_helper', File.dirname(__FILE__))
2
2
 
3
- class AssetTest < ActiveSupport::TestCase
3
+ class AssetTagTest < ActiveSupport::TestCase
4
4
 
5
5
  def test_initialize_tag
6
6
  assert tag = ComfortableMexicanSofa::Tag::Asset.initialize_tag(
@@ -1,6 +1,6 @@
1
1
  require File.expand_path('../../test_helper', File.dirname(__FILE__))
2
2
 
3
- class FieldDateTimeTest < ActiveSupport::TestCase
3
+ class FieldDateTimeTagTest < ActiveSupport::TestCase
4
4
 
5
5
  def test_initialize_tag
6
6
  assert tag = ComfortableMexicanSofa::Tag::FieldDateTime.initialize_tag(
@@ -1,6 +1,6 @@
1
1
  require File.expand_path('../../test_helper', File.dirname(__FILE__))
2
2
 
3
- class FieldIntegerTest < ActiveSupport::TestCase
3
+ class FieldIntegerTagTest < ActiveSupport::TestCase
4
4
 
5
5
  def test_initialize_tag
6
6
  assert tag = ComfortableMexicanSofa::Tag::FieldInteger.initialize_tag(
@@ -1,6 +1,6 @@
1
1
  require File.expand_path('../../test_helper', File.dirname(__FILE__))
2
2
 
3
- class FieldStringTest < ActiveSupport::TestCase
3
+ class FieldStringTagTest < ActiveSupport::TestCase
4
4
 
5
5
  def test_initialize_tag
6
6
  assert tag = ComfortableMexicanSofa::Tag::FieldString.initialize_tag(
@@ -1,6 +1,6 @@
1
1
  require File.expand_path('../../test_helper', File.dirname(__FILE__))
2
2
 
3
- class FieldTextTest < ActiveSupport::TestCase
3
+ class FieldTextTagTest < ActiveSupport::TestCase
4
4
 
5
5
  def test_initialize_tag
6
6
  assert tag = ComfortableMexicanSofa::Tag::FieldText.initialize_tag(
@@ -0,0 +1,67 @@
1
+ require File.expand_path('../../test_helper', File.dirname(__FILE__))
2
+
3
+ class FileTagTest < ActiveSupport::TestCase
4
+
5
+ def test_initialize_tag
6
+ assert tag = ComfortableMexicanSofa::Tag::File.initialize_tag(
7
+ cms_pages(:default), '{{ cms:file:sample.jpg:image:alt text }}'
8
+ )
9
+ assert_equal cms_files(:default), tag.file
10
+ assert_equal 'sample.jpg', tag.label
11
+ assert_equal ['image', 'alt text'], tag.params
12
+ end
13
+
14
+ def test_initialize_tag_failure
15
+ [
16
+ '{{cms:file}}',
17
+ '{{cms:not_file:label}}',
18
+ '{not_a_tag}'
19
+ ].each do |tag_signature|
20
+ assert_nil ComfortableMexicanSofa::Tag::File.initialize_tag(
21
+ cms_pages(:default), tag_signature
22
+ )
23
+ end
24
+ end
25
+
26
+ def test_render_for_invalid
27
+ tag = ComfortableMexicanSofa::Tag::File.initialize_tag(
28
+ cms_pages(:default), '{{cms:file:invalid.jpg}}'
29
+ )
30
+ assert_nil tag.file
31
+ assert_equal '', tag.render
32
+ end
33
+
34
+ def test_render
35
+ file = cms_files(:default)
36
+ assert tag = ComfortableMexicanSofa::Tag::File.initialize_tag(
37
+ cms_pages(:default), '{{ cms:file:sample.jpg }}'
38
+ )
39
+ assert_equal file.file.url, tag.render
40
+ end
41
+
42
+ def test_render_for_link
43
+ file = cms_files(:default)
44
+ assert tag = ComfortableMexicanSofa::Tag::File.initialize_tag(
45
+ cms_pages(:default), '{{ cms:file:sample.jpg:link }}'
46
+ )
47
+ assert_equal "<a href='#{file.file.url}' target='_blank'>sample.jpg</a>", tag.render
48
+
49
+ assert tag = ComfortableMexicanSofa::Tag::File.initialize_tag(
50
+ cms_pages(:default), '{{ cms:file:sample.jpg:link:link text }}'
51
+ )
52
+ assert_equal "<a href='#{file.file.url}' target='_blank'>link text</a>", tag.render
53
+ end
54
+
55
+ def test_render_for_image
56
+ file = cms_files(:default)
57
+ assert tag = ComfortableMexicanSofa::Tag::File.initialize_tag(
58
+ cms_pages(:default), '{{ cms:file:sample.jpg:image }}'
59
+ )
60
+ assert_equal "<img src='#{file.file.url}' alt='sample.jpg' />", tag.render
61
+
62
+ assert tag = ComfortableMexicanSofa::Tag::File.initialize_tag(
63
+ cms_pages(:default), '{{ cms:file:sample.jpg:image:alt text }}'
64
+ )
65
+ assert_equal "<img src='#{file.file.url}' alt='alt text' />", tag.render
66
+ end
67
+ end
@@ -1,6 +1,6 @@
1
1
  require File.expand_path('../../test_helper', File.dirname(__FILE__))
2
2
 
3
- class HelperTest < ActiveSupport::TestCase
3
+ class HelperTagTest < ActiveSupport::TestCase
4
4
 
5
5
  def test_initialize_tag
6
6
  assert tag = ComfortableMexicanSofa::Tag::Helper.initialize_tag(
@@ -1,6 +1,6 @@
1
1
  require File.expand_path('../../test_helper', File.dirname(__FILE__))
2
2
 
3
- class PageDateTimeTest < ActiveSupport::TestCase
3
+ class PageDateTimeTagTest < ActiveSupport::TestCase
4
4
 
5
5
  def test_initialize_tag
6
6
  assert tag = ComfortableMexicanSofa::Tag::PageDateTime.initialize_tag(
@@ -1,6 +1,6 @@
1
1
  require File.expand_path('../../test_helper', File.dirname(__FILE__))
2
2
 
3
- class PageIntegerTest < ActiveSupport::TestCase
3
+ class PageIntegerTagTest < ActiveSupport::TestCase
4
4
 
5
5
  def test_initialize_tag
6
6
  assert tag = ComfortableMexicanSofa::Tag::PageInteger.initialize_tag(
@@ -1,6 +1,6 @@
1
1
  require File.expand_path('../../test_helper', File.dirname(__FILE__))
2
2
 
3
- class PageRichTextTest < ActiveSupport::TestCase
3
+ class PageRichTextTagTest < ActiveSupport::TestCase
4
4
 
5
5
  def test_initialize_tag
6
6
  assert tag = ComfortableMexicanSofa::Tag::PageRichText.initialize_tag(
@@ -1,6 +1,6 @@
1
1
  require File.expand_path('../../test_helper', File.dirname(__FILE__))
2
2
 
3
- class PageStringTest < ActiveSupport::TestCase
3
+ class PageStringTagTest < ActiveSupport::TestCase
4
4
 
5
5
  def test_initialize_tag
6
6
  assert tag = ComfortableMexicanSofa::Tag::PageString.initialize_tag(
@@ -1,6 +1,6 @@
1
1
  require File.expand_path('../../test_helper', File.dirname(__FILE__))
2
2
 
3
- class PageTextTest < ActiveSupport::TestCase
3
+ class PageTextTagTest < ActiveSupport::TestCase
4
4
 
5
5
  def test_initialize_tag
6
6
  assert tag = ComfortableMexicanSofa::Tag::PageText.initialize_tag(
@@ -1,6 +1,6 @@
1
1
  require File.expand_path('../../test_helper', File.dirname(__FILE__))
2
2
 
3
- class PartialTest < ActiveSupport::TestCase
3
+ class PartialTagTest < ActiveSupport::TestCase
4
4
 
5
5
  def test_initialize_tag
6
6
  assert tag = ComfortableMexicanSofa::Tag::Partial.initialize_tag(
@@ -1,6 +1,6 @@
1
1
  require File.expand_path('../../test_helper', File.dirname(__FILE__))
2
2
 
3
- class SnippetTest < ActiveSupport::TestCase
3
+ class SnippetTagTest < ActiveSupport::TestCase
4
4
 
5
5
  def test_initialize_tag
6
6
  assert tag = ComfortableMexicanSofa::Tag::Snippet.initialize_tag(
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: comfortable_mexican_sofa
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.8
4
+ version: 1.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,23 +10,23 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-08-12 00:00:00.000000000 -04:00
13
+ date: 2011-08-26 00:00:00.000000000 -04:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
18
- requirement: &70228698047440 !ruby/object:Gem::Requirement
18
+ requirement: &70178115869400 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ! '>='
22
22
  - !ruby/object:Gem::Version
23
- version: 3.0.0
23
+ version: 3.1.0.rc6
24
24
  type: :runtime
25
25
  prerelease: false
26
- version_requirements: *70228698047440
26
+ version_requirements: *70178115869400
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: active_link_to
29
- requirement: &70228698046720 !ruby/object:Gem::Requirement
29
+ requirement: &70178115868920 !ruby/object:Gem::Requirement
30
30
  none: false
31
31
  requirements:
32
32
  - - ! '>='
@@ -34,10 +34,10 @@ dependencies:
34
34
  version: 1.0.0
35
35
  type: :runtime
36
36
  prerelease: false
37
- version_requirements: *70228698046720
37
+ version_requirements: *70178115868920
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: paperclip
40
- requirement: &70228698045760 !ruby/object:Gem::Requirement
40
+ requirement: &70178115868440 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - ! '>='
@@ -45,7 +45,7 @@ dependencies:
45
45
  version: 2.3.14
46
46
  type: :runtime
47
47
  prerelease: false
48
- version_requirements: *70228698045760
48
+ version_requirements: *70178115868440
49
49
  description: ''
50
50
  email: oleg@theworkinggroup.ca
51
51
  executables: []
@@ -74,6 +74,7 @@ files:
74
74
  - app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-bg_glass_75_e6e6e6_1x400.png
75
75
  - app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-bg_glass_95_fef1ec_1x400.png
76
76
  - app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-bg_highlight-soft_75_cccccc_1x100.png
77
+ - app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-bg_inset-soft_95_fef1ec_1x100.png
77
78
  - app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-icons_222222_256x240.png
78
79
  - app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-icons_2e83ff_256x240.png
79
80
  - app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-icons_454545_256x240.png
@@ -84,8 +85,6 @@ files:
84
85
  - app/assets/javascripts/comfortable_mexican_sofa/codemirror/codemirror.js
85
86
  - app/assets/javascripts/comfortable_mexican_sofa/jquery.js
86
87
  - app/assets/javascripts/comfortable_mexican_sofa/jquery_ui.js
87
- - app/assets/javascripts/comfortable_mexican_sofa/plupload/plupload.html5.js
88
- - app/assets/javascripts/comfortable_mexican_sofa/plupload/plupload.js
89
88
  - app/assets/javascripts/comfortable_mexican_sofa/rails.js
90
89
  - app/assets/javascripts/comfortable_mexican_sofa/wymeditor/iframe/default/lbl-blockquote.png
91
90
  - app/assets/javascripts/comfortable_mexican_sofa/wymeditor/iframe/default/lbl-h1.png
@@ -136,20 +135,40 @@ files:
136
135
  - app/assets/stylesheets/comfortable_mexican_sofa/widgets.css
137
136
  - app/controllers/application_controller.rb
138
137
  - app/controllers/cms_admin/base_controller.rb
138
+ - app/controllers/cms_admin/categories_controller.rb
139
+ - app/controllers/cms_admin/files_controller.rb
139
140
  - app/controllers/cms_admin/layouts_controller.rb
140
141
  - app/controllers/cms_admin/pages_controller.rb
141
142
  - app/controllers/cms_admin/revisions_controller.rb
142
143
  - app/controllers/cms_admin/sites_controller.rb
143
144
  - app/controllers/cms_admin/snippets_controller.rb
144
- - app/controllers/cms_admin/uploads_controller.rb
145
145
  - app/controllers/cms_content_controller.rb
146
146
  - app/models/cms/block.rb
147
+ - app/models/cms/categorization.rb
148
+ - app/models/cms/category.rb
149
+ - app/models/cms/file.rb
147
150
  - app/models/cms/layout.rb
148
151
  - app/models/cms/page.rb
149
152
  - app/models/cms/revision.rb
150
153
  - app/models/cms/site.rb
151
154
  - app/models/cms/snippet.rb
152
- - app/models/cms/upload.rb
155
+ - app/views/cms_admin/categories/_categories.html.erb
156
+ - app/views/cms_admin/categories/_edit.html.erb
157
+ - app/views/cms_admin/categories/_form.html.erb
158
+ - app/views/cms_admin/categories/_index.html.erb
159
+ - app/views/cms_admin/categories/_show.html.erb
160
+ - app/views/cms_admin/categories/create.js.erb
161
+ - app/views/cms_admin/categories/destroy.js.erb
162
+ - app/views/cms_admin/categories/edit.js.erb
163
+ - app/views/cms_admin/categories/update.js.erb
164
+ - app/views/cms_admin/files/_file.html.erb
165
+ - app/views/cms_admin/files/_form.html.erb
166
+ - app/views/cms_admin/files/_index.html.erb
167
+ - app/views/cms_admin/files/create.js.erb
168
+ - app/views/cms_admin/files/destroy.js.erb
169
+ - app/views/cms_admin/files/edit.html.erb
170
+ - app/views/cms_admin/files/index.html.erb
171
+ - app/views/cms_admin/files/new.html.erb
153
172
  - app/views/cms_admin/layouts/_form.html.erb
154
173
  - app/views/cms_admin/layouts/_index_branch.html.erb
155
174
  - app/views/cms_admin/layouts/edit.html.erb
@@ -173,9 +192,6 @@ files:
173
192
  - app/views/cms_admin/snippets/edit.html.erb
174
193
  - app/views/cms_admin/snippets/index.html.erb
175
194
  - app/views/cms_admin/snippets/new.html.erb
176
- - app/views/cms_admin/uploads/_file.html.erb
177
- - app/views/cms_admin/uploads/_index.html.erb
178
- - app/views/cms_admin/uploads/destroy.js.erb
179
195
  - app/views/layouts/cms_admin.html.erb
180
196
  - app/views/layouts/cms_admin/_body.html.erb
181
197
  - app/views/layouts/cms_admin/_center.html.erb
@@ -215,27 +231,30 @@ files:
215
231
  - db/migrate/upgrades/02_upgrade_to_1_1_0.rb
216
232
  - db/migrate/upgrades/03_upgrade_to_1_2_0.rb
217
233
  - db/migrate/upgrades/04_upgrade_to_1_3_0.rb
234
+ - db/migrate/upgrades/05_upgrade_to_1_4_0.rb
218
235
  - db/seeds.rb
219
236
  - doc/page_editing.png
220
237
  - doc/sofa.png
221
238
  - lib/comfortable_mexican_sofa.rb
222
- - lib/comfortable_mexican_sofa/acts_as_tree.rb
223
239
  - lib/comfortable_mexican_sofa/configuration.rb
224
240
  - lib/comfortable_mexican_sofa/controller_methods.rb
225
241
  - lib/comfortable_mexican_sofa/engine.rb
226
242
  - lib/comfortable_mexican_sofa/error.rb
243
+ - lib/comfortable_mexican_sofa/extensions/acts_as_tree.rb
244
+ - lib/comfortable_mexican_sofa/extensions/has_revisions.rb
245
+ - lib/comfortable_mexican_sofa/extensions/is_categorized.rb
246
+ - lib/comfortable_mexican_sofa/extensions/is_mirrored.rb
247
+ - lib/comfortable_mexican_sofa/extensions/rails.rb
227
248
  - lib/comfortable_mexican_sofa/fixtures.rb
228
249
  - lib/comfortable_mexican_sofa/form_builder.rb
229
- - lib/comfortable_mexican_sofa/has_revisions.rb
230
250
  - lib/comfortable_mexican_sofa/http_auth.rb
231
- - lib/comfortable_mexican_sofa/is_mirrored.rb
232
- - lib/comfortable_mexican_sofa/rails_extensions.rb
233
251
  - lib/comfortable_mexican_sofa/tag.rb
234
252
  - lib/comfortable_mexican_sofa/tags/asset.rb
235
253
  - lib/comfortable_mexican_sofa/tags/field_datetime.rb
236
254
  - lib/comfortable_mexican_sofa/tags/field_integer.rb
237
255
  - lib/comfortable_mexican_sofa/tags/field_string.rb
238
256
  - lib/comfortable_mexican_sofa/tags/field_text.rb
257
+ - lib/comfortable_mexican_sofa/tags/file.rb
239
258
  - lib/comfortable_mexican_sofa/tags/helper.rb
240
259
  - lib/comfortable_mexican_sofa/tags/page_datetime.rb
241
260
  - lib/comfortable_mexican_sofa/tags/page_integer.rb
@@ -244,7 +263,6 @@ files:
244
263
  - lib/comfortable_mexican_sofa/tags/page_text.rb
245
264
  - lib/comfortable_mexican_sofa/tags/partial.rb
246
265
  - lib/comfortable_mexican_sofa/tags/snippet.rb
247
- - lib/comfortable_mexican_sofa/tags/upload.rb
248
266
  - lib/comfortable_mexican_sofa/version.rb
249
267
  - lib/comfortable_mexican_sofa/view_hooks.rb
250
268
  - lib/comfortable_mexican_sofa/view_methods.rb
@@ -253,23 +271,26 @@ files:
253
271
  - lib/tasks/comfortable_mexican_sofa.rake
254
272
  - script/rails
255
273
  - test/fixtures/cms/blocks.yml
274
+ - test/fixtures/cms/categories.yml
275
+ - test/fixtures/cms/categorizations.yml
276
+ - test/fixtures/cms/files.yml
256
277
  - test/fixtures/cms/layouts.yml
257
278
  - test/fixtures/cms/pages.yml
258
279
  - test/fixtures/cms/revisions.yml
259
280
  - test/fixtures/cms/sites.yml
260
281
  - test/fixtures/cms/snippets.yml
261
- - test/fixtures/cms/uploads.yml
262
282
  - test/fixtures/files/invalid_file.gif
263
283
  - test/fixtures/files/valid_image.jpg
264
284
  - test/fixtures/views/_nav_hook.html.erb
265
285
  - test/fixtures/views/_nav_hook_2.html.erb
266
286
  - test/functional/cms_admin/base_controller_test.rb
287
+ - test/functional/cms_admin/categories_controller_test.rb
288
+ - test/functional/cms_admin/files_controller_test.rb
267
289
  - test/functional/cms_admin/layouts_controller_test.rb
268
290
  - test/functional/cms_admin/pages_controller_test.rb
269
291
  - test/functional/cms_admin/revisions_controller_test.rb
270
292
  - test/functional/cms_admin/sites_controller_test.rb
271
293
  - test/functional/cms_admin/snippets_controller_test.rb
272
- - test/functional/cms_admin/uploads_controller_test.rb
273
294
  - test/functional/cms_content_controller_test.rb
274
295
  - test/integration/authentication_test.rb
275
296
  - test/integration/fixtures_test.rb
@@ -284,11 +305,13 @@ files:
284
305
  - test/unit/form_builder_test.rb
285
306
  - test/unit/mirrors_test.rb
286
307
  - test/unit/models/block_test.rb
308
+ - test/unit/models/categorization_test.rb
309
+ - test/unit/models/category_test.rb
310
+ - test/unit/models/file_test.rb
287
311
  - test/unit/models/layout_test.rb
288
312
  - test/unit/models/page_test.rb
289
313
  - test/unit/models/site_test.rb
290
314
  - test/unit/models/snippet_test.rb
291
- - test/unit/models/upload_test.rb
292
315
  - test/unit/revisions_test.rb
293
316
  - test/unit/tag_test.rb
294
317
  - test/unit/tags/asset_test.rb
@@ -296,6 +319,7 @@ files:
296
319
  - test/unit/tags/field_integer_test.rb
297
320
  - test/unit/tags/field_string_test.rb
298
321
  - test/unit/tags/field_text_test.rb
322
+ - test/unit/tags/file_test.rb
299
323
  - test/unit/tags/helper_test.rb
300
324
  - test/unit/tags/page_datetime_test.rb
301
325
  - test/unit/tags/page_integer_test.rb
@@ -304,7 +328,6 @@ files:
304
328
  - test/unit/tags/page_text_test.rb
305
329
  - test/unit/tags/partial_test.rb
306
330
  - test/unit/tags/snippet_test.rb
307
- - test/unit/tags/upload_test.rb
308
331
  - test/unit/view_methods_test.rb
309
332
  has_rdoc: true
310
333
  homepage: http://github.com/twg/comfortable-mexican-sofa
@@ -321,7 +344,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
321
344
  version: '0'
322
345
  segments:
323
346
  - 0
324
- hash: 2059952711421247881
347
+ hash: 2197173272088711680
325
348
  required_rubygems_version: !ruby/object:Gem::Requirement
326
349
  none: false
327
350
  requirements: