evernote_oauth 0.1.3 → 0.1.4

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.
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  Evernote OAuth / Thrift API client library for Ruby
2
2
  ===================================================
3
- - Evernote OAuth version 0.1.2
3
+ - Evernote OAuth version 0.1.4
4
4
 
5
5
  Install the gem
6
6
  ---------------
@@ -90,6 +90,19 @@ shared_notebook = shared_note_store.getSharedNotebookByAuth
90
90
  shared_note_store.listTagsByNotebook(shared_notebook.notebookGuid)
91
91
  ```
92
92
 
93
+ ### NoteStore for Business ###
94
+ If you want to get the list of notebooks in your business account:
95
+ ```ruby
96
+ business_note_store = client.business_note_store
97
+ btoken = business_note_store.token
98
+ business_note_store.listNotebooks(btoken)
99
+ ```
100
+ You can also omit authenticationToken in the arguments of NoteStore functions:
101
+ ```ruby
102
+ business_note_store = client.business_note_store
103
+ business_note_store.listNotebooks
104
+ ```
105
+
93
106
  ### Method Chaining ###
94
107
  You can chain methods:
95
108
  ```ruby
@@ -11,5 +11,6 @@ require 'evernote_oauth/client'
11
11
  require 'evernote_oauth/user_store'
12
12
  require 'evernote_oauth/note_store'
13
13
  require 'evernote_oauth/shared_note_store'
14
+ require 'evernote_oauth/business_note_store'
14
15
  require 'evernote_oauth/store_attachable'
15
16
  require 'evernote_oauth/version'
@@ -0,0 +1,24 @@
1
+ module EvernoteOAuth
2
+
3
+ class Client
4
+ def business_note_store(options={})
5
+ auth = user_store.authenticateToBusiness(options[:token] || @token)
6
+ EvernoteOAuth::BusinessNoteStore.new(
7
+ token: auth.authenticationToken,
8
+ client: thrift_client(::Evernote::EDAM::NoteStore::NoteStore::Client,
9
+ auth.noteStoreUrl)
10
+ )
11
+ end
12
+ end
13
+
14
+ class BusinessNoteStore
15
+ include ::EvernoteOAuth::ThriftClientDelegation
16
+ attr_reader :token
17
+
18
+ def initialize(options={})
19
+ @token = options[:token]
20
+ @client = options[:client]
21
+ end
22
+ end
23
+
24
+ end
@@ -4,16 +4,18 @@ module EvernoteOAuth
4
4
  def initialize(options={})
5
5
  config_file = "config/evernote.yml"
6
6
  if File.exist?(config_file)
7
- config = YAML.load(ERB.new(File.read(config_file)).result)[Rails.env]
8
- @consumer_key = config['consumer_key']
9
- @consumer_secret = config['consumer_secret']
10
- @sandbox = config['sandbox'] ? true : false
7
+ config = YAML.load(ERB.new(File.read(config_file)).result)[Rails.env]
8
+ @consumer_key = config['consumer_key']
9
+ @consumer_secret = config['consumer_secret']
10
+ @sandbox = config['sandbox'] ? true : false
11
11
  end
12
12
 
13
13
  @consumer_key = options[:consumer_key] || @consumer_key
14
14
  @consumer_secret = options[:consumer_secret] || @consumer_secret
15
15
  @sandbox = true if @sandbox == nil
16
16
  @sandbox = (options[:sandbox] == nil ? @sandbox : options[:sandbox])
17
+ @service_host = options[:service_host] || (@sandbox ? 'sandbox.evernote.com' : 'www.evernote.com')
18
+ @additional_headers = options[:additional_headers]
17
19
  @token = options[:token]
18
20
  @secret = options[:secret]
19
21
  end
@@ -36,32 +38,35 @@ module EvernoteOAuth
36
38
  end
37
39
 
38
40
  private
39
- def consumer
40
- @consumer ||= OAuth::Consumer.new(
41
- @consumer_key,
42
- @consumer_secret,
43
- {site: endpoint,
44
- request_token_path: "/oauth",
45
- access_token_path: "/oauth"}
46
- )
47
- end
41
+ def consumer
42
+ @consumer ||= OAuth::Consumer.new(
43
+ @consumer_key,
44
+ @consumer_secret,
45
+ {site: endpoint,
46
+ request_token_path: "/oauth",
47
+ access_token_path: "/oauth"}
48
+ )
49
+ end
48
50
 
49
- def endpoint(path=nil)
50
- url = @sandbox ? "https://sandbox.evernote.com" : "https://www.evernote.com"
51
- url += "/#{path}" if path
52
- url
53
- end
51
+ def endpoint(path=nil)
52
+ url = "https://#{@service_host}"
53
+ url += "/#{path}" if path
54
+ url
55
+ end
54
56
 
55
- def access_token
56
- @access_token ||= OAuth::AccessToken.new(consumer, @token, @secret)
57
- end
57
+ def access_token
58
+ @access_token ||= OAuth::AccessToken.new(consumer, @token, @secret)
59
+ end
58
60
 
59
- def thrift_client(client_class, url)
60
- transport = Thrift::HTTPClientTransport.new(url)
61
- transport.add_headers('User-Agent' => "evernote_oauth v#{::EvernoteOAuth::VERSION}")
62
- protocol = Thrift::BinaryProtocol.new(transport)
63
- client_class.new(protocol)
64
- end
61
+ def thrift_client(client_class, url)
62
+ transport = Thrift::HTTPClientTransport.new(url)
63
+ transport.add_headers(
64
+ 'User-Agent' => "EvernoteOAuth / #{::EvernoteOAuth::VERSION}; Ruby / #{RUBY_VERSION};"
65
+ )
66
+ transport.add_headers(@additional_headers) if @additional_headers
67
+ protocol = Thrift::BinaryProtocol.new(transport)
68
+ client_class.new(protocol)
69
+ end
65
70
 
66
71
  end
67
72
  end
@@ -1,3 +1,3 @@
1
1
  module EvernoteOAuth
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evernote_oauth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-21 00:00:00.000000000 Z
12
+ date: 2013-01-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: oauth
@@ -77,6 +77,7 @@ files:
77
77
  - lib/evernote/edam/type/resource.rb
78
78
  - lib/evernote/edam/type/shared_notebook.rb
79
79
  - lib/evernote/edam/type/tag.rb
80
+ - lib/evernote_oauth/business_note_store.rb
80
81
  - lib/evernote_oauth/client.rb
81
82
  - lib/evernote_oauth/note_store.rb
82
83
  - lib/evernote_oauth/shared_note_store.rb