evernote_oauth 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +17 -0
- data/evernote_oauth.gemspec +1 -1
- data/lib/evernote/edam/type/note.rb +20 -0
- data/lib/evernote_oauth/client.rb +1 -0
- data/lib/evernote_oauth/thrift_client_delegation.rb +7 -1
- data/lib/evernote_oauth/version.rb +1 -1
- data/spec/spec_helper.rb +1 -1
- metadata +2 -2
data/README.md
CHANGED
@@ -121,6 +121,23 @@ Here are the additional methods for each types:
|
|
121
121
|
|
122
122
|
Notes: Those methods call thrift API internally. The result will be cached in the object so that the second method call wouldn't thrift API again.
|
123
123
|
|
124
|
+
### Image Adding ###
|
125
|
+
Additional method is defined in Note to be easily added an image:
|
126
|
+
```ruby
|
127
|
+
note = Evernote::EDAM::Type::Note.new(
|
128
|
+
title: 'Note',
|
129
|
+
tagNames: ['Evernote API Sample']
|
130
|
+
)
|
131
|
+
|
132
|
+
filename = "enlogo.png"
|
133
|
+
image = File.open(filename, "rb") { |io| io.read }
|
134
|
+
hexdigest = note.add_resource(filename, image, 'image/png')
|
135
|
+
```
|
136
|
+
You can use hexdigest within ENXML:
|
137
|
+
```xml
|
138
|
+
<en-media type="image/png" hash="#{hexdigest}"/>
|
139
|
+
```
|
140
|
+
|
124
141
|
References
|
125
142
|
----------
|
126
143
|
- Evernote Developers: http://dev.evernote.com/
|
data/evernote_oauth.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.version = EvernoteOAuth::VERSION
|
10
10
|
|
11
11
|
s.authors = ["Evernote"]
|
12
|
-
s.date = %
|
12
|
+
s.date = Time.now.strftime('%Y-%m-%d')
|
13
13
|
s.description = %q{evernote_oauth is a Ruby client for the Evernote API using OAuth and Thrift.}
|
14
14
|
s.email = %q{api@evernote.com}
|
15
15
|
s.files = ["LICENSE", "README.md", "evernote_oauth.gemspec"] + Dir.glob('{lib,spec}/**/*')
|
@@ -9,6 +9,26 @@ module Evernote
|
|
9
9
|
def tags
|
10
10
|
@tags ||= (tagGuids || []).map{|guid| note_store.getTag(guid)}
|
11
11
|
end
|
12
|
+
|
13
|
+
def add_resource(filename, image, mime)
|
14
|
+
hash_func = Digest::MD5.new
|
15
|
+
|
16
|
+
data = Evernote::EDAM::Type::Data.new
|
17
|
+
data.size = image.size
|
18
|
+
data.bodyHash = hash_func.digest(image)
|
19
|
+
data.body = image
|
20
|
+
|
21
|
+
resource = Evernote::EDAM::Type::Resource.new
|
22
|
+
resource.mime = mime
|
23
|
+
resource.data = data
|
24
|
+
resource.attributes = Evernote::EDAM::Type::ResourceAttributes.new
|
25
|
+
resource.attributes.fileName = filename
|
26
|
+
|
27
|
+
self.resources = [] unless self.resources
|
28
|
+
self.resources << resource
|
29
|
+
|
30
|
+
hash_func.hexdigest(image)
|
31
|
+
end
|
12
32
|
end
|
13
33
|
end
|
14
34
|
end
|
@@ -58,6 +58,7 @@ module EvernoteOAuth
|
|
58
58
|
|
59
59
|
def thrift_client(client_class, url)
|
60
60
|
transport = Thrift::HTTPClientTransport.new(url)
|
61
|
+
transport.add_headers('User-Agent' => "evernote_oauth v#{::EvernoteOAuth::VERSION}")
|
61
62
|
protocol = Thrift::BinaryProtocol.new(transport)
|
62
63
|
client_class.new(protocol)
|
63
64
|
end
|
@@ -19,7 +19,13 @@ module EvernoteOAuth
|
|
19
19
|
|
20
20
|
attr_name = underscore(self.class.name.split('::').last).to_sym
|
21
21
|
attr_value = self
|
22
|
-
[result].flatten.each{|r|
|
22
|
+
[result].flatten.each{|r|
|
23
|
+
begin
|
24
|
+
r.define_singleton_method(attr_name){attr_value}
|
25
|
+
rescue TypeError # Fixnum/TrueClass/FalseClass/NilClass
|
26
|
+
next
|
27
|
+
end
|
28
|
+
}
|
23
29
|
result
|
24
30
|
end
|
25
31
|
|
data/spec/spec_helper.rb
CHANGED
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.
|
4
|
+
version: 0.1.3
|
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-
|
12
|
+
date: 2012-11-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: oauth
|