sibu 0.7.3 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +20 -20
  3. data/README.md +38 -38
  4. data/Rakefile +36 -36
  5. data/app/assets/config/sibu_manifest.js +2 -2
  6. data/app/assets/fonts/sibu/Sibu.eot +0 -0
  7. data/app/assets/fonts/sibu/Sibu.svg +13 -13
  8. data/app/assets/fonts/sibu/Sibu.ttf +0 -0
  9. data/app/assets/fonts/sibu/Sibu.woff +0 -0
  10. data/app/assets/javascripts/cropper/cropper.js +3694 -3694
  11. data/app/assets/javascripts/quill/quill.js +11401 -11401
  12. data/app/assets/javascripts/sibu/common.js +6 -6
  13. data/app/assets/javascripts/sibu/sibu.js.erb +155 -177
  14. data/app/assets/javascripts/tabs/van11y-accessible-tab-panel-aria.js +466 -0
  15. data/app/assets/stylesheets/cropper/cropper.css +304 -304
  16. data/app/assets/stylesheets/quill/quill.snow.css +945 -945
  17. data/app/assets/stylesheets/sibu/defaults.scss +336 -284
  18. data/app/assets/stylesheets/sibu/icons.scss +40 -40
  19. data/app/assets/stylesheets/sibu/sibu.css +131 -136
  20. data/app/controllers/sibu/application_controller.rb +14 -14
  21. data/app/controllers/sibu/documents_controller.rb +35 -35
  22. data/app/controllers/sibu/images_controller.rb +78 -78
  23. data/app/controllers/sibu/pages_controller.rb +197 -197
  24. data/app/controllers/sibu/sites_controller.rb +81 -81
  25. data/app/helpers/sibu/application_helper.rb +11 -11
  26. data/app/helpers/sibu/documents_helper.rb +4 -4
  27. data/app/helpers/sibu/images_helper.rb +4 -4
  28. data/app/helpers/sibu/pages_helper.rb +194 -194
  29. data/app/helpers/sibu/sites_helper.rb +23 -23
  30. data/app/jobs/sibu/application_job.rb +4 -4
  31. data/app/mailers/sibu/application_mailer.rb +6 -6
  32. data/app/models/concerns/sibu/document_uploader.rb +8 -8
  33. data/app/models/concerns/sibu/image_uploader.rb +31 -31
  34. data/app/models/concerns/sibu/sections_concern.rb +134 -134
  35. data/app/models/concerns/sibu/style_uploader.rb +1 -1
  36. data/app/models/concerns/sibu/user_concern.rb +8 -8
  37. data/app/models/sibu/application_record.rb +5 -5
  38. data/app/models/sibu/document.rb +16 -16
  39. data/app/models/sibu/dynamic_style.rb +76 -76
  40. data/app/models/sibu/image.rb +19 -19
  41. data/app/models/sibu/page.rb +66 -66
  42. data/app/models/sibu/site.rb +97 -97
  43. data/app/models/sibu/site_template.rb +22 -17
  44. data/app/views/layouts/sibu/application.html.erb +23 -23
  45. data/app/views/layouts/sibu/edit_content.html.erb +262 -255
  46. data/app/views/layouts/sibu/site.html.erb +45 -45
  47. data/app/views/sibu/documents/_form.html.erb +14 -14
  48. data/app/views/sibu/documents/index.html.erb +37 -37
  49. data/app/views/sibu/documents/new.html.erb +12 -12
  50. data/app/views/sibu/images/_edit_form.html.erb +23 -23
  51. data/app/views/sibu/images/_form.html.erb +34 -34
  52. data/app/views/sibu/images/edit.js.erb +2 -2
  53. data/app/views/sibu/images/index.html.erb +13 -13
  54. data/app/views/sibu/images/new.html.erb +12 -12
  55. data/app/views/sibu/images/show.html.erb +2 -2
  56. data/app/views/sibu/pages/_code_edit_panel.html.erb +17 -17
  57. data/app/views/sibu/pages/_element_actions.html.erb +4 -4
  58. data/app/views/sibu/pages/_error_panel.html.erb +4 -4
  59. data/app/views/sibu/pages/_form.html.erb +62 -62
  60. data/app/views/sibu/pages/_group_edit_panel.html.erb +3 -3
  61. data/app/views/sibu/pages/_link_edit_panel.html.erb +50 -50
  62. data/app/views/sibu/pages/_map_edit_panel.html.erb +27 -27
  63. data/app/views/sibu/pages/_media_edit_panel.html.erb +46 -46
  64. data/app/views/sibu/pages/_new_section_panel.html.erb +43 -27
  65. data/app/views/sibu/pages/_paragraph_edit_panel.html.erb +18 -18
  66. data/app/views/sibu/pages/_text_edit_panel.html.erb +19 -19
  67. data/app/views/sibu/pages/child_element.js.erb +6 -6
  68. data/app/views/sibu/pages/clone_element.js.erb +6 -6
  69. data/app/views/sibu/pages/create_section.js.erb +6 -6
  70. data/app/views/sibu/pages/delete_element.js.erb +6 -6
  71. data/app/views/sibu/pages/delete_section.js.erb +6 -6
  72. data/app/views/sibu/pages/destroy.html.erb +2 -2
  73. data/app/views/sibu/pages/edit.html.erb +8 -8
  74. data/app/views/sibu/pages/edit_content.html.erb +3 -3
  75. data/app/views/sibu/pages/edit_element.js.erb +100 -100
  76. data/app/views/sibu/pages/edit_section.js.erb +7 -7
  77. data/app/views/sibu/pages/index.html.erb +40 -40
  78. data/app/views/sibu/pages/new.html.erb +8 -8
  79. data/app/views/sibu/pages/new_section.js.erb +19 -18
  80. data/app/views/sibu/pages/show.html.erb +3 -3
  81. data/app/views/sibu/pages/update.html.erb +2 -2
  82. data/app/views/sibu/pages/update_element.js.erb +5 -5
  83. data/app/views/sibu/pages/update_section.js.erb +5 -5
  84. data/app/views/sibu/sites/_form.html.erb +125 -125
  85. data/app/views/sibu/sites/destroy.html.erb +2 -2
  86. data/app/views/sibu/sites/edit.html.erb +9 -9
  87. data/app/views/sibu/sites/edit_styles.html.erb +8 -8
  88. data/app/views/sibu/sites/index.html.erb +41 -41
  89. data/app/views/sibu/sites/new.html.erb +18 -18
  90. data/app/views/sibu/sites/update.html.erb +2 -2
  91. data/config/initializers/constants.rb +2 -2
  92. data/config/initializers/shrine.rb +18 -18
  93. data/config/routes.rb +30 -30
  94. data/config/tinymce.yml +5 -5
  95. data/db/migrate/20180124095041_create_sibu_sites.rb +12 -12
  96. data/db/migrate/20180124095213_create_sibu_pages.rb +15 -15
  97. data/db/migrate/20180124145030_create_sibu_site_templates.rb +10 -10
  98. data/db/migrate/20180125231638_add_user_id_to_sites.rb +5 -5
  99. data/db/migrate/20180126114522_rename_url_to_path_in_pages.rb +5 -5
  100. data/db/migrate/20180126114628_add_domain_to_sites.rb +5 -5
  101. data/db/migrate/20180127211533_create_sibu_images.rb +11 -11
  102. data/db/migrate/20180208082317_rename_images_user_id_to_site_id.rb +5 -5
  103. data/db/migrate/20180208125024_rename_image_data_column.rb +5 -5
  104. data/db/migrate/20180210181644_add_defaults_to_site_templates.rb +6 -6
  105. data/db/migrate/20180214134653_add_fields_to_sites.rb +5 -5
  106. data/db/migrate/20180227151519_add_default_templates_to_site_templates.rb +5 -5
  107. data/db/migrate/20180301121902_add_style_data_to_sites.rb +5 -5
  108. data/db/migrate/20180301152101_add_default_styles_to_templates.rb +5 -5
  109. data/db/migrate/20180321144021_move_images_to_user_level.rb +7 -7
  110. data/db/migrate/20180321170310_add_version_to_sibu_sites.rb +7 -7
  111. data/db/migrate/20180405095448_create_sibu_documents.rb +10 -10
  112. data/db/migrate/20190110204854_add_custom_data_to_sibu_pages.rb +5 -5
  113. data/lib/sibu.rb +4 -4
  114. data/lib/sibu/engine.rb +19 -19
  115. data/lib/sibu/utils.rb +14 -14
  116. data/lib/sibu/version.rb +3 -3
  117. data/lib/tasks/sibu_tasks.rake +4 -4
  118. metadata +4 -3
