evernote_utils 0.0.3 → 0.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 852c25d065272fa19e0945b0ad6b0f99cd24f9f3
4
- data.tar.gz: 1dfc6e6bb39500687cc8db80ec41668af1ae2370
3
+ metadata.gz: 49f1ce1d6ba7eb482686b02c7fbab61a5b69544a
4
+ data.tar.gz: 1a5aab22da6f5dc08498269656cd305e7be44663
5
5
  SHA512:
6
- metadata.gz: 8c059d3091294f5ff099ed2e19d188682fd893ab36ebec873c2f2130d91e3fe7bcfbcc9cb74ab3aac4f7ce8a95f9bc1abd9e621d99ea26f6acbee401009ba209
7
- data.tar.gz: da159c10747945da05f48afc69bd89cdb6caa52cc7c7a284c9d7018a3323d5683f29277e2091ca0cc3854de1f8602fa88728fb1337ce380f078a00b4f35887a7
6
+ metadata.gz: 80ff2b4f18fd00b09fb64c69c53e1bb21654b5417a93aa00b2e9321eb05ccd6354f6b028aa552683ca7725e5c5bb575f978be600e14f0d307c880ac81d822932
7
+ data.tar.gz: 68097bc431430a63bd807c6867055498be45f51cc13f05ee5e009cbc67aca396364fbcda5e66857234d327e6077ca2a36b6d9d0dc4f32912cd22c889a7a880ed
data/Guardfile ADDED
@@ -0,0 +1,11 @@
1
+ guard :rspec, all_on_start: false, all_after_pass: false, cmd: 'bundle exec rspec --no-drb' do
2
+ watch(%r{^spec/.+_spec\.rb$})
3
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
4
+ watch('spec/spec_helper.rb') { "spec" }
5
+ end
6
+
7
+ ## notification :gntp, sticky: true, host: '127.0.0.1'
8
+ notification :tmux,
9
+ display_message: true, timeout: 10,
10
+ default_message_format: '[%s] %s', line_separator: ' > ',
11
+ color_location: 'status-left-bg'
data/README.md CHANGED
@@ -37,60 +37,81 @@ EvenoteUtils don't support authentication feature, because dominant other option
37
37
 
38
38
  First, initialize ENUtils with an OAuth token credential identifier.
39
39
 
40
- enutils = ENUtils::Core.new('oauth-token-credential-identifier')
40
+ ```ruby
41
+ enutils = ENUtils::Core.new('oauth-token-credential-identifier')
41
42
 
42
- # If you use sandbox token, pass 2nd argument false.
43
- enutils = ENUtils::Core.new('oauth-token-credential-identifier', false)
43
+ # If you want to work on sandbox, pass false to a 2nd argument.
44
+ enutils = ENUtils::Core.new('oauth-token-credential-identifier', false)
45
+ ```
44
46
 
45
47
  OAuth token credential identifier looks something like:
46
48
 
47
- S=s4:U=a1:E=12bfd68c6b6:C=12bf8426ab8:P=7:A=en_oauth_test:H=3df9cf6c0d7bc410824c80231e64dbe1
49
+ ```
50
+ S=s4:U=a1:E=12bfzzzzzz6:C=12bf8426ab8:P=7:A=en_oauth_test:H=3df9cf6xxxxxxxxx824c802xxxxxdbe1
51
+ ```
48
52
 
49
53
  Then you can access Evernote resources.
50
54
 
51
- enutils.notes(words: 'Clojure', limit: 5, order: :updated)
55
+ ```ruby
56
+ enutils.notes # => <ENUtils::NoteList ...>
57
+ ```
52
58
 
53
- It returns `ENUtils::NoteList` instances. You can know total count of search result by calling `ENUtils::NoteList#total_count`
59
+ It returns `ENUtils::NoteList` instance. `ENUtils::NoteList` is an enumerable collection of `ENUtils::Note`. `ENUtils::Note` is just a thin wrapper of `Evernote::EDAM::Type::Note`.
54
60
 
55
- enutils.notes(words: 'Clojure', limit: 5, order: :updated).total_count #=> 150
56
-
57
- `ENUtils::NoteList` is a collection of `ENUtils::Note`. `ENUtils::Note` is a thin wrapper of `Evernote::EDAM::Type::Note`.
58
-
59
-
60
- And here, `ENUtils#notes` accepts following options:
61
+ Here, `ENUtils#notes` accepts following options to search notes:
61
62
 
