class DocodocoJp
Constants
- DEFAULT_API_HOST
- VERSION
Attributes
apikey[R]
config[R]
user_valid[R]
Public Class Methods
api_host()
click to toggle source
# File lib/docodoco_jp.rb, line 27 def api_host @api_host = DEFAULT_API_HOST if @api_host.nil? return @api_host end
api_host=(host)
click to toggle source
# File lib/docodoco_jp.rb, line 23 def api_host=(host) @api_host = host end
default_config()
click to toggle source
# File lib/docodoco_jp.rb, line 32 def default_config return { ssl: true, faraday_log: false, charset: "utf_8", response_type: :hashie } end
new(apikey1, apikey2, options ={})
click to toggle source
# File lib/docodoco_jp.rb, line 42 def initialize(apikey1, apikey2, options ={}) @apikey = [apikey1, apikey2] @user_valid = false @config = self.class.default_config @config = @config.merge({ ssl: options[:ssl], faraday_log: options[:faraday_log], charset: options[:charset], response_type: options[:response_type] }) do |k, n, o| result = n result = o unless o.nil? result end end
Public Instance Methods
check_user()
click to toggle source
# File lib/docodoco_jp.rb, line 67 def check_user() xmldoc = REXML::Document.new(check_user_api().body) status = xmldoc.elements['/docodoco/user_status'].get_text.to_s.to_i message = xmldoc.elements['/docodoco/user_status_message'].get_text.to_s result = [200, 201].include?(status) @user_valid = true return result, {status: status, message: message} end
check_user!()
click to toggle source
# File lib/docodoco_jp.rb, line 76 def check_user!() result, json = check_user raise DocodocoJp::ApiKeyInvalid unless result return result, json end
search(ipadr = nil)
click to toggle source
# File lib/docodoco_jp.rb, line 59 def search(ipadr = nil) result = hash_nomalize(JSON.parse(search_api(ipadr).body)) if config[:response_type] == :hashie result = Hashie::Mash.new(result) end return result end
Private Instance Methods
api_params(h = {})
click to toggle source
# File lib/docodoco_jp.rb, line 92 def api_params(h = {}) return { key1: @apikey[0], key2: @apikey[1], }.merge(h) end
api_request(path, params)
click to toggle source
# File lib/docodoco_jp.rb, line 111 def api_request(path, params) response = connection.get path, params return response end
check_user_api()
click to toggle source
# File lib/docodoco_jp.rb, line 83 def check_user_api() return api_request "/v4/user_info", api_params end
connection()
click to toggle source
# File lib/docodoco_jp.rb, line 99 def connection return @connection ||= ->() { protocol = config[:ssl] ? "https" : "http" options = config[:ssl] ? { ssl: { verify: true } } : {} Faraday.new("#{protocol}://#{DocodocoJp::api_host}", options) do |builder| builder.request :url_encoded builder.response :logger if config[:faraday_log] builder.adapter :net_http end }.call() end
hash_nomalize(obj)
click to toggle source
# File lib/docodoco_jp.rb, line 116 def hash_nomalize(obj) snakecase = ->(str) do return str.downcase if str =~ /^[A-Z]+$/xom return str.scan(/[A-Z][a-z]*/xom).join("_").downcase end return obj.inject({}){|memo,(k,v)| memo[snakecase.(k.to_s).intern] = hash_nomalize(v); memo} if obj.is_a? Hash return obj.inject([]){|memo,v| memo << hash_nomalize(v); memo} if obj.is_a? Array return obj end
search_api(ipadr = nil)
click to toggle source
# File lib/docodoco_jp.rb, line 87 def search_api(ipadr = nil) raise DocodocoJp::IPv4ValidationError unless ipadr.nil? || Resolv::IPv4::Regex =~ ipadr return api_request "/v4/search", api_params(format: :json, charset: config[:charset], ipadr: ipadr) end