@@ -1,19 +1,19 @@
1
- <div class="sibu_view">
2
- <div class="actions">
3
- <%= link_to 'Retour', :back %>
4
- </div>
5
- <h2>Créer un site</h2>
6
- <div class="sibu_form">
7
- <%= render 'form' %>
8
- </div>
9
- <h2>Aperçu des modèles</h2>
10
- <div>
11
- <% Sibu::SiteTemplate.all.each do |st| %>
12
- <div class="sibu_template">
13
- <h3><%= st.name %></h3>
14
- <%= image_tag "#{st.path}1.jpg" %>
15
- <%= image_tag "#{st.path}2.jpg" %>
16
- </div>
17
- <% end %>
18
- </div>
1
+ <div class="sibu_view">
2
+ <div class="actions">
3
+ <%= link_to 'Retour', :back %>
4
+ </div>
5
+ <h2>Créer un site</h2>
6
+ <div class="sibu_form">
7
+ <%= render 'form' %>
8
+ </div>
9
+ <h2>Aperçu des modèles</h2>
10
+ <div>
11
+ <% Sibu::SiteTemplate.all.each do |st| %>
12
+ <div class="sibu_template">
13
+ <h3><%= st.name %></h3>
14
+ <%= image_tag "#{st.path}1.jpg" %>
15
+ <%= image_tag "#{st.path}2.jpg" %>
16
+ </div>
17
+ <% end %>
18
+ </div>
19
19
  </div>
