Sha256: 67d81cdc137da00a8731945a2699811a508a401a802b40b8ccc25d1f47b4f710

Contents?: true

Size: 1.13 KB

Versions: 44

Compression:

Stored size: 1.13 KB

Contents

module Alchemy
  module Modules

    @@alchemy_modules = YAML.load_file(File.join(File.dirname(__FILE__), '../..', 'config/alchemy', 'modules.yml'))

    def self.included(base)
      base.send :helper_method, :alchemy_modules, :module_definition_for
    end

    def alchemy_modules
      @@alchemy_modules
    end

    def module_definition_for(name)
      if name.is_a? String
        alchemy_modules.detect { |p| p["name"] == name }
      elsif name.is_a? Hash
        alchemy_modules.detect do |alchemy_module|
          alchemy_module.stringify_keys!
          name.symbolize_keys!
          module_navi = alchemy_module["navigation"].stringify_keys
          if module_navi["sub_navigation"]
            module_navi["sub_navigation"].map(&:stringify_keys).detect do |subnavi|
              subnavi["controller"].gsub(/^\//, '') == name[:controller] && subnavi["action"] == name[:action]
            end
          end
        end
      else
        raise "Could not find module definition for #{name}"
      end
    end

    def self.register_module(module_definition)
      @@alchemy_modules << module_definition.stringify_keys
    end

  end
end

Version data entries

44 entries across 44 versions & 1 rubygems

Version Path
alchemy_cms-2.6.3 lib/alchemy/modules.rb
alchemy_cms-2.7.0 lib/alchemy/modules.rb
alchemy_cms-2.6.2.1 lib/alchemy/modules.rb
alchemy_cms-2.6.2 lib/alchemy/modules.rb
alchemy_cms-2.6.1 lib/alchemy/modules.rb
alchemy_cms-2.6.0 lib/alchemy/modules.rb
alchemy_cms-2.6.0.rc5 lib/alchemy/modules.rb
alchemy_cms-2.5.3.1 lib/alchemy/modules.rb
alchemy_cms-2.5.3 lib/alchemy/modules.rb
alchemy_cms-2.5.2.2 lib/alchemy/modules.rb
alchemy_cms-2.5.2.1 lib/alchemy/modules.rb
alchemy_cms-2.5.2 lib/alchemy/modules.rb
alchemy_cms-2.5.1 lib/alchemy/modules.rb
alchemy_cms-2.5.0 lib/alchemy/modules.rb
alchemy_cms-2.5.0.rc3 lib/alchemy/modules.rb
alchemy_cms-2.5.0.b9 lib/alchemy/modules.rb
alchemy_cms-2.3.2 lib/alchemy/modules.rb
alchemy_cms-2.2.4 lib/alchemy/modules.rb
alchemy_cms-2.4.1 lib/alchemy/modules.rb
alchemy_cms-2.5.0.b5 lib/alchemy/modules.rb