Sha256: 4307f65b54ea21b1e644f965c521293e6272bda0a92213ad787d32da62c9b515

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

module TaoOnRails
  module ActionView
    module Helpers
      extend ActiveSupport::Concern

      def page_id
        return @page_id if defined?(@page_id)
        controller_names = controller_path.split('/')
        [controller_names, action_name].compact.flatten.join('_').dasherize
      end

      class_methods do
        # Define the dynamic view helpers for components
        # This method should be called in action_view context
        def define_component_helpers
          load_tao_components
          ::ActiveSupport.run_load_hooks(:tao_components, self)

          TaoOnRails::Components::Base.descendants.each do |klass|
            module_eval %Q{
              def #{klass.tag_name.underscore} *args, &block
                #{klass.name}.new(self, *args).render(&block)
              end
            }
          end
        end

        def load_tao_components(root = Rails.root)
          Dir.glob([
            root.join('lib/**/components/**/*.rb'),
            root.join('app/**/components/**/*.rb')
          ]).each do |component|
            require component
          end
        end

      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tao_on_rails-1.0.0.beta.1 lib/tao_on_rails/action_view/helpers.rb