49 lines
1.3 KiB
Ruby
49 lines
1.3 KiB
Ruby
require "active_hash"
|
|
require "ruby2js"
|
|
require "ruby2js/es2015"
|
|
require "ruby2js/filter/functions"
|
|
require "ruby2js/haml"
|
|
require "ruby2js/filter/vue"
|
|
require "merged/shared_helper"
|
|
|
|
module Merged
|
|
class Engine < ::Rails::Engine
|
|
isolate_namespace Merged
|
|
config.merged = Merged
|
|
|
|
initializer "merged.assets.precompile" do |app|
|
|
app.config.assets.precompile += %w( merged/merged.css
|
|
merged/home merged/merged_logo)
|
|
add_image_assets(app.config , "section_preview")
|
|
add_image_assets(app.config , "card_preview")
|
|
end
|
|
|
|
initializer "after_initialize" do |app|
|
|
ActiveSupport::Reloader.to_prepare do
|
|
Merged::Engine.load_data
|
|
end
|
|
end
|
|
|
|
private
|
|
def add_image_assets(config , sub_dir )
|
|
dir = Dir.new(Engine.root.join("app/assets/images/merged/" , sub_dir))
|
|
dir.children.each do |file|
|
|
kid = "merged/" + sub_dir + "/" + file
|
|
config.assets.precompile << kid
|
|
end
|
|
end
|
|
def self.load_data
|
|
# pre-load data
|
|
[OptionDefinition, CardStyle, SectionStyle , PageStyle,
|
|
Card , Section , Page , Image].each {|clazz| clazz.all }
|
|
end
|
|
|
|
def self.load_from( kind , path )
|
|
return unless File.exists?(path)
|
|
clazz = "Merged::#{kind.camelcase}".constantize
|
|
clazz.load(YAML.load_file( path ))
|
|
end
|
|
|
|
end
|
|
end
|