lib/integral.rb in integral-1.5.1 vs lib/integral.rb in integral-2.0.0
- old
+ new
@@ -1,36 +1,46 @@
require 'devise'
require 'devise_invitable'
require 'integral/version'
require 'integral/router'
-require 'integral/middleware/page_router'
+require 'integral/middleware/alias_router'
require 'integral/engine'
-require 'integral/button_link_renderer'
require 'integral/google_tag_manager'
-require 'integral/foundation_builder'
require 'integral/grids/activities_grid'
+require 'integral/grids/block_lists_grid'
require 'integral/grids/pages_grid'
require 'integral/grids/users_grid'
require 'integral/grids/lists_grid'
require 'integral/grids/posts_grid'
-require 'integral/grids/images_grid'
+require 'integral/grids/files_grid'
require 'integral/acts_as_listable'
require 'integral/acts_as_integral'
-require 'integral/widgets/recent_posts'
-require 'integral/widgets/swiper_list'
-require 'integral/content_renderer'
require 'integral/list_renderer'
require 'integral/swiper_list_renderer'
require 'integral/list_item_renderer'
require 'integral/partial_list_item_renderer'
require 'integral/chart_renderer/base'
require 'integral/chart_renderer/donut'
require 'integral/chart_renderer/line'
+require 'integral/breadcrumb_builder'
+require 'integral/bootstrap_pagination_renderer'
+require 'integral/bootstrap_pagination_button_renderer'
# Integral
module Integral
+ ROOT_PATH = Pathname.new(File.join(__dir__, ".."))
+
+ class << self
+ def webpacker
+ @webpacker ||= ::Webpacker::Instance.new(
+ root_path: ROOT_PATH,
+ config_path: ROOT_PATH.join("config/webpacker.yml")
+ )
+ end
+ end
+
# Enables engine configuration
def self.configure
yield(self)
end
@@ -38,15 +48,15 @@
@@backend_namespace = 'admin'
mattr_accessor :backend_locales
@@backend_locales = [:en]
- mattr_accessor :additional_settings_params
- @@additional_settings_params = []
+ mattr_accessor :frontend_locales
+ @@frontend_locales = [:en]
- mattr_accessor :additional_widgets
- @@additional_widgets = []
+ mattr_accessor :additional_settings
+ @@additional_settings = {}
mattr_accessor :additional_post_params
@@additional_post_params = []
mattr_accessor :additional_page_params
@@ -68,31 +78,31 @@
@@root_path = nil
mattr_accessor :frontend_parent_controller
@@frontend_parent_controller = 'Integral::ApplicationController'
- mattr_accessor :editor_image_size_limit
- @@editor_image_size_limit = [1600, 1600]
+ mattr_accessor :image_sizes
+ @@image_sizes = {
+ thumbnail: [50, 50],
+ small: [500, 500],
+ medium: [800, 800],
+ large: [1600, 1600]
+ }
- mattr_accessor :image_thumbnail_size
- @@image_thumbnail_size = [50, 50]
+ mattr_accessor :image_transformation_options
+ @@image_transformation_options = {
+ format: :jpeg,
+ sampling_factor: "4:2:0",
+ strip: true,
+ interlace: "JPEG",
+ colorspace: "sRGB",
+ quality: 80
+ }
- mattr_accessor :image_small_size
- @@image_small_size = [500, 500]
-
- mattr_accessor :image_medium_size
- @@image_medium_size = [800, 800]
-
- mattr_accessor :image_large_size
- @@image_large_size = [1600, 1600]
-
mattr_accessor :additional_page_templates
@@additional_page_templates = []
- mattr_accessor :additional_tracked_classes
- @@additional_tracked_classes = []
-
mattr_accessor :compression_enabled
@@compression_enabled = true
mattr_accessor :image_compression_quality
@@image_compression_quality = 85
@@ -109,9 +119,20 @@
mattr_accessor :title_length_maximum
@@title_length_maximum = 60
mattr_accessor :title_length_minimum
@@title_length_minimum = 4
+
+ mattr_accessor :accepted_file_types
+ @@accepted_file_types = ['application/pdf', 'image/*', 'video/*']
+
+ mattr_accessor :maximum_file_size
+ @@maximum_file_size = 104857600 # 100MB
+
+ # @return [Boolean] Whether or not the frontend is multilingual
+ def self.multilingual_frontend?
+ Integral.frontend_locales.count > 1
+ end
# @return [Boolean] Shortcut to find out if blog is enabled
def self.blog_enabled?
Integral.blog_enabled == true
end