62
63
  * notebook
63
64
  * tag, tags
64
65
  * words (fulltext search api)
65
66
  * order (`:created, :updated, :relevance, :update_sequence_number, :title`)
66
67
  * asc (true/false)
67
- * offset (default is 0)
68
- * limit (default is 10)
68
+ * offset (default 0)
69
+ * limit (default 10, max 50 (due to Evernote API restriction))
69
70
 
70
- `ENUtils#notebooks` and `ENUtils#tags` accept name filtering. You can use String or Regexp.
71
71
 
72
- enutils.notebooks(name: 'Twitter')
73
- enutils.tags(name: /ruby/i)
72
+ ```ruby
73
+ # Search notes by free words.
74
+ enutils.notes(words: 'clojure install')
74
75
 
75
- These methods return array of `ENUtils::Notebook` and `ENUtils::Tag` respectively, which available to filter notes.
76
+ # Search notes by notebook and tag names.
77
+ result = enutils.notes(notebook: 'inbox', tag: 'mytag')
76
78
 
77
- notebook = enutils.notebooks(name: /Book/).first
78
- tag = enutils.tags(name: 'language').first
79
- enutils.notes(notebook: notebook, tag: tag)
79
+ result.count #=> 10 ... 'result' contains 10 notes for now.
80
+ result.total_count #=> 210 ... How many results EverNote has on your account.
80
81
 
81
- # or, you can use multiple tags
82
- enutils.notes(notebook: notebook, tags: [tagA, tagB, tagC])
82
+ # 10 is default search limit. You can overwrite limit by passing option 'limit'.
83
+ enutils.notes(notebook: 'inbox', tag: 'mytag', limit: 50)
83
84
 
85
+ # Sorting result whould be nice.
86
+ enutils.notes(tag: 'mytag', order: :updated, asc: false)
84
87
 
85
- ## Planning to do
88
+ # BTW 'tags' option also available to search by multiple tags. Pass an array of tags to it.
89
+ enutils.notes(tags: ['java', 'clojure'])
90
+ ```
86
91
 
87
- * relationships: notebook.notes, note.tags, tag.notes
92
+ Actually, 'words' option is flexible enough to search notes by names of notebook and tag, same as official Evernote Desctop application.
88
93
 
94
+ ```ruby
95
+ # Just passing notebook/tag(s) names to 'words' option would work.
96
+ enutils.notes(words: 'oauth notebook:Blog tag:ruby tag:tips')
97
+ ```
89
98
 
90
- ## Contributing
99
+ `ENUtils#notebooks` and `ENUtils#tags` accept name filtering. You can use String or Regexp.
100
+
101
+ ```ruby
102
+ enutils.notebooks(name: 'Twitter') #=> [<ENUtils::Notebook ...>, ...]
103
+ enutils.tags(name: /ruby/i) #=> [<ENUtils::Tag ...>, ...]
104
+ ```
105
+
106
+ These methods return an array of `ENUtils::Notebook` and `ENUtils::Tag`, respectively. By passing them `ENUtils::Core#notes` searches notes as described above.
107
+
108
+ ```ruby
109
+ # You can also use instances of ENUtils::Notebook and ENUtils::Tag when searching notes.
110
+ notebook = enutils.notebooks(name: /Book/).first
111
+ tag = enutils.tags(name: 'language').first
112
+ enutils.notes(notebook: notebook, tag: tag, words: 'beginners\' guide')
113
+ ```
114
+
115
+ ## Planning to do
91
116
 
92
- 1. Fork it
93
- 2. Create your feature branch (`git checkout -b my-new-feature`)
94
- 3. Commit your changes (`git commit -am 'Add some feature'`)
95
- 4. Push to the branch (`git push origin my-new-feature`)
96
- 5. Create new Pull Request
117
+ * update notes
data/Rakefile CHANGED
@@ -6,3 +6,39 @@ Rake::TestTask.new do |t|
6
6
  t.pattern = 'spec/**/*_spec.rb'
7
7
  t.verbose = true
8
8
  end