@@ -1,2 +1,2 @@
1
- <h1>Sites#update</h1>
2
- <p>Find me in app/views/sibu/sites/update.html.erb</p>
1
+ <h1>Sites#update</h1>
2
+ <p>Find me in app/views/sibu/sites/update.html.erb</p>
@@ -1,3 +1,3 @@
1
- DEFAULT_TEXT = "Lorem ipsum"
2
- DEFAULT_PARAGRAPH = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut."
1
+ DEFAULT_TEXT = "Lorem ipsum"
2
+ DEFAULT_PARAGRAPH = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut."
3
3
  DEFAULT_IMG = "/default.jpg"
@@ -1,19 +1,19 @@
1
- require "shrine"
2
- require "shrine/storage/file_system"
3
- require "mini_magick"
4
-
5
- Shrine.storages = {
6
- cache: Shrine::Storage::FileSystem.new("public", prefix: "uploads/cache"),
7
- store: Shrine::Storage::FileSystem.new("public", prefix: "uploads/store"),
8
- styles_cache: Shrine::Storage::FileSystem.new("public", prefix: "stylesheets/cache"),
9
- styles_store: Shrine::Storage::FileSystem.new("public", prefix: "stylesheets/store"),
10
- documents_cache: Shrine::Storage::FileSystem.new("public", prefix: "documents/cache"),
11
- documents_store: Shrine::Storage::FileSystem.new("public", prefix: "documents/store")
12
- }
13
-
14
- Shrine.plugin :activerecord
15
- Shrine.plugin :cached_attachment_data
16
-
17
- MiniMagick.configure do |config|
18
- config.whiny = false
1
+ require "shrine"
2
+ require "shrine/storage/file_system"
3
+ require "mini_magick"
4
+
5
+ Shrine.storages = {
6
+ cache: Shrine::Storage::FileSystem.new("public", prefix: "uploads/cache"),
7
+ store: Shrine::Storage::FileSystem.new("public", prefix: "uploads/store"),
8
+ styles_cache: Shrine::Storage::FileSystem.new("public", prefix: "stylesheets/cache"),
9
+ styles_store: Shrine::Storage::FileSystem.new("public", prefix: "stylesheets/store"),
10
+ documents_cache: Shrine::Storage::FileSystem.new("public", prefix: "documents/cache"),
11
+ documents_store: Shrine::Storage::FileSystem.new("public", prefix: "documents/store")
12
+ }
13
+
14
+ Shrine.plugin :activerecord
15
+ Shrine.plugin :cached_attachment_data
16
+
17
+ MiniMagick.configure do |config|
18
+ config.whiny = false
19
19
  end
