yo-ruby 0.1.4 → 1.0.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.
Files changed (3) hide show
  1. checksums.yaml +5 -13
  2. data/lib/yo-ruby.rb +2 -129
  3. metadata +24 -10
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZGIxNWZjNDYyZmNmZjA5NDYyMDgxNTNiODU1Zjg4ODM1OTRlOWYyZA==
5
- data.tar.gz: !binary |-
6
- NDk2NDRlNzMxODEwMGEyZjY4ZTE3MmE4MGY4NzI4YmFhNTY4MWI2NQ==
2
+ SHA1:
3
+ metadata.gz: e8ba7173822f7c52da2119bd76c5be363eeb5aa7
4
+ data.tar.gz: 745949c97acc32f0a8c4f1a392c4cad17f37d243
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ZTI1NzkyZjFlZjkwYTkyY2U0ZWUzZjU2OGY0YmNhNzAzOWM0N2ZlM2FiODZi
10
- ZjliODU1NzhlMTNjNzYxNTIyNmZjMDc0ZmMwMDExMjA5NTJhNzY3ZWQ1NmUx
11
- MzcyZjU4OWI5MThiMDg3MjlkN2FhMmZkZGNiYWQ1ZTUwNTE0MjQ=
12
- data.tar.gz: !binary |-
13
- ZWU4OGY0ODljMjk2OGZmMzM3N2E1MWFiMjg0MzYzMTYzYjQ5MzlkMjAzYTJk
14
- MGRjMTY0ZTFmNzY0NTBjNGFmMzkzOWFjZWY2MmFhYTE1ODRkNzE2ZDJiNWVl
15
- N2I2ZTUzZTUwM2Y1OTU4ZjM0NjhmMmQ2NDRjMWFkNmQxYjRjMDY=
6
+ metadata.gz: 2598856d69f991de535887346501b53dc6c8187b2971ca3a75d0936ed6822fdc069880e6e631afcd4b3e14f91b4549e01165ba2f38317ff0411ac5a78c9981b7
7
+ data.tar.gz: 46405021e85f236a8d1557b480cb58df628ab4549929da38f4e0d26695a0d13e5561792a70ffecd7f5cbd2dce9dba3b05129bafe054748218321495bfa12e79a
@@ -1,129 +1,2 @@
1
- require 'singleton'
2
- require 'httparty'
3
-
4
- class YoException < Exception
5
- end
6
-
7
- class YoUserNotFound < YoException
8
- end
9
-
10
- class YoRateLimitExceeded < YoException
11
- end
12
-
13
- class Yo
14
- include Singleton
15
- include HTTParty
16
-
17
- base_uri "api.justyo.co"
18
- format :json
19
-
20
- attr_writer :api_key
21
-
22
- # Authentication stuffs.
23
- def self.api_key
24
- @api_key
25
- end
26
-
27
- def self.api_key?
28
- not @api_key.nil?
29
- end
30
-
31
- def self.api_key=(api_key)
32
- if api_key.to_s.length != 36 or not api_key.is_a?(String)
33
- raise YoException.new("Invalid Yo API key - must be 36 characters in length")
34
- end
35
-
36
- @api_key = api_key
37
- end
38
-
39
- # Yo calls.
40
- def self.yo(username, extra_params = {})
41
- self.__post('/yo/', { :username => username }.merge(extra_params))["result"] == "OK"
42
- end
43
-
44
- def self.yo!(username, extra_params = {})
45
- self.yo(username, extra_params)
46
- end
47
-
48
- def self.all(extra_params = {})
49
- self.__post('/yoall/', extra_params)["result"] == "OK"
50
- end
51
-
52
- def self.all!(extra_params = {})
53
- self.all(extra_params)
54
- end
55
-
56
- def self.subscribers
57
- self.__get('/subscribers_count/')["result"].to_i
58
- end
59
-
60
- def self.subscribers?
61
- self.subscribers > 0
62
- end
63
-
64
- # Receive a basic yo.
65
- def self.receive(params)
66
- parameters = __clean(params)
67
- yield(parameters[:username].to_s) if block_given? and parameters.include?(:username)
68
- end
69
-
70
- def self.from(params, username)
71
- parameters = __clean(params)
72
- yield if block_given? and parameters.include?(:username) and parameters[:username].to_s.upcase == username.upcase
73
- end
74
-
75
- # Receive a yo with a link (also known as YOLINK).
76
- def self.receive_with_link(params)
77
- parameters = __clean(params)
78
- yield(parameters[:username].to_s, parameters[:link].to_s) if block_given? and parameters.include?(:username) and parameters.include?(:link)
79
- end
80
-
81
- def self.from_with_link(params, username)
82
- parameters = __clean(params)
83
- yield(parameters[:link].to_s) if block_given? and parameters.include?(:username) and parameters.include?(:link) and parameters[:username].to_s.upcase == username.upcase
84
- end
85
-
86
- # Receive a yo with a location (also known as @YO).
87
- def self.receive_with_location(params)
88
- parameters = __clean(params)
89
- lat, lon = parameters[:location].to_s.split(';').map{ |i| i.to_f }
90
- yield(parameters[:username].to_s, lat, lon) if block_given? and parameters.include?(:username) and parameters.include?(:location)
91
- end
92
-
93
- def self.from_with_location(params, username)
94
- parameters = __clean(params)
95
- lat, lon = parameters[:location].to_s.split(';').map{ |i| i.to_f }
96
- yield(parameters[:link].to_s, lat, lon) if block_given? and parameters.include?(:username) and parameters.include?(:location) and parameters[:username].to_s.upcase == username.upcase
97
- end
98
-
99
- # Private methods.
100
- private
101
- def self.__post(endpoint, params = {})
102
- __parse(post(endpoint, { body: params.merge(api_token: @api_key) }))
103
- end
104
-
105
- def self.__get(endpoint, params = {})
106
- __parse(get(endpoint, { query: params.merge(api_token: @api_key) }))
107
- end
108
-
109
- def self.__parse(res)
110
- begin
111
- if res.parsed_response.keys.include?("error") or res.parsed_response["code"] == 141
112
- raise YoUserNotFound.new("You cannot Yo yourself and/or your developer Yo usernames. Why? Ask Or Arbel, CEO of Yo - or@justyo.co") if res.parsed_response["error"][0..8] == "TypeError"
113
- raise YoUserNotFound.new(res.parsed_response["error"])
114
- end
115
-
116
- return res.parsed_response
117
- rescue NoMethodError => e
118
- raise YoRateLimitExceeded.new(res.parsed_response)
119
- rescue JSON::ParserError => e
120
- raise YoException.new(e)
121
- end
122
- end
123
-
124
- def self.__clean(hash)
125
- new_hash = {}
126
- hash.each { |k, v| new_hash[k.to_sym] = v } if hash.is_a?(Hash)
127
- new_hash
128
- end
129
- end
1
+ require 'yo-ruby/version'
2
+ require 'yo-ruby/client'
metadata CHANGED
@@ -1,29 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yo-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bilawal Hameed
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-22 00:00:00.000000000 Z
11
+ date: 2016-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.4'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.4'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: httparty
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
- - - ! '>='
31
+ - - "~>"
18
32
  - !ruby/object:Gem::Version
19
- version: 0.13.1
33
+ version: '0.13'
20
34
  type: :runtime
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
- - - ! '>='
38
+ - - "~>"
25
39
  - !ruby/object:Gem::Version
26
- version: 0.13.1
40
+ version: '0.13'
27
41
  description: Probably the most complex Ruby wrapper for the Yo app (justyo.co) that
28
42
  recently raised $1 million dollars.
29
43
  email: bilawal@studenthack.com
@@ -42,17 +56,17 @@ require_paths:
42
56
  - lib
43
57
  required_ruby_version: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - ! '>='
59
+ - - ">="
46
60
  - !ruby/object:Gem::Version
47
- version: '0'
61
+ version: 2.0.0
48
62
  required_rubygems_version: !ruby/object:Gem::Requirement
49
63
  requirements:
50
- - - ! '>='
64
+ - - ">="
51
65
  - !ruby/object:Gem::Version
52
66
  version: '0'
53
67
  requirements: []
54
68
  rubyforge_project:
55
- rubygems_version: 2.2.2
69
+ rubygems_version: 2.4.5.1
56
70
  signing_key:
57
71
  specification_version: 4
58
72
  summary: An awesome Ruby wrapper for the Yo! mobile app.