lib/openname.rb in openname-0.4.5 vs lib/openname.rb in openname-0.4.6
- old
+ new
@@ -14,10 +14,12 @@
# https://github.com/openname/openname-specifications#usernames
OPENNAME_REGEX = /^[a-z0-9_]{1,60}$/
@@endpoint = nil
+ @@suffix = ".json"
+
##
# Current endpoint used by the library
def self.endpoint
if @@endpoint.nil?
return DEFAULT_ENDPOINT
@@ -25,16 +27,35 @@
return @@endpoint
end
end
##
+ # Set suffix appended to openname to +suffix+
+ # if +suffix+ is +nil+, no suffix will be appended
+ def self.suffix=(suffix)
+ @@suffix = suffix
+ end
+
+ ##
+ # Suffix appended to openname on each endpoint request
+ def self.suffix
+ if @@suffix.nil?
+ return ""
+ else
+ return @@suffix
+ end
+ end
+
+ ##
# Set endpoint to +url+
# if +url+ is +nil+, +DEFAULT_ENDPOINT+ is used as the endpoint
def self.endpoint=(url)
@@endpoint = url
end
+
+
##
# Check if the given +openname+ is in proper format
# Does not downcase input
def self.valid?(openname)
Openname::OPENNAME_REGEX.match(openname).nil? ? false : true
@@ -42,11 +63,11 @@
##
# Retrieve JSON data stored in Openname record
def self.get_json(openname)
raise ArgumentError.new("#{openname} is not a valid Openname") if !self.valid?(openname)
- uri = URI(self.endpoint + "/#{openname.downcase}.json")
+ uri = URI(self.endpoint + "/#{openname.downcase}#{self.suffix}")
http = Net::HTTP.new(uri.host,uri.port)
http.use_ssl = uri.scheme == "https" ? true : false
req = Net::HTTP::Get.new(uri.path, {'User-Agent' => USERAGENT})
res = http.request(req)
case res.code.to_s
@@ -122,10 +143,10 @@
@facebook_username = json["facebook"]["username"] if json["facebook"]
@twitter_username = json["twitter"]["username"] if json["twitter"]
@instagram_username = json["instagram"]["username"] if json["instagram"]
@linkedin_url = json["linkedin"]["url"] if json["linkedin"]
@bitcoin_address = json["bitcoin"]["address"] if json["bitcoin"]
- @bitmessage_address = json["bitmessage"]["username"] if json["bitmessage"]
+ @bitmessage_address = json["bitmessage"]["address"] if json["bitmessage"]
@bitcoinotc_username = json["bitcoinotc"]["username"] if json["bitcoinotc"]
@pgp_fingerprint = json["pgp"]["fingerprint"] if json["pgp"]
@pgp_url = json["pgp"]["url"] if json["pgp"]
@schema_version = json["v"]
@orgs = parse_orgs(json["orgs"])