Sha256: eb3a926332368c988f8c724f38af368cb748c642b318c280e69d16b7c4097f2e

Contents?: true

Size: 720 Bytes

Versions: 1

Compression:

Stored size: 720 Bytes

Contents

module Arrest
  module HasView
    include Arrest::HasAttributes

    def self.included(base)
      base.extend(ClassMethods)
    end

    module ClassMethods
      def has_view(*args)

        method_name, options = args
        if options
          clazz = options[:class_name]
        end
        clazz ||= StringUtils.classify(method_name.to_s)

        send :define_method, method_name do
          @views ||= {}
          @views[method_name] ||= begin

            r = self.class.source().get(self.context, "#{self.resource_path}/#{id}/#{method_name}")
            r = self.class.body_root(r)

            Arrest::Source.class_loader.load.new(self.context, r)
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
arrest-0.0.90 lib/arrest/helper/has_view.rb