Sha256: 24f58e0ce47c8f770c8d9fc3dadf59db31ef165e914d54ef330ae15aba5366d3

Contents?: true

Size: 893 Bytes

Versions: 2

Compression:

Stored size: 893 Bytes

Contents

module Panoramic
  module Orm
    module ActiveRecord
      def store_templates
        class_eval do
          validates :body,    :presence => true
          validates :path,    :presence => true
          validates :format,  :inclusion => Mime::SET.symbols.map(&:to_s)
          validates :locale,  :inclusion => I18n.available_locales.map(&:to_s), :allow_blank => true
          validates :handler, :inclusion => ActionView::Template::Handlers.extensions.map(&:to_s)

          after_save { Panoramic::Resolver.instance.clear_cache }

          extend ClassMethods
        end
      end

      module ClassMethods
        def find_model_templates(conditions = {})
          self.where(conditions)
        end

        def resolver(options={})
          Panoramic::Resolver.using self, options
        end
      end
    end
  end
end

ActiveRecord::Base.extend Panoramic::Orm::ActiveRecord

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
panoramic-0.0.7 lib/panoramic/orm/active_record.rb
panoramic-0.0.6 lib/panoramic/orm/active_record.rb