Sha256: dc4c327e59618b561f2bf1eb8127d3d2dfc589e592aaf189078c68e3c612234f
Contents?: true
Size: 1.33 KB
Versions: 1
Compression:
Stored size: 1.33 KB
Contents
module ResourceSet class Action attr_reader :name def initialize(name, verb = nil, path = nil) @name = name @verb = (verb && verb.downcase.to_sym) || :get @path = path @query_keys = [] end def verb(v = nil) @verb = v if v @verb end def path(path = nil, &block) raise "You must pass either a block or a string for paths" if path and block_given? @path = path if path @path = block if block_given? @path end def query_keys(*keys) return @query_keys if keys.empty? @query_keys += keys end def handlers @handlers ||= {} end def handler(*response_codes, &block) if response_codes.empty? handlers[:any] = block else response_codes.each do |code| code = StatusCodeMapper.code_for(code) unless code.is_a?(Integer) handlers[code] = block end end end def body(&block) @body_handler = block if block_given? @body_handler end def hooks @hooks ||= {} end def before_request(method_name = nil, &block) hooks[:before] ||= [] if block_given? hooks[:before] << block else raise "Must include a method name" unless method_name hooks[:before] << method_name end nil end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
resource_set-1.0.0 | lib/resource_set/action.rb |