merged/lib/merged/engine.rb

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