reneklacan/kabutops

View on GitHub
lib/kabutops/extensions/parameterable.rb

Summary

Maintainability
A
25 mins
Test Coverage
# -*- encoding : utf-8 -*-

module Kabutops

  module Extensions

    module Parameterable
      extend Extensions::Includable

      module ClassMethods
        def params *list
          list.each do |name|
            define_method name do |*args|
              @params ||= Hashie::Mash.new
              if args.size == 1
                @params[name] = args[0]
              else
                @params[name] = args
              end
            end
          end

          define_method :params do
            @params ||= Hashie::Mash.new
          end
        end
      end
    end

  end

end