9
+
10
+ # CSV.open('output.csv', 'w') do |w|
11
+ # CSV.open('words.csv', 'r') do |r|
12
+ # reader.each do |row|
13
+ # # extract plain text from ENUtils::Note#content, which is an ENML document.
14
+ # w << [row[0], row[1], Nokogiri::XML(row[2]).elements.first.text.gsub(/^\n|\n$/,')]
15
+ # end
16
+ # end
17
+ # end
18
+
19
+ ###################################################
20
+ require 'rubygems'
21
+ require 'bundler/setup'
22
+ Bundler.require
23
+ require 'pry'
24
+ require 'evernote_utils'
25
+
26
+ e = ENUtils::Core.new("xxxxxxxxxxx")
27
+
28
+ binding.pry
29
+
30
+ # notebook_archive = e.notebooks(name: 'Archive').first
31
+ # tag_english = e.tags(name: 'english').first
32
+ # results = []
33
+ # results << e.notes(notebook: notebook_archive, tag: tag_english, limit: 50, offset: 0)
34
+ # results << e.notes(notebook: notebook_archive, tag: tag_english, limit: 50, offset: 50)
35
+ # results << e.notes(notebook: notebook_archive, tag: tag_english, limit: 50, offset: 100)
36
+ # results.flatten!
37
+ # results.each{|n| n.set_content! }
38
+ #
39
+ # require 'csv'
40
+ # CSV.open('hoge.csv', 'w') do |csv|
41
+ # results.each do |n|
42
+ # csv << [n.created, n.title, n.content]
43
+ # end
44
+ # end
@@ -19,11 +19,13 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_dependency 'evernote-thrift', '~>1.25.1'
22
- spec.add_dependency 'activesupport', '~>4.0.2'
22
+ spec.add_dependency 'activesupport', '~>3.2.13'
23
23
 
24
24
  spec.add_development_dependency "bundler", "~> 1.3"
25
25
  spec.add_development_dependency "rake"
26
26
  spec.add_development_dependency "pry"
27
- spec.add_development_dependency "minitest"
27
+ spec.add_development_dependency "rspec", "~>3.0.0.beta"
28
+ spec.add_development_dependency "rb-readline"
29
+ spec.add_development_dependency "guard-rspec"
28
30
  spec.add_development_dependency "mocha"
29
31
  end
@@ -6,19 +6,13 @@ module ENUtils
6
6
  accum.merge(pair.last.downcase.to_sym => pair.first)
7
7
  }
8
8
 
9
- def self.build(options={})
9
+ def self.build(core, o={})
10
10
  filter = Evernote::EDAM::NoteStore::NoteFilter.new
11
- if (notebook = options[:notebook])
12
- notebook_guid = notebook.is_a?(ENUtils::Notebook) ? notebook.guid : notebook
13
- filter.notebookGuid = notebook_guid
14
- end
15
- if (tags = options[:tags]) || (tag = options[:tag])
16
- tag_guids = (tags || [tag]).map{|t| t.is_a?(ENUtils::Tag) ? t.guid : t }
17
- filter.tagGuids = tag_guids
18
- end
19
- filter.words = options[:words] if options[:words]
20
- filter.order = OrderFields[options[:order].to_sym] if available_order?(options[:order])
21
- filter.ascending = options[:asc] if options[:asc]
11
+ filter.notebookGuid = notebook_guid(core, o[:notebook]) if o[:notebook]
12
+ filter.tagGuids = tag_guids(core, tag: o[:tag], tags: o[:tags]) if o[:tag] || o[:tags]
13
+ filter.words = o[:words] if o[:words]
14
+ filter.order = OrderFields[o[:order].to_sym] if available_order?(o[:order])
15
+ filter.ascending = o[:asc] if o[:asc]
22
16
  filter
23
17
  end
24
18
 
@@ -27,5 +21,30 @@ module ENUtils
27
21
  OrderFields.keys.include?(value.to_sym)
28
22
  end
29
23
 
24
+ private
25
+
26
+ def self.notebook_guid(core, notebook)
27
+ if notebook.is_a?(ENUtils::Notebook)
28
+ notebook.guid
29
+ elsif ENUtils::GUID_REGEXP =~ notebook
30
+ notebook
31
+ else
32
+ Notebook.find_by_name(core, notebook).try(:guid)
33
+ end
34
+ end
35
+
36
+ def self.tag_guids(core, tag: nil, tags: nil)
37
+ search_tags = (tags || []) + [tag]
38
+ search_tags.compact.map do |t|
39
+ if t.is_a?(ENUtils::Tag)
40
+ t.guid
41
+ elsif ENUtils::GUID_REGEXP =~ t
42
+ t
43
+ else
44
+ Tag.find_by_name(core, t).try(:guid)
45
+ end
46
+ end.compact
47
+ end
48
+
30
49
  end
