blockstack 0.5.9 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8daf40736cb953c765242753a4cb4eb2316e2e0c
4
- data.tar.gz: bd4f321c8caf70f2c3553a309730f7fb265a8ca0
3
+ metadata.gz: 110e13f945818be7f021ec364e7922949c32e043
4
+ data.tar.gz: 6836fce8e6391e69cb0b76a2b738f72656327af2
5
5
  SHA512:
6
- metadata.gz: f6cc5b4436ef16f75a3cc85dfc631ba30f1caaff7e772d3dd59b61bf66ab41fc43f84b99c5ad2a36058dff3612d5ff706c095a788107389f78a8d959f5f9ad26
7
- data.tar.gz: 6d9a69b8302ecce9131b9aa40ff95b876ecc6f5c7312b3f42e13dee629ae562701ae9b3f021a54fa67a8d5eadc42686513bf01dc78f240197dc1929b205843a6
6
+ metadata.gz: fd2c6838722c54914fb638ab9cb468b03527ef45f037cd19c3f212494962106b68ed0b967af173c3bf5528e061b8b66d9ed6c0b15b193c003341f83bf1d03ba8
7
+ data.tar.gz: ba8438c6b75277d522bcc8ead5f845418ccc7aeb1a4d396f0aab9c1e668b1cc40d7f78a7d92e2085117f5bda038e140c59e3ee3b4f2d1c8aded9523133fc7175
@@ -1,4 +1,5 @@
1
1
  require "blockstack/version"
2
+ require "blockstack/user"
2
3
  require "bitcoin"
3
4
  require "faraday"
4
5
  require "jwtb"
@@ -0,0 +1,124 @@
1
+ module Blockstack
2
+ class User
3
+ def self.from_json(json, username)
4
+ User.new(json, username)
5
+ end
6
+
7
+ attr_reader :username
8
+ attr_reader :name_formatted
9
+ attr_reader :avatar_url
10
+ attr_reader :cover_url
11
+ attr_reader :location_formatted
12
+ attr_reader :website
13
+ attr_reader :bio
14
+ attr_reader :angellist_username
15
+ attr_reader :github_username
16
+ attr_reader :facebook_username
17
+ attr_reader :twitter_username
18
+ attr_reader :instagram_username
19
+ attr_reader :linkedin_url
20
+ attr_reader :bitcoin_address
21
+ attr_reader :bitmessage_address
22
+ attr_reader :bitcoinotc_username
23
+ attr_reader :pgp_fingerprint
24
+ attr_reader :pgp_url
25
+ attr_reader :orgs
26
+ attr_reader :schema_version
27
+
28
+ def initialize(json, username)
29
+ if(json["profile"])
30
+ json = json["profile"]
31
+ end
32
+ if(json['v'] == "0.2")
33
+ @username = username
34
+ @name_formatted = json["name"]["formatted"] if json["name"]
35
+ @avatar_url = json["avatar"]["url"] if json["avatar"]
36
+ @cover_url = json["cover"]["url"] if json["cover"]
37
+ @location_formatted = json["location"]["formatted"] if json["location"]
38
+ @website = json["website"]
39
+ @bio = json["bio"]
40
+ @angellist_username = json["angellist"]["username"] if json["angellist"]
41
+ @github_username = json["github"]["username"] if json["github"]
42
+ @facebook_username = json["facebook"]["username"] if json["facebook"]
43
+ @twitter_username = json["twitter"]["username"] if json["twitter"]
44
+ @instagram_username = json["instagram"]["username"] if json["instagram"]
45
+ @linkedin_url = json["linkedin"]["url"] if json["linkedin"]
46
+ @bitcoin_address = json["bitcoin"]["address"] if json["bitcoin"]
47
+ @bitmessage_address = json["bitmessage"]["address"] if json["bitmessage"]
48
+ @bitcoinotc_username = json["bitcoinotc"]["username"] if json["bitcoinotc"]
49
+ @pgp_fingerprint = json["pgp"]["fingerprint"] if json["pgp"]
50
+ @pgp_url = json["pgp"]["url"] if json["pgp"]
51
+ @schema_version = json["v"]
52
+ @orgs = parse_orgs(json["orgs"])
53
+ else
54
+ @username = username
55
+ @name_formatted = json["name"] if json["name"]
56
+ @avatar_url = find_image_url(json, 'avatar')
57
+ @cover_url = find_image_url(json, 'cover')
58
+ @location_formatted = json["address"]["addressLocality"] if json["address"]
59
+ @website = json["website"][0]["url"] if json["website"] && json["website"][0]
60
+ @bio = json["description"]
61
+ @angellist_username = find_account_username(json, "angellist")
62
+ @github_username = find_account_username(json, "github")
63
+ @facebook_username = find_account_username(json, "facebook")
64
+ @twitter_username = find_account_username(json, "twitter")
65
+ @instagram_username = find_account_username(json, "instagram")
66
+ @linkedin_url = find_account_username(json, "linkedin")
67
+ @bitcoin_address = find_account_username(json, "bitcoin")
68
+ @bitmessage_address = find_account_username(json, "bitmessage")
69
+ @bitcoinotc_username = find_account_username(json, "bitcoinotc")
70
+ @pgp_fingerprint = find_account_username(json, "pgp")
71
+ @pgp_url = find_account(json, "pgp")['contentUrl'] if @pgp_fingerprint
72
+ @schema_version = "0.3"
73
+ @orgs = parse_orgs(json["orgs"])
74
+ end
75
+
76
+ end
77
+
78
+ def openname
79
+ warn "[DEPRECATION] `openname` is deprecated. Please use `username` instead."
80
+ username
81
+ end
82
+
83
+ protected
84
+
85
+ def find_image_url(json, type)
86
+ images = json['image']
87
+ if(images && images.kind_of?(Array))
88
+ for image in images
89
+ return image['contentUrl'] if image['name'] == type
90
+ end
91
+ end
92
+ nil
93
+ end
94
+
95
+ def find_account(json, service)
96
+ accounts = json['account']
97
+ if(accounts && accounts.kind_of?(Array))
98
+ for account in accounts
99
+ return account if account['service'] == service
100
+ end
101
+ end
102
+ nil
103
+ end
104
+
105
+ def find_account_username(json, service)
106
+ account = find_account(json, service)
107
+ if(account)
108
+ return account['identifier']
109
+ end
110
+ nil
111
+ end
112
+
113
+ def parse_orgs(orgs_json)
114
+ orgs = Array.new
115
+ if orgs_json
116
+ for org_json in orgs_json
117
+ orgs << Org.new(org_json)
118
+ end
119
+ end
120
+ orgs
121
+ end
122
+
123
+ end
124
+ end
@@ -1,3 +1,3 @@
1
1
  module Blockstack
2
- VERSION = "0.5.9"
2
+ VERSION = "0.6.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blockstack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.9
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Larry Salibra
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-05-08 00:00:00.000000000 Z
11
+ date: 2017-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -139,6 +139,7 @@ files:
139
139
  - blockstack.gemspec
140
140
  - circle.yml
141
141
  - lib/blockstack.rb
142
+ - lib/blockstack/user.rb
142
143
  - lib/blockstack/version.rb
143
144
  homepage: https://github.com/larrysalibra/blockstack-ruby
144
145
  licenses: