diff options
| author | Chris Sepic | 2010-03-19 08:03:56 -0500 |
|---|---|---|
| committer | Chris Sepic | 2010-03-19 08:03:56 -0500 |
| commit | fb215fe1509015a6100ef04781822c454f65fc29 (patch) | |
| tree | f7ae49421d77983ea133347c98f9b5b86459dca3 | |
| parent | d37a991568df31dd89521a09e1c9f25a5b9c4a94 (diff) | |
| download | evernote-fb215fe1509015a6100ef04781822c454f65fc29.tar.bz2 | |
added note store wrapper, added readme example
| -rw-r--r-- | README.mkd | 46 | ||||
| -rw-r--r-- | VERSION | 2 | ||||
| -rw-r--r-- | evernote.gemspec | 7 | ||||
| -rw-r--r-- | lib/evernote.rb | 1 | ||||
| -rw-r--r-- | lib/evernote/note_store.rb | 11 | ||||
| -rw-r--r-- | spec/evernote/note_store_spec.rb | 10 |
6 files changed, 70 insertions, 7 deletions
@@ -1,10 +1,48 @@ # evernote # -This gem is a high level wrapper around Evernote's Thrift-generated ruby code. It currently just bundles up Evernote's thrift-generated code. After installing, just require the gem in your project: +This gem is a high level wrapper around Evernote's Thrift-generated ruby code. It bundles up Evernote's thrift-generated code and creates some simple wrapper classes. -require 'evernote' +# usage # +Create a config yml: -# future releases # -This gem will eventually provide a cleaner API around the generated code, so you don't feel like you're writing Java. + sandbox: + username: user + password: password + consumer_key: key + consumer_secret: secret + + production: + username: user + password: password + consumer_key: key + consumer_secret: secret + +Here's an example using the sandbox key: + + require 'evernote' + + user_store_url = "https://sandbox.evernote.com/edam/user" + config = File.dirname(__FILE__) + "/config.yml" + user_store = Evernote::UserStore.new(user_store_url, config, "sandbox") + + auth_result = user_store.authenticate + user = auth_result.user + auth_token = auth_result.authenticationToken + puts "Authentication was successful for #{user.username}" + puts "Authentication token = #{auth_token}" + +Once you've authenticated, you could do something like list all of your notebooks: + + note_store_url = "http://sandbox.evernote.com/edam/note/#{user.shardId}" + note_store = Evernote::NoteStore.new(note_store_url) + + notebooks = note_store.listNotebooks(auth_token) + puts "Found #{notebooks.size} notebooks:" + default_notebook = notebooks[0] + notebooks.each { |notebook| puts " * #{notebook.name}"} + +The evernote API can be viewed at http://www.evernote.com/about/developer/api/ref/ + +If the vendored code is out of date and you get an error indicating so, feel free to create an issue at http://github.com/cgs/evernote/issues ## Copyright ## Copyright (c) 2010 Chris Sepic. See LICENSE for details. @@ -1 +1 @@ -0.2.0 +0.8.0 diff --git a/evernote.gemspec b/evernote.gemspec index b630d3c..e5e9694 100644 --- a/evernote.gemspec +++ b/evernote.gemspec @@ -5,11 +5,11 @@ Gem::Specification.new do |s| s.name = %q{evernote} - s.version = "0.2.0" + s.version = "0.8.0" s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= s.authors = ["Chris Sepic"] - s.date = %q{2010-02-27} + s.date = %q{2010-03-19} s.email = %q{chris.sepic@gmail.com} s.extra_rdoc_files = [ "LICENSE", @@ -25,9 +25,11 @@ Gem::Specification.new do |s| "evernote.gemspec", "lib/evernote.rb", "lib/evernote/client.rb", + "lib/evernote/note_store.rb", "lib/evernote/user_store.rb", "spec/evernote/auth.yaml", "spec/evernote/client_spec.rb", + "spec/evernote/note_store_spec.rb", "spec/evernote/user_store_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", @@ -51,6 +53,7 @@ Gem::Specification.new do |s| s.summary = %q{High level wrapper for the Evernote API} s.test_files = [ "spec/evernote/client_spec.rb", + "spec/evernote/note_store_spec.rb", "spec/evernote/user_store_spec.rb", "spec/spec_helper.rb" ] diff --git a/lib/evernote.rb b/lib/evernote.rb index 81441d7..d12c9b6 100644 --- a/lib/evernote.rb +++ b/lib/evernote.rb @@ -7,3 +7,4 @@ $LOAD_PATH.unshift "#{gen_rb_path}/evernote/edam" require "#{gen_rb_path}/evernote" require "evernote/client" require "evernote/user_store" +require "evernote/note_store" diff --git a/lib/evernote/note_store.rb b/lib/evernote/note_store.rb new file mode 100644 index 0000000..218d4c9 --- /dev/null +++ b/lib/evernote/note_store.rb @@ -0,0 +1,11 @@ +module Evernote + class NoteStore + def initialize(uri, thrift_client_options = {}) + @client = Evernote::Client.new(Evernote::EDAM::NoteStore::NoteStore::Client, uri, thrift_client_options) + end + + def method_missing(name, *args, &block) + @client.send(name, *args, &block) + end + end +end diff --git a/spec/evernote/note_store_spec.rb b/spec/evernote/note_store_spec.rb new file mode 100644 index 0000000..366adbd --- /dev/null +++ b/spec/evernote/note_store_spec.rb @@ -0,0 +1,10 @@ +require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') + +describe "Evernote::NoteStore" do + it "should proxy methods" do + note_store = Evernote::NoteStore.new("http://sandbox.evernote.com/edam/note/") + note_store.instance_variable_get(:@client).should_receive(:foobar).and_return(nil) + + note_store.foobar + end +end |