31
50
  end
@@ -1,6 +1,5 @@
1
1
  require 'active_support/core_ext/object'
2
- require "evernote_utils/array"
3
- require "evernote_utils/filter"
2
+ require "evernote_utils/notelist"
4
3
 
5
4
  module ENUtils
6
5
  class Note < Evernote::EDAM::Type::Note
@@ -19,9 +18,12 @@ module ENUtils
19
18
  # notebookGuid:"4xxxxxda-xxxx-xxxx-xxxx-zzzzzzzzzzzz"
20
19
  # attributes:<Evernote::EDAM::Type::NoteAttributes >
21
20
 
22
- attr_reader :guid, :title, :contentHash, :contentLength, :created, :updated, :active, :updateSequenceNum, :notebookGuid, :attributes
21
+ attr_reader :guid, :title, :contentHash, :contentLength, :created, :updated, :active, :updateSequenceNum, :notebookGuid, :tagGuids, :attributes
22
+ attr_accessor :content
23
+
24
+ def initialize(core, edam_note)
25
+ @core = core
23
26
 
24
- def initialize(edam_note)
25
27
  @guid = edam_note.guid
26
28
  @title = edam_note.title
27
29
  @contentHash = edam_note.contentHash
@@ -31,15 +33,29 @@ module ENUtils
31
33
  @active = edam_note.active
32
34
  @updateSequenceNum = edam_note.updateSequenceNum
33
35
  @notebookGuid = edam_note.notebookGuid
36
+ @tagGuids = edam_note.tagGuids
34
37
  @attributes = edam_note.attributes
35
38
  end
36
39
 
37
40
  def self.where(core, options={})
38
41
  offset = options.delete(:offset) || 0
39
42
  limit = options.delete(:limit) || DEFAULT_LIMIT
40
- result = core.notestore.findNotes(core.token, NoteFilter.build(options), offset, limit).notes.map{|n| new(n) }
43
+ result = core.notestore.findNotes(core.token, NoteFilter.build(core, options), offset, limit).notes.map{|n| new(core, n) }
41
44
  NoteList.new(core, result, options)
42
45
  end
43
46
 
47
+ def set_content!
48
+ # getNote(token, guid, withContent, withResourcesData, withResourcesRecognition, withResourcesAlternateData)
49
+ @content ||= @core.notestore.getNote(@core.token, guid, true, false, false, false).content
50
+ end
51
+
52
+ def notebook
53
+ @notebook ||= Notebook.find_by_guid(@core, notebookGuid)
54
+ end
55
+
56
+ def tags
57
+ return nil unless tagGuids
58
+ @tags ||= tagGuids.map{|guid| Tag.find_by_guid(@core, guid) }.compact
59
+ end
44
60
  end
45
61
  end
@@ -12,7 +12,8 @@ module ENUtils
12
12
 
13
13
  attr_reader :guid, :name, :updateSequenceNum, :defaultNotebook, :serviceCreated, :serviceUpdated, :restrictions
14
14
 
15
- def initialize(edam_notebook)
15
+ def initialize(core, edam_notebook)
16
+ @core = core
16
17
  @guid = edam_notebook.guid
17
18
  @name = edam_notebook.name
18
19
  @updateSequenceNum = edam_notebook.updateSequenceNum
@@ -22,12 +23,26 @@ module ENUtils
22
23
  @restrictions = edam_notebook.restrictions
23
24
  end
24
25
 
26
+ def notes(options={})
27
+ Note.where(@core, options.merge(notebook: self))
28
+ end
29
+
30
+ def self.find_by_guid(core, guid)
31
+ notebook = core.notestore.listNotebooks(core.token).find{|nb| nb.guid == guid }
32
+ notebook.present? ? new(core, notebook) : nil
33
+ end
34
+
35
+ def self.find_by_name(core, name)
36
+ notebook = core.notestore.listNotebooks(core.token).find{|nb| nb.name.downcase == name.to_s.downcase }
37
+ notebook.present? ? new(core, notebook) : nil
38
+ end
39
+
25
40
  def self.where(core, options={})
26
- notebooks = core.notestore.listNotebooks(core.token).map{|nb| new(nb) }
41
+ notebooks = core.notestore.listNotebooks(core.token).map{|nb| new(core, nb) }
27
42
  return notebooks if options.empty?
