Sha256: faa71d4618d71e8f2923ac62a19f8ca7515003ebcbbed3207424f80bf4850344

Contents?: true

Size: 737 Bytes

Versions: 1

Compression:

Stored size: 737 Bytes

Contents

module DCI
  module Controller
    module DSL
      def self.included(base)
        base.extend(ClassMethods)
      end

      module ClassMethods
        def extend_resource(resource_method, *extensions)
          class_eval do
            extensions.each do |extension|
              define_method("#{resource_method}_with_#{extension}") do
                send("#{resource_method}_without_#{extension}").tap do |obj|
                  obj.extend(extension)
                end
              end
              alias_method "#{resource_method}_without_#{extension}", resource_method
              alias_method resource_method, "#{resource_method}_with_#{extension}"
            end
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dci-rails-0.1.2 lib/controller/dsl.rb