mirror of
https://github.com/valitydev/openapi-generator.git
synced 2024-11-08 11:23:58 +00:00
90 lines
2.0 KiB
Ruby
90 lines
2.0 KiB
Ruby
# module Swagger
|
|
class Object
|
|
|
|
unless Object.method_defined? :blank?
|
|
def blank?
|
|
respond_to?(:empty?) ? empty? : !self
|
|
end
|
|
end
|
|
|
|
unless Object.method_defined? :present?
|
|
def present?
|
|
!blank?
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
class String
|
|
|
|
unless String.method_defined? :underscore
|
|
def underscore
|
|
self.gsub(/::/, '/').
|
|
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
|
|
gsub(/([a-z\d])([A-Z])/,'\1_\2').
|
|
tr("-", "_").
|
|
downcase
|
|
end
|
|
end
|
|
|
|
unless String.method_defined? :camelize
|
|
def camelize(first_letter_in_uppercase = true)
|
|
if first_letter_in_uppercase != :lower
|
|
self.to_s.gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase }
|
|
else
|
|
self.to_s[0].chr.downcase + camelize(self)[1..-1]
|
|
end
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
class Hash
|
|
|
|
unless Hash.method_defined? :stringify_keys
|
|
def stringify_keys
|
|
inject({}) do |options, (key, value)|
|
|
options[key.to_s] = value
|
|
options
|
|
end
|
|
end
|
|
end
|
|
|
|
unless Hash.method_defined? :stringify_keys!
|
|
def stringify_keys!
|
|
self.replace(self.stringify_keys)
|
|
end
|
|
end
|
|
|
|
unless Hash.method_defined? :symbolize_keys
|
|
def symbolize_keys
|
|
inject({}) do |options, (key, value)|
|
|
options[(key.to_sym rescue key) || key] = value
|
|
options
|
|
end
|
|
end
|
|
end
|
|
|
|
unless Hash.method_defined? :symbolize_keys!
|
|
def symbolize_keys!
|
|
self.replace(self.symbolize_keys)
|
|
end
|
|
end
|
|
|
|
unless Hash.method_defined? :symbolize_and_underscore_keys
|
|
def symbolize_and_underscore_keys
|
|
inject({}) do |options, (key, value)|
|
|
options[(key.to_s.underscore.to_sym rescue key) || key] = value
|
|
options
|
|
end
|
|
end
|
|
end
|
|
|
|
unless Hash.method_defined? :symbolize_and_underscore_keys!
|
|
def symbolize_and_underscore_keys!
|
|
self.replace(self.symbolize_and_underscore_keys)
|
|
end
|
|
end
|
|
|
|
end
|
|
# end |