28
43
  case options[:name]
29
44
  when String
30
- notebooks.select{|nb| options[:name] == nb.name }
45
+ notebooks.select{|nb| options[:name].downcase == nb.name.downcase }
31
46
  when Regexp
32
47
  notebooks.select{|nb| options[:name] =~ nb.name }
33
48
  else
@@ -11,12 +11,16 @@ module ENUtils
11
11
  super(array)
12
12
  end
13
13
 
14
+ def total_count
15
+ @total_count ||= get_total_count
16
+ end
17
+
14
18
  # findNoteCounts returns
15
19
  # Evernote::EDAM::NoteStore::NoteCollectionCounts
16
20
  # notebookCounts:{"xxxxxxxx-...xxx": 10, ...},
17
21
  # tagCounts:{"xxxxxx-...xxxx": 1, ..."}
18
- def total_count
19
- counts = core.notestore.findNoteCounts(core.token, NoteFilter.build(options), false)
22
+ def get_total_count
23
+ counts = core.notestore.findNoteCounts(core.token, NoteFilter.build(core, options), false)
20
24
  counts.notebookCounts.reduce(0){|sum, pair| sum += pair.last }
21
25
  end
22
26
  end
@@ -7,14 +7,29 @@ module ENUtils
7
7
  # updateSequenceNum:4378
8
8
  attr_reader :guid, :name, :updateSequenceNum
9
9
 
10
- def initialize(edam_tag)
10
+ def initialize(core, edam_tag)
11
+ @core = core
11
12
  @guid = edam_tag.guid
12
13
  @name = edam_tag.name
13
14
  @updateSequenceNum = edam_tag.updateSequenceNum
14
15
  end
15
16
 
17
+ def notes(options={})
18
+ Note.where(@core, options.merge(tag: self))
19
+ end
20
+
21
+ def self.find_by_guid(core, guid)
22
+ tag = core.notestore.listTags(core.token).find{|t| t.guid == guid }
23
+ tag.present? ? new(core, tag) : nil
24
+ end
25
+
26
+ def self.find_by_name(core, name)
27
+ tag = core.notestore.listTags(core.token).find{|t| t.name.downcase == name.to_s.downcase }
28
+ tag.present? ? new(core, tag) : nil
29
+ end
30
+
16
31
  def self.where(core, options={})
17
- tags = core.notestore.listTags(core.token).map{|t| new(t) }
32
+ tags = core.notestore.listTags(core.token).map{|t| new(core, t) }
18
33
  return tags if options.empty?
19
34
  case options[:name]
20
35
  when String
@@ -1,3 +1,3 @@
1
1
  module ENUtils
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -8,6 +8,8 @@ require "evernote_utils/tag"
8
8
  module ENUtils
9
9
  class InvalidVersion < StandardError; end
10
10
 
11
+ GUID_REGEXP = /\w{8}-\w{4}-\w{4}-\w{4}-\w{12}/
12
+
11
13
  class Core
12
14
  attr_accessor :token, :notestore
13
15
 
@@ -36,10 +38,20 @@ module ENUtils
36
38
  Note.where(self, options)
37
39
  end
38
40
 
41
+ def notebook(name=nil)
42
+ return nil unless name
43
+ Notebook.find_by_name(self, name)
44
+ end
45
+
39
46
  def notebooks(options={})
40
47
  Notebook.where(self, options)
41
48
  end
42
49
 
50
+ def tag(name=nil)
51
+ return nil unless name
52
+ Tag.find_by_name(self, name)
53
+ end
54
+
43
55
  def tags(options={})
44
56
  Tag.where(self, options)
45
57
  end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+
3
+ describe ENUtils::Note do
4
+ before do
5
+ end
6
+ describe 'could change parent notebook' do
7
+ end
8
+ end
@@ -1,16 +1,16 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe EvernoteUtils::Core do
3
+ describe ENUtils::Core do
4
4
  before do
5
- Thrift::HTTPClientTransport.stubs(new: nil)
6
- Thrift::BinaryProtocol.stubs(new: nil)
5
+ allow(Thrift::HTTPClientTransport).to receive(:new) { nil }
6
+ allow(Thrift::BinaryProtocol).to receive(:new) { nil }
7
7
 
