diff options
author | Rhenium <rhenium@rhe.jp> | 2014-01-15 05:46:54 +0900 |
---|---|---|
committer | Rhenium <rhenium@rhe.jp> | 2014-01-15 05:47:12 +0900 |
commit | 2c4a2f7192c3f2f7bc8e4fa806d3a423bd244890 (patch) | |
tree | 02e12301afc21e8e423b951d0db15463a5d482d0 /lib | |
parent | 48adbd31283e80c27d2df42551b86ba36056ce8f (diff) | |
download | aclog-2c4a2f7192c3f2f7bc8e4fa806d3a423bd244890.tar.gz |
remove parameter validation feature from Apidoc
Diffstat (limited to 'lib')
-rw-r--r-- | lib/apidoc/controller_dsl.rb | 7 | ||||
-rw-r--r-- | lib/apidoc/controller_dsl/parameters.rb | 8 | ||||
-rw-r--r-- | lib/apidoc/endpoint.rb | 6 | ||||
-rw-r--r-- | lib/apidoc/parameter.rb | 33 |
4 files changed, 7 insertions, 47 deletions
diff --git a/lib/apidoc/controller_dsl.rb b/lib/apidoc/controller_dsl.rb index 61164ca..38b1727 100644 --- a/lib/apidoc/controller_dsl.rb +++ b/lib/apidoc/controller_dsl.rb @@ -9,15 +9,8 @@ module Apidoc super(method_name) if _apidoc_endpoint_started? - orig_method = self.instance_method(method_name) - current_endpoint = _apidoc_current_endpoint _apidoc_resource.endpoints[method_name] = _apidoc_current_endpoint self._apidoc_current_endpoint = nil - - define_method(method_name) do |*args| - current_endpoint.validate!(params) - orig_method.bind(self).call(*args) - end end end diff --git a/lib/apidoc/controller_dsl/parameters.rb b/lib/apidoc/controller_dsl/parameters.rb index 39533b6..c3d285f 100644 --- a/lib/apidoc/controller_dsl/parameters.rb +++ b/lib/apidoc/controller_dsl/parameters.rb @@ -1,12 +1,12 @@ module Apidoc module ControllerDsl module Parameters - def requires(name, validation, description) - _apidoc_current_endpoint.parameters << Parameter.new(name, validation, description, required: true) + def requires(name, example, description) + _apidoc_current_endpoint.parameters << Parameter.new(name, example, description, required: true) end - def optional(name, validation, description) - _apidoc_current_endpoint.parameters << Parameter.new(name, validation, description, required: false) + def optional(name, example, description) + _apidoc_current_endpoint.parameters << Parameter.new(name, example, description, required: false) end def param_group(name, &blk) diff --git a/lib/apidoc/endpoint.rb b/lib/apidoc/endpoint.rb index 5d200b3..14dedeb 100644 --- a/lib/apidoc/endpoint.rb +++ b/lib/apidoc/endpoint.rb @@ -14,11 +14,5 @@ module Apidoc def to_s "#{method.to_s.upcase} #{name}" end - - def validate!(params) - parameters.each do |parameter| - parameter.validate!(params) - end - end end end diff --git a/lib/apidoc/parameter.rb b/lib/apidoc/parameter.rb index 50bdb75..58b3d26 100644 --- a/lib/apidoc/parameter.rb +++ b/lib/apidoc/parameter.rb @@ -1,40 +1,13 @@ module Apidoc class Parameter - attr_reader :name, :validator, :description, :required + attr_reader :name, :example, :description, :required alias required? required - def initialize(name, validation, description, required: false) + def initialize(name, example, description, required: false) @name = name - @validator = parse_validation(validation) + @example = example @description = description @required = required end - - def parse_validation(validation) - case validation - when :integer - ->(value) { /^[1-9][0-9]*$/ =~ value } - when :string - ->(value) { true } - when Regexp - ->(value) { validation =~ value } - else - if validation.is_a?(Range) && validation.begin.is_a?(Integer) - ->(value) { /^[1-9][0-9]*$/ =~ value && validation === value.to_i } - else - raise DslError, "Not implemented validation type: #{validation}." - end - end - end - - def validate!(params) - if self.required && params[self.name].blank? - raise ParameterMissing, self.name - end - - if !params[self.name].nil? && !self.validator.call(params[self.name]) - raise ParameterInvalid, self.name - end - end end end |