rescue_time_client 0.0.1

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 +7 -0
  2. data/lib/rescue_time_client.rb +53 -0
  3. metadata +58 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 021391625128f0d21750ee758cbe08e74373fd4e
4
+ data.tar.gz: 62c9287218ccaf985f4a5c28e6554217734a1939
5
+ SHA512:
6
+ metadata.gz: 8d3a8b2011c165d9f1614a96b2c0a91d89f310ea5e5207e9a5475087a8161e3dde970d60fe156e6ac8678ed6f1ba13f76565c2e7bf95ded9aabd7414a30bf3c9
7
+ data.tar.gz: 87651fba6bb55fa555e930b439998d0726fedca5335638fd0e981efecdd2f419a50b00bec3031188f4606dc227585938b6245602d334b522ac7a1f927bcf21b2
@@ -0,0 +1,53 @@
1
+ require 'auth/oauth'
2
+ require 'response.rb'
3
+
4
+ module RescueTime
5
+ API_ENDPOINT = "https://www.rescuetime.com"
6
+ DEFAULT_SCOPE = ["time_data"]
7
+
8
+ class Client
9
+ def initialize(client_id, client_secret, redirect_uri)
10
+ @oauth_client = Auth.getClient(client_id, client_secret)
11
+ @redirect_uri = redirect_uri
12
+ end
13
+
14
+ def get_auth_url(scopes = [])
15
+ scopes = DEFAULT_SCOPE if scopes.empty?
16
+ required_scopes = scopes.join(' ')
17
+ @oauth_client.auth_code.authorize_url(redirect_uri: @redirect_uri,
18
+ scope: required_scopes)
19
+ end
20
+
21
+ def set_token(token)
22
+ @token = Auth.constructToken(@oauth_client, token)
23
+ end
24
+
25
+ def get_token_from_code(code)
26
+ @token = @oauth_client.auth_code.get_token(code,
27
+ redirect_uri: @redirect_uri,
28
+ headers: {'Authorization' => 'Basic some_password'}
29
+ )
30
+ end
31
+
32
+
33
+ #sexy
34
+ def method_missing(method_sym, *arguments, &block)
35
+ if method_sym.to_s =~ /^fetch_(.*)$/
36
+ api_endpoint = "/api/oauth/#{$1}"
37
+ params = arguments[0] || {}
38
+ puts "Fetching #{api_endpoint} with params #{params}}"
39
+ resp = @token.get(api_endpoint, params.merge(default_params))
40
+ Response.process(resp)
41
+ else
42
+ super
43
+ end
44
+ end
45
+
46
+ private
47
+
48
+ def default_params
49
+ {format: 'json'}
50
+ end
51
+
52
+ end
53
+ end
metadata ADDED
@@ -0,0 +1,58 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rescue_time_client
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Devaroop Bhattacharya
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-04-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: oauth2
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: Simple gem to help integrate with RescueTime
28
+ email: devaroop@yahoo.co.in
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - lib/rescue_time_client.rb
34
+ homepage: http://rubygems.org/gems/rescue_time_client
35
+ licenses:
36
+ - MIT
37
+ metadata: {}
38
+ post_install_message:
39
+ rdoc_options: []
40
+ require_paths:
41
+ - lib
42
+ required_ruby_version: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ required_rubygems_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: '0'
52
+ requirements: []
53
+ rubyforge_project:
54
+ rubygems_version: 2.2.2
55
+ signing_key:
56
+ specification_version: 4
57
+ summary: An oAuth and API client for RescueTime
58
+ test_files: []