8
- us = mock('Evernote::EDAM::UserStore::UserStore::Client')
9
- Evernote::EDAM::UserStore::UserStore::Client.stubs(new: us)
10
- us.stubs(checkVersion: true,
11
- getNoteStoreUrl: 'http://note_store_url/')
8
+ us = double('Evernote::EDAM::UserStore::UserStore::Client')
9
+ allow(Evernote::EDAM::UserStore::UserStore::Client).to receive(:new) { us }
10
+ allow(us).to receive_messages(checkVersion: true,
11
+ getNoteStoreUrl: 'http://note_store_url/')
12
12
  end
13
13
  it {
14
- EvernoteUtils::Core.new('dummy_token').must_be_instance_of EvernoteUtils::Core
14
+ expect(ENUtils::Core.new('dummy_token')).to be_instance_of(ENUtils::Core)
15
15
  }
16
16
  end
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,2 @@
1
1
  require 'rubygems'
2
- require 'minitest/spec'
3
- require 'minitest/autorun'
4
- require 'mocha/setup'
5
-
6
2
  require 'evernote_utils'
metadata CHANGED
@@ -1,111 +1,139 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evernote_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - memerelics
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-22 00:00:00.000000000 Z
11
+ date: 2014-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: evernote-thrift
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: 1.25.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.25.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activesupport
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 4.0.2
33
+ version: 3.2.13
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 4.0.2
40
+ version: 3.2.13
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.3'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.3'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: pry
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: minitest
84
+ name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 3.0.0.beta
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 3.0.0.beta
97
+ - !ruby/object:Gem::Dependency
98
+ name: rb-readline
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: guard-rspec
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
88
116
  - !ruby/object:Gem::Version
89
117
  version: '0'
90
118
  type: :development
91
119
  prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
93
121
  requirements:
94
- - - '>='
122
+ - - ">="
95
123
  - !ruby/object:Gem::Version
96
124
  version: '0'
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: mocha
99
127
  requirement: !ruby/object:Gem::Requirement
100
128
  requirements:
101
- - - '>='
129
+ - - ">="
102
130
  - !ruby/object:Gem::Version
103
131
  version: '0'
104
132
  type: :development
105
133
  prerelease: false
106
134
  version_requirements: !ruby/object:Gem::Requirement
107
135
  requirements:
108
- - - '>='
136
+ - - ">="
109
137
  - !ruby/object:Gem::Version
110
138
  version: '0'
111
139
  description: A thin OOP-friendly wrapper of Evernote Ruby SDK.
@@ -115,19 +143,21 @@ executables: []
115
143
  extensions: []
116
144
  extra_rdoc_files: []
117
145
  files:
118
- - .gitignore
146
+ - ".gitignore"
119
147
  - Gemfile
148
+ - Guardfile
120
149
  - LICENSE.txt
121
150
  - README.md
122
151
  - Rakefile
123
152
  - evernote_utils.gemspec
124
153
  - lib/evernote_utils.rb
125
- - lib/evernote_utils/array.rb
126
154
  - lib/evernote_utils/filter.rb
127
155
  - lib/evernote_utils/note.rb
128
156
  - lib/evernote_utils/notebook.rb
157
+ - lib/evernote_utils/notelist.rb
129
158
  - lib/evernote_utils/tag.rb
130
159
  - lib/evernote_utils/version.rb
160
+ - spec/evernote_utils/note_spec.rb
131
161
  - spec/evernote_utils_spec.rb
132
162
  - spec/spec_helper.rb
133
163
  homepage: ''
@@ -140,20 +170,21 @@ require_paths:
140
170
  - lib
141
171
  required_ruby_version: !ruby/object:Gem::Requirement
142
172
  requirements:
143
- - - '>='
173
+ - - ">="
144
174
  - !ruby/object:Gem::Version
145
175
  version: '0'
146
176
  required_rubygems_version: !ruby/object:Gem::Requirement
147
177
  requirements:
148
- - - '>='
178
+ - - ">="
149
179
  - !ruby/object:Gem::Version
150
180
  version: '0'
151
181
  requirements: []
152
182
  rubyforge_project:
153
- rubygems_version: 2.0.14
183
+ rubygems_version: 2.2.2
154
184
  signing_key:
155
185
  specification_version: 4
156
186
  summary: A thin OOP-friendly wrapper of Evernote Ruby SDK.
157
187
  test_files:
188
+ - spec/evernote_utils/note_spec.rb
158
189
  - spec/evernote_utils_spec.rb
159
190
  - spec/spec_helper.rb