Sha256: 8cacd10fe30c7d012e9597029089d50c81ff79b05d507e8aeb900bd1f615a442

Contents?: true

Size: 1.41 KB

Versions: 1

Compression:

Stored size: 1.41 KB

Contents

#gems
require 'formol_'

module Formol
  mattr_reader    :config
  
  class << self
    def configure(&block)
      @@config = Config.new

      class_eval &block

      load_config_from_file
      set_formatter
      
      load_formol_libs
    end

    private
    
    # load formol libs located inside main app
    def load_formol_libs
      Dir[Rails.root.join('lib', 'formol', '**', '*.rb')].each do |f|
        require f
      end
      
      Formol::Permissions::Manager.send(:include, Formol::Permissions::SpecialRights)
    end
    
    # set formatter
    def set_formatter
      config.formatter = Formol::Formatters::Redcarpet::Formatter
    end

    # load config.yml located inside main app
    def load_config_from_file
      file_path = Rails.root.join('config/formol.yml')

      return unless File.exists?(file_path)

      h = HashWithIndifferentAccess.new(YAML::load(File.open(file_path)))

      return unless h[:formol]

      h = h[:formol]

      if h[:profiles]
        profiles = Formol::Permissions::Profiles.from_hash(h[:profiles])
        Formol::Permissions::Manager.profiles = profiles
      end
    end
  end
end

require 'formol/engine'

ActionController::Base.send(:include, Formol::Controllers::Auth)
ActionController::Base.send(:include, Formol::Permissions::Controllers)

ActionView::Base.send(:include, Formol::ViewHelpers::FormatHelper)
ActionView::Base.send(:include, Formol::ViewHelpers::AssetsHelper)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
formol-0.0.4 lib/formol.rb