Sha256: 2d6275ebc2cb55d89ea374604fb8a0ca1df8db7c0c39eed64022a3a563ebaa4d

Contents?: true

Size: 1.04 KB

Versions: 14

Compression:

Stored size: 1.04 KB

Contents

class RakeCommander
  module RakeContext
    class Wrapper
      include Rake::DSL

      # Allows to interact with rake
      # @note this prevents subclass overlap methods to be used
      def context(object = global_instance, &block)
        raise ArgumentError, "Block required" unless block_given?
        object.instance_eval(&block)
      end

      def respond_to_missing?(meth, *args)
        global_instance.send(:respond_to_missing?, meth, *args) || super
      end

      def respond_to?(meth, with_private = true)
        global_instance.respond_to?(meth, with_private) || super
      end

      # Forward
      def method_missing(meth, *args, **kargs, &block)
        if respond_to?(meth)
          context do
            send(meth, *args, **kargs, &block)
          end
        else
          super
        end
      end

      private


      # Refers to the top level object
      def global_instance
        @global_instance ||= eval('self', TOPLEVEL_BINDING, __FILE__, __LINE__)
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
rake-commander-0.4.0 lib/rake-commander/rake_context/wrapper.rb
rake-commander-0.3.6 lib/rake-commander/rake_context/wrapper.rb
rake-commander-0.3.5 lib/rake-commander/rake_context/wrapper.rb
rake-commander-0.3.3 lib/rake-commander/rake_context/wrapper.rb
rake-commander-0.2.12 lib/rake-commander/rake_context/wrapper.rb
rake-commander-0.2.11 lib/rake-commander/rake_context/wrapper.rb
rake-commander-0.2.10 lib/rake-commander/rake_context/wrapper.rb
rake-commander-0.2.7 lib/rake-commander/rake_context/wrapper.rb
rake-commander-0.2.6 lib/rake-commander/rake_context/wrapper.rb
rake-commander-0.2.5 lib/rake-commander/rake_context/wrapper.rb
rake-commander-0.2.4 lib/rake-commander/rake_context/wrapper.rb
rake-commander-0.2.3 lib/rake-commander/rake_context/wrapper.rb
rake-commander-0.2.2 lib/rake-commander/rake_context/wrapper.rb
rake-commander-0.2.0 lib/rake-commander/rake_context/wrapper.rb