Sha256: cb019331a0b3a7df341dfc62312bb1481fab1474ee1d3390310c120a861c1f68

Contents?: true

Size: 1.11 KB

Versions: 2

Compression:

Stored size: 1.11 KB

Contents

module Nephos
  class Controller

    attr_reader :env, :infos, :callpath, :params

    # @param env [Hash] env extracted from the http request
    # @param parsed [Hash] pre-parsed env with parameters, ...
    def initialize env={}, parsed={path: [], params: {}}, callpath={params: []}
      raise ArgumentError, "env must be a Hash" unless env.is_a? Hash
      raise ArgumentError, "parsed must be a Hash" unless parsed.is_a? Hash
      raise ArgumentError, "callpath must be a Hash" unless callpath.is_a? Hash
      raise ArgumentError, "Invalid Parsed. :path must be associated with an Array" unless parsed[:path].is_a? Array
      raise ArgumentError, "Invalid Parsed. :params must be associated with a Hash" unless parsed[:params].is_a? Hash
      raise ArgumentError, "Invalid Callpath. :params must be associated with an Array" unless callpath[:params].is_a? Array
      @env= env
      @infos= parsed
      @callpath= callpath
      @params= parsed[:params]
      @params.merge! Hash[callpath[:params].zip @infos[:path]]
      @params.select!{|k,v| not k.to_s.empty?}
      @params = Params.new(@params)
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
nephos-server-0.5.0 lib/nephos-server/controller.rb
nephos-server-0.4.8 lib/nephos-server/controller.rb