aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRhenium <rhenium@rhe.jp>2014-01-15 05:46:54 +0900
committerRhenium <rhenium@rhe.jp>2014-01-15 05:47:12 +0900
commit2c4a2f7192c3f2f7bc8e4fa806d3a423bd244890 (patch)
tree02e12301afc21e8e423b951d0db15463a5d482d0
parent48adbd31283e80c27d2df42551b86ba36056ce8f (diff)
downloadaclog-2c4a2f7192c3f2f7bc8e4fa806d3a423bd244890.tar.gz
remove parameter validation feature from Apidoc
-rw-r--r--app/views/apidocs/endpoint.html.haml4
-rw-r--r--lib/apidoc/controller_dsl.rb7
-rw-r--r--lib/apidoc/controller_dsl/parameters.rb8
-rw-r--r--lib/apidoc/endpoint.rb6
-rw-r--r--lib/apidoc/parameter.rb33
5 files changed, 11 insertions, 47 deletions
diff --git a/app/views/apidocs/endpoint.html.haml b/app/views/apidocs/endpoint.html.haml
index 04a9afd..28094d5 100644
--- a/app/views/apidocs/endpoint.html.haml
+++ b/app/views/apidocs/endpoint.html.haml
@@ -20,3 +20,7 @@
%small optional
%td
%p= parameter.description
+ - if parameter.example
+ %p
+ Example Value:
+ = parameter.example
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