X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Faviator%2Ffeature%2Faviator%2Fcore%2Frequest.rb;fp=3rdparty%2Fmodules%2Faviator%2Ffeature%2Faviator%2Fcore%2Frequest.rb;h=0000000000000000000000000000000000000000;hb=6e1426dc77fb4e5d51f07c187c6f2219431dc31e;hp=ed9c6cef188eaa763e9b0afab7bf861d80e4a2db;hpb=87423ba664cd5f2bb462ebadd08b1a90d0fe1c8d;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/aviator/feature/aviator/core/request.rb b/3rdparty/modules/aviator/feature/aviator/core/request.rb deleted file mode 100644 index ed9c6cef1..000000000 --- a/3rdparty/modules/aviator/feature/aviator/core/request.rb +++ /dev/null @@ -1,229 +0,0 @@ -module Aviator - - class Request - - class ApiVersionNotDefinedError < StandardError - def initialize - super "api_version is not defined." - end - end - - class EndpointTypeNotDefinedError < StandardError - def initialize - super "endpoint_type is not defined." - end - end - - class PathNotDefinedError < StandardError - def initialize - super "path is not defined." - end - end - - - def initialize(session_data=nil) - @session_data = session_data - - params = self.class.params_class.new if self.class.params_class - - if params - yield(params) if block_given? - validate_params(params) - end - - @params = params - end - - - def anonymous? - self.class.anonymous? - end - - - def body? - self.class.body? - end - - - def headers? - self.class.headers? - end - - - def links - self.class.links - end - - - def optional_params - self.class.optional_params - end - - - def params - @params.dup - end - - - def required_params - self.class.required_params - end - - - def session_data - @session_data - end - - - def session_data? - !session_data.nil? - end - - - def querystring? - self.class.querystring? - end - - - def url? - self.class.url? - end - - - private - - - def validate_params(params) - required_params = self.class.required_params - - required_params.each do |name| - raise ArgumentError.new("Missing parameter #{ name }.") if params.send(name).nil? - end - end - - - # NOTE that, because we are defining the following as class methods, when they - # are called, all 'instance' variables are actually defined in the descendant class, - # not in the instance/object. This is by design since we want to keep these attributes - # within the class and because they don't change between instances anyway. - class << self - - def anonymous? - respond_to?(:anonymous) && anonymous == true - end - - - def body? - instance_methods.include? :body - end - - - def headers? - instance_methods.include? :headers - end - - - def links - @links ||= [] - end - - - def param_aliases - @param_aliases ||= {} - end - - - def params_class - all_params = required_params + optional_params - - if all_params.length > 0 && @params_class.nil? - @params_class = build_params_class(all_params, self.param_aliases) - end - - @params_class - end - - - def optional_params - @optional_params ||= [] - end - - - def querystring? - instance_methods.include? :querystring - end - - - def required_params - @required_params ||= [] - end - - - def url? - instance_methods.include? :url - end - - - private - - - def build_params_class(all_params, param_aliases) - Struct.new(*all_params) do - alias :param_getter :[] - alias :param_setter :[]= - - define_method :[] do |key| - key = param_aliases[key.to_sym] if param_aliases.keys.include? key.to_sym - param_getter(key) - end - - define_method :[]= do |key, value| - key = param_aliases[key.to_sym] if param_aliases.keys.include? key.to_sym - param_setter(key, value) - end - - param_aliases.each do |param_alias, param_name| - define_method param_alias do - param_getter(param_name) - end - - define_method "#{ param_alias }=" do |value| - param_setter(param_name, value) - end - end - end - end - - - def link(rel, href) - links << { :rel => rel, :href => href } - end - - - def meta(attr_name, attr_value) - eigenclass = class << self; self; end - eigenclass.send(:define_method, attr_name) do - attr_value - end - - define_method(attr_name) do - self.class.send(attr_name) - end - end - - - def param(param_name, opts={}) - opts = Hashish.new(opts) - list = (opts[:required] == false ? optional_params : required_params) - list << param_name unless optional_params.include?(param_name) - - if opts[:alias] - self.param_aliases[opts[:alias]] = param_name - end - end - - end - - end - -end