@@ -1,30 +1,30 @@
1
- Sibu::Engine.routes.draw do
2
-
3
- get '/', to: 'pages#show', constraints: lambda {|req| req.host != Rails.application.config.sibu[:host]}
4
- get '*path', to: 'pages#show', constraints: lambda {|req| req.host != Rails.application.config.sibu[:host]}
5
-
6
- scope path_names: {new: 'creer', edit: 'parametrer'} do
7
- resources :sites do
8
- post 'duplicate', on: :member
9
- resources :pages do
10
- post 'duplicate', on: :member
11
- get :edit_content, to: 'pages#edit_content', path: 'editer'
12
- get :edit_element, on: :member
13
- get :edit_section, on: :member
14
- patch 'update_element', on: :member
15
- patch 'update_section', on: :member
16
- post 'clone_element', on: :member
17
- delete 'delete_element', on: :member
18
- post 'child_element', on: :member
19
- get 'new_section', on: :member
20
- post 'create_section', on: :member
21
- delete 'delete_section', on: :member
22
- end
23
- resources :pages, only:[] do
24
- get '*path', to: 'pages#show', on: :member
25
- end
26
-
27
- end
28
- resources :images, :documents
29
- end
30
- end
1
+ Sibu::Engine.routes.draw do
2
+
3
+ get '/', to: 'pages#show', constraints: lambda {|req| req.host != Rails.application.config.sibu[:host]}
4
+ get '*path', to: 'pages#show', constraints: lambda {|req| req.host != Rails.application.config.sibu[:host]}
5
+
6
+ scope path_names: {new: 'creer', edit: 'parametrer'} do
7
+ resources :sites do
8
+ post 'duplicate', on: :member
9
+ resources :pages do
10
+ post 'duplicate', on: :member
11
+ get :edit_content, to: 'pages#edit_content', path: 'editer'
12
+ get :edit_element, on: :member
13
+ get :edit_section, on: :member
14
+ patch 'update_element', on: :member
15
+ patch 'update_section', on: :member
16
+ post 'clone_element', on: :member
17
+ delete 'delete_element', on: :member
18
+ post 'child_element', on: :member
19
+ get 'new_section', on: :member
20
+ post 'create_section', on: :member
21
+ delete 'delete_section', on: :member
22
+ end
23
+ resources :pages, only:[] do
24
+ get '*path', to: 'pages#show', on: :member
25
+ end
26
+
27
+ end
28
+ resources :images, :documents
29
+ end
30
+ end
@@ -1,6 +1,6 @@
1
- default:
2
- toolbar:
3
- - styleselect | bold italic
4
- - link
5
- plugins:
1
+ default:
2
+ toolbar:
3
+ - styleselect | bold italic
4
+ - link
5
+ plugins:
6
6
  - link
@@ -1,12 +1,12 @@
1
- class CreateSibuSites < ActiveRecord::Migration[5.1]
2
- def change
3
- create_table :sibu_sites do |t|
4
- t.string :name
5
- t.integer :site_template_id
6
- t.text :metadata
7
- t.jsonb :sections
8
-
9
- t.timestamps
10
- end
11
- end
12
- end
1
+ class CreateSibuSites < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :sibu_sites do |t|
4
+ t.string :name
5
+ t.integer :site_template_id
6
+ t.text :metadata
7
+ t.jsonb :sections
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -1,15 +1,15 @@
1
- class CreateSibuPages < ActiveRecord::Migration[5.1]
2
- def change
3
- create_table :sibu_pages do |t|
4
- t.string :name
5
- t.integer :site_id
6
- t.text :metadata
7
- t.string :language
8
- t.string :url
9
- t.string :template
10
- t.jsonb :sections
11
-
12
- t.timestamps
13
- end
14
- end
15
- end
1
+ class CreateSibuPages < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :sibu_pages do |t|
4
+ t.string :name
5
+ t.integer :site_id
6
+ t.text :metadata
7
+ t.string :language
8
+ t.string :url
9
+ t.string :template
10
+ t.jsonb :sections
11
+
12
+ t.timestamps
13
+ end
14
+ end
15
+ end
@@ -1,10 +1,10 @@
1
- class CreateSibuSiteTemplates < ActiveRecord::Migration[5.1]
2
- def change
3
- create_table :sibu_site_templates do |t|
4
- t.string :name
5
- t.string :path
6
-
7
- t.timestamps
8
- end
9
- end
10
- end
1
+ class CreateSibuSiteTemplates < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :sibu_site_templates do |t|
4
+ t.string :name
5
+ t.string :path
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -1,5 +1,5 @@
1
- class AddUserIdToSites < ActiveRecord::Migration[5.1]
2
- def change
3
- add_column :sibu_sites, :user_id, :integer
4
- end
5
- end
1
+ class AddUserIdToSites < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :sibu_sites, :user_id, :integer
4
+ end
5
+ end
@@ -1,5 +1,5 @@
1
- class RenameUrlToPathInPages < ActiveRecord::Migration[5.1]
2
- def change
3
- rename_column :sibu_pages, :url, :path
4
- end
5
- end
1
+ class RenameUrlToPathInPages < ActiveRecord::Migration[5.1]
2
+ def change
3
+ rename_column :sibu_pages, :url, :path
4
+ end
5
+ end
@@ -1,5 +1,5 @@
1
- class AddDomainToSites < ActiveRecord::Migration[5.1]
2
- def change
3
- add_column :sibu_sites, :domain, :string
4
- end
5
- end
1
+ class AddDomainToSites < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :sibu_sites, :domain, :string
4
+ end
5
+ end
@@ -1,11 +1,11 @@
1
- class CreateSibuImages < ActiveRecord::Migration[5.1]
2
- def change
3
- create_table :sibu_images do |t|
4
- t.integer :user_id
5
- t.text :metadata
6
- t.text :data
7
-
8
- t.timestamps
9
- end
10
- end
11
- end
1
+ class CreateSibuImages < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :sibu_images do |t|
4
+ t.integer :user_id
5
+ t.text :metadata
6
+ t.text :data
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -1,5 +1,5 @@
1
- class RenameImagesUserIdToSiteId < ActiveRecord::Migration[5.1]
2
- def change
3
- rename_column :sibu_images, :user_id, :site_id
4
- end
5
- end
1
+ class RenameImagesUserIdToSiteId < ActiveRecord::Migration[5.1]
2
+ def change
3
+ rename_column :sibu_images, :user_id, :site_id
4
+ end
5
+ end
@@ -1,5 +1,5 @@
1
- class RenameImageDataColumn < ActiveRecord::Migration[5.1]
2
- def change
3
- rename_column :sibu_images, :data, :file_data
4
- end
5
- end
1
+ class RenameImageDataColumn < ActiveRecord::Migration[5.1]
2
+ def change
3
+ rename_column :sibu_images, :data, :file_data
4
+ end
5
+ end
@@ -1,6 +1,6 @@
1
- class AddDefaultsToSiteTemplates < ActiveRecord::Migration[5.1]
2
- def change
3
- add_column :sibu_site_templates, :default_sections, :text
4
- add_column :sibu_site_templates, :default_pages, :text
5
- end
6
- end
1
+ class AddDefaultsToSiteTemplates < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :sibu_site_templates, :default_sections, :text
4
+ add_column :sibu_site_templates, :default_pages, :text
5
+ end
6
+ end
@@ -1,5 +1,5 @@
1
- class AddFieldsToSites < ActiveRecord::Migration[5.1]
2
- def change
3
- add_column :sibu_sites, :custom_data, :text
4
- end
5
- end
1
+ class AddFieldsToSites < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :sibu_sites, :custom_data, :text
4
+ end
5
+ end
@@ -1,5 +1,5 @@
1
- class AddDefaultTemplatesToSiteTemplates < ActiveRecord::Migration[5.1]
2
- def change
3
- add_column :sibu_site_templates, :default_templates, :text
4
- end
5
- end
1
+ class AddDefaultTemplatesToSiteTemplates < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :sibu_site_templates, :default_templates, :text
4
+ end
5
+ end
@@ -1,5 +1,5 @@
1
- class AddStyleDataToSites < ActiveRecord::Migration[5.1]
2
- def change
3
- add_column :sibu_sites, :style_data, :text
4
- end
5
- end
1
+ class AddStyleDataToSites < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :sibu_sites, :style_data, :text
4
+ end
5
+ end
@@ -1,5 +1,5 @@
1
- class AddDefaultStylesToTemplates < ActiveRecord::Migration[5.1]
2
- def change
3
- add_column :sibu_site_templates, :default_styles, :text
4
- end
5
- end
1
+ class AddDefaultStylesToTemplates < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :sibu_site_templates, :default_styles, :text
4
+ end
5
+ end
@@ -1,7 +1,7 @@
1
- class MoveImagesToUserLevel < ActiveRecord::Migration[5.1]
2
- def change
3
- add_column :sibu_images, :user_id, :integer
4
- Sibu::Image.where("site_id IS NOT NULL").each {|img| img.update(user_id: Sibu::Site.find(img.site_id).user_id)}
5
- remove_column :sibu_images, :site_id
6
- end
7
- end
1
+ class MoveImagesToUserLevel < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :sibu_images, :user_id, :integer
4
+ Sibu::Image.where("site_id IS NOT NULL").each {|img| img.update(user_id: Sibu::Site.find(img.site_id).user_id)}
5
+ remove_column :sibu_images, :site_id
6
+ end
7
+ end
@@ -1,7 +1,7 @@
1
- class AddVersionToSibuSites < ActiveRecord::Migration[5.1]
2
- def change
3
- add_column :sibu_sites, :version, :string
4
- Sibu::Site.update_all(version: 'fr')
5
- remove_column :sibu_pages, :language
6
- end
7
- end
1
+ class AddVersionToSibuSites < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :sibu_sites, :version, :string
4
+ Sibu::Site.update_all(version: 'fr')
5
+ remove_column :sibu_pages, :language
6
+ end
7
+ end
@@ -1,10 +1,10 @@
1
- class CreateSibuDocuments < ActiveRecord::Migration[5.1]
2
- def change
3
- create_table :sibu_documents do |t|
4
- t.integer :user_id
5
- t.text :file_data
6
-
7
- t.timestamps
8
- end
9
- end
10
- end
1
+ class CreateSibuDocuments < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :sibu_documents do |t|
4
+ t.integer :user_id
5
+ t.text :file_data
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -1,5 +1,5 @@
1
- class AddCustomDataToSibuPages < ActiveRecord::Migration[5.1]
2
- def change
3
- add_column :sibu_pages, :custom_data, :text
4
- end
5
- end
1
+ class AddCustomDataToSibuPages < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :sibu_pages, :custom_data, :text
4
+ end
5
+ end