rb-dayone 0.6.0 → 0.7.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: adbfa1eebd1eef8d92dcd87f14c71e94dcbf14a2
4
+ data.tar.gz: b27c9d5ca865527309979cafe70f77f78963f9e1
5
+ SHA512:
6
+ metadata.gz: 326fbff745ce8c1bbc6d0dac35fe3bcb050977dfcac2514cba262dd8dd25733fc37babeb3cbda02d36ecfaecf531b7ac0334fbde23adcb1db1d061ef99d5fb99
7
+ data.tar.gz: c7c4deac6273fa964652bad4fab62113113eacac99731b403e574a448af039ef04c43adc36c79dcb976bf1391e5be093db87f3afdd870c787ed63bd66586e9be
data/Gemfile CHANGED
@@ -1,5 +1,5 @@
1
- source :rubygems
1
+ source "https://www.rubygems.org"
2
2
 
3
- gem 'builder', '~> 2.0'
4
- gem 'commander', '~> 4.1.2'
5
- gem 'nokogiri', '~> 1.5.0'
3
+ gem "builder", "~> 3.1.0"
4
+ gem "commander", "~> 4.1.2"
5
+ gem "nokogiri", "~> 1.6.0"
@@ -1,16 +1,18 @@
1
1
  GEM
2
- remote: http://rubygems.org/
2
+ remote: https://www.rubygems.org/
3
3
  specs:
4
- builder (2.1.2)
5
- commander (4.1.2)
4
+ builder (3.1.4)
5
+ commander (4.1.5)
6
6
  highline (~> 1.6.11)
7
- highline (1.6.13)
8
- nokogiri (1.5.6)
7
+ highline (1.6.20)
8
+ mini_portile (0.5.2)
9
+ nokogiri (1.6.1)
10
+ mini_portile (~> 0.5.0)
9
11
 
10
12
  PLATFORMS
11
13
  ruby
12
14
 
13
15
  DEPENDENCIES
14
- builder (~> 2.0)
16
+ builder (~> 3.1.0)
15
17
  commander (~> 4.1.2)
16
- nokogiri (~> 1.5.0)
18
+ nokogiri (~> 1.6.0)
data/Manifest CHANGED
@@ -15,6 +15,11 @@ lib/rb-dayone/entry_importer.rb
15
15
  lib/rb-dayone/location.rb
16
16
  lib/rb-dayone/plist_reader.rb
17
17
  lib/rb-dayone/search.rb
18
+ lib/rb-dayone/search_engine.rb
19
+ lib/rb-dayone/search_engines/creation_date_search.rb
20
+ lib/rb-dayone/search_engines/entry_text_search.rb
21
+ lib/rb-dayone/search_engines/starred_search.rb
22
+ lib/rb-dayone/search_engines/tag_search.rb
18
23
  Manifest
19
24
  Rakefile
20
25
  rb-dayone.gemspec
data/README.md CHANGED
@@ -21,6 +21,32 @@ When you're ready to save your entry, just run the `create!` method:
21
21
 
22
22
  e.create!
23
23
 
24
+ ### Searching
25
+
26
+ You can now search your DayOne archives. Use the `DayOne::Search` object to start a search:
27
+
28
+ s = DayOne::Search.new do
29
+ entry_text.include "Foo" # Entry must have "foo" in the entry text
30
+ entry_text.exclude "Bar" # Entry cannot have "bar" in the entry text
31
+ tag.include "baz" # Entry must be tagged "baz"
32
+ tag.exclude "caz" # Entry cannot be tagged "caz"
33
+ starred.is true # Entry is starred
34
+ starred.is false # Entry is not starred
35
+ creation_date.after t # Entry created after +t+
36
+ creation_date.before t # Entry created before +t+
37
+ end
38
+
39
+ s.results # Retrieve an array of search results
40
+
41
+ Most of these methods can be combined, e.g.:
42
+
43
+ s = DayOne::Search.new do
44
+ entry_text.include "Eggs"
45
+ entry_text.include "Milk"
46
+ end
47
+
48
+ This will only find posts that contain both the words "Eggs" and "Milk" in the entry text.
49
+
24
50
  ## Binary
25
51
 
26
52
  Rb-dayone ships with a binary, `dayone`. Run `dayone --help` for instructions on how to use it.
@@ -35,6 +61,23 @@ Original author: [Jan-Yves Ruzicka](http://www.1klb.com). Get in touch [via emai
35
61
 
36
62
  ## History
37
63
 
64
+ ### 0.7.1 / 2014-01-15
65
+
66
+ * [NEW] Save entries with `Entry#save!`, delete them with `Entry#delete!`
67
+ * [NEW] Remove entry tags with `Entry#remove_tag`.
68
+ * [FIXED] Will now recognise hashtags at the start of lines.
69
+ * [FIXED] EntryImporter now adds the UUID to generated Entries
70
+ * [FIXED] The `Entry#auto_tag` will now only accept tags with letters, numbers and underscores in them.
71
+
72
+ ### 0.7.0 / 2014-01-14
73
+
74
+ * [NEW] Use `Entry#created_at` for `Entry#creation_date`, `Entry#auto_tag` for `Entry#add_tags_from_entry_text`
75
+ * [NEW] Search!
76
+
77
+ ### 0.6.1 / 2014-01-13
78
+
79
+ * [FIXED] Updated gem versions
80
+
38
81
  ### 0.6.0 / 2013-01-14
39
82
 
40
83
  * [NEW] Location support
@@ -38,7 +38,7 @@ module DayOne
38
38
 
39
39
  # The location of the DayOne journal file as determined by
40
40
  # the DayOne plist file stored in +~/Library/Preferences+.
41
- # @return [String] the DayONe journal location
41
+ # @return [String] the DayOne journal location
42
42
  def auto_journal_location
43
43
  @auto_journal_location ||= File.expand_path(plist_reader.journal_location)
44
44
  end
@@ -64,7 +64,8 @@ module DayOne
64
64
  end
65
65
 
66
66
 
67
- Dir[File.join(lib_root, "rb-dayone", "*.rb")].each{ |f| require f }
67
+ Dir[File.join(lib_root, "rb-dayone/*.rb")].each{ |f| require f }
68
+ Dir[File.join(lib_root, "rb-dayone/search_engines/*.rb")].each{ |f| require f }
68
69
 
69
70
  # Default values
70
71
  DayOne::dayone_folder = File.join(ENV['HOME'], '.rb-dayone')
@@ -6,6 +6,8 @@ class DayOne::Entry
6
6
 
7
7
  # The date of the journal entry
8
8
  attr_accessor :creation_date
9
+ alias_method :created_at, :creation_date
10
+ alias_method :created_at=, :creation_date=
9
11
 
10
12
  # The journal entry's body text
11
13
  attr_accessor :entry_text
@@ -24,6 +26,10 @@ class DayOne::Entry
24
26
 
25
27
  # The location of the entry.
26
28
  attr_accessor :location
29
+
30
+ # The UUID of the entry. Auto-generated if it doesn't already exist, this
31
+ # shouldn't be manually set.
32
+ attr_accessor :uuid
27
33
 
28
34
  # The PList doctype, used for XML export
29
35
  DOCTYPE = [:DOCTYPE, :plist, :PUBLIC, "-//Apple//DTD PLIST 1.0//EN", "http://www.apple.com/DTDs/PropertyList-1.0.dtd"]
@@ -54,27 +60,34 @@ class DayOne::Entry
54
60
  @uuid ||= `uuidgen`.gsub('-','').strip
55
61
  end
56
62
 
63
+ # The file where this entry should/will be saved
64
+ def file
65
+ @file ||= File.join(DayOne::journal_location,'entries',"#{uuid}.doentry")
66
+ end
67
+
57
68
  # Add a tag to the entry
58
69
  # @param [String] str The string tag to add to the list.
59
70
  def tag str
60
71
  @tags << str.to_s
61
72
  end
62
73
 
63
- # Searches the entry text for tags (#foo) and adds
64
- # them to the entry's tags. Will avoid adding punctuation
65
- # to the end of the tag (so e.g. '#foo.' will detect as #foo).
74
+ alias_method :add_tag, :tag
75
+
76
+ # Remove a tag from the entry
77
+ def remove_tag str
78
+ @tags.delete(str)
79
+ end
80
+
81
+ # Searches the entry text for tags (#foo) and adds them to the entry's tags.
82
+ # Only recognises letters, numbers and underscores in tags.
66
83
  def add_tags_from_entry_text
67
- @entry_text.scan(/(?<=[ \t])#(\S+)/) do |m|
68
- m = m.shift
69
- if m[-1] !~ /[a-zA-Z0-9]/
70
- # Then the last char is a symbol or punctuation, and we should wipe it
71
- m = m[0..-2]
72
- end
73
- tag m
74
- end
84
+ @entry_text.scan(/(?<=[ \t\n])#([a-zA-Z0-9_]+)/){ |m| tag m.shift }
75
85
  end
86
+
87
+ alias_method :auto_tag, :add_tags_from_entry_text
76
88
 
77
- # The same as calling Entry#saved
89
+ # The same as calling Entry#saved. Tells you if this entry has been saved to
90
+ # file yet.
78
91
  def saved?
79
92
  saved
80
93
  end
@@ -124,8 +137,7 @@ class DayOne::Entry
124
137
  # @return [Boolean] true if the operation was successful.
125
138
  def create!
126
139
  xml = self.to_xml
127
- file_location = File.join(DayOne::journal_location,'entries',"#{uuid}.doentry")
128
- File.open(file_location,'w'){ |io| io << xml }
140
+ File.open(self.file,'w'){ |io| io << xml }
129
141
  if image
130
142
  new_image_path = File.join(DayOne::journal_location, 'photos', "#{uuid}.jpg")
131
143
  FileUtils.cp(image, new_image_path)
@@ -133,6 +145,15 @@ class DayOne::Entry
133
145
  end
134
146
  return true
135
147
  end
148
+
149
+ alias_method :save!, :create!
150
+
151
+ # Deletes the .doentry file of this entry. This will remove the entry from
152
+ # your database, although you can reinstate it by calling +#save!+ on this
153
+ # object.
154
+ def delete!
155
+ FileUtils::rm self.file
156
+ end
136
157
 
137
158
  # Check to make sure that we output valid xml
138
159
  def xml_valid?
@@ -44,21 +44,22 @@ class DayOne::EntryImporter
44
44
  creation_date: self['Creation Date'],
45
45
  saved: true,
46
46
  tags: self['Tags']||[],
47
- location: self['Location']||{}
47
+ location: self['Location']||{},
48
+ uuid: self["UUID"]
48
49
  )
49
50
  end
50
51
 
51
52
  private
52
53
 
54
+ # TODO Import images
55
+
53
56
  # Process an XML tag. Returns a the value of the tag as a ruby value.
54
57
  # @param [Nokogiri::XML::Element] element The element to process
55
58
  # @return The values contained within the element
56
59
  def process_value element
57
60
  case element.name
58
61
  when 'date'
59
- if element.content =~ /(\d+)-(\d+)-(\d+)T(\d+):(\d+):(\d+)Z/
60
- Time.utc($1.to_i, $2.to_i, $3.to_i, $4.to_i, $5.to_i, $6.to_i)
61
- end
62
+ Time.parse(element.content)
62
63
  when 'string'
63
64
  element.content
64
65
  when 'real'
@@ -1,46 +1,24 @@
1
1
  # A search of the database.
2
2
  # Create this object with Search.new. Give it some parameters to search for, then
3
- # simple use Search#[] to access results.
3
+ # use Search#[] to access results.
4
4
  class DayOne::Search
5
-
6
- # The entry must include this text
7
- attr_accessor :entry_text
8
-
9
- # The entry must be starred
10
- attr_accessor :starred
11
-
12
- # The entry must have this tag
13
- attr_accessor :tag
14
-
15
- # Initialize the search. Currently you can search by:
16
- # * entry text
17
- # * starred status
18
- # * tag
19
- #
20
- # These can be passed in via hash.
21
- # @param [Hash] hash a hash of search criteria, including:
22
- # * +:entry_text+ - Text that the entry must include
23
- # * +:starred+ - whether the entry is starred or not
24
- # * +:tag+ - a tag that the entry must have
25
- def initialize hash={}
26
- hash.each do |k,v|
27
- setter = "#{k}="
28
- self.send(setter, v) if self.respond_to?(setter)
29
- end
5
+
6
+ # Initialize the search. Takes a block, which allows
7
+ # access to an array of +SearchEngine+ subclasses.
8
+ def initialize &blck
9
+ instance_eval(&blck) if block_given?
30
10
  end
31
11
 
32
- # Fetch the results by searching. Uses a cached version of the DayOne database.
12
+ # Fetch the results by searching.
33
13
  # @return [Array] all entries matching your results
34
14
  def results
35
15
  if !@results
36
- @results = []
37
- working_results = cache
16
+ # Fetch files + data
17
+ @results = DayOne::entries.each_with_object({}){ |file, hash| hash[file] = File.read(file) }
38
18
 
39
- working_results = working_results.select{ |e| e.entry_text.include? entry_text } unless entry_text.nil?
40
- working_results = working_results.select{ |e| e.starred == starred } unless starred.nil?
41
- working_results = working_results.select{ |e| e.tags.include? tag } unless tag.nil?
42
-
43
- @results = working_results
19
+ search_engines = self.active_search_engines
20
+ @results = @results.select{ |k,v| search_engines.all?{ |se| se.matches?(v) }}
21
+ @results = @results.map{ |file,data| DayOne::EntryImporter.new(data,file).to_entry }
44
22
  end
45
23
  @results
46
24
  end
@@ -51,17 +29,30 @@ class DayOne::Search
51
29
  def [] index
52
30
  results[index]
53
31
  end
54
-
55
- private
56
-
57
- # Caches all journal entries for us. On first running, will load everything
58
- # from file. After this, will just refer back to the cache.
59
- # @return [Array] an array of DayOne::Entry objects
60
- def cache
61
- if !@cache
62
- entries = File.join(DayOne::journal_location, 'entries', '*.doentry')
63
- @cache = Dir[entries].map{ |e| DayOne::EntryImporter::from_file(e).to_entry }
64
- end
65
- @cache
32
+
33
+ # entry_text search engine
34
+ def entry_text
35
+ @entry_text ||= DayOne::EntryTextSearch.new
36
+ end
37
+
38
+ # starred search engine
39
+ def starred
40
+ @starred ||= DayOne::StarredSearch.new
41
+ end
42
+
43
+ # Tags search engine
44
+ def tag
45
+ @tag ||= DayOne::TagSearch.new
46
+ end
47
+
48
+ # Creation date search engine
49
+ def creation_date
50
+ @creation_date ||= DayOne::CreationDateSearch.new
51
+ end
52
+
53
+ # Returns an array of search engines which are defined and will actually do
54
+ # filtering.
55
+ def active_search_engines
56
+ [@entry_text, @starred, @tag, @creation_date].compact
66
57
  end
67
58
  end
@@ -0,0 +1,7 @@
1
+ # Abstract superclass for a number of
2
+ # search routines
3
+ class DayOne::SearchEngine
4
+ def matches? string
5
+ false
6
+ end
7
+ end
@@ -0,0 +1,32 @@
1
+ # Searches posts with a given creation date
2
+ class DayOne::CreationDateSearch < DayOne::SearchEngine
3
+
4
+ # No-argument initializer, sets default ivars.
5
+ def initialize
6
+ @before = nil
7
+ @after = nil
8
+ end
9
+
10
+ # Post must have occured before a given date
11
+ def before date
12
+ @before = date
13
+ end
14
+
15
+ # Post must have occured after a given date
16
+ def after date
17
+ @after = date
18
+ end
19
+
20
+ # Does this search widget match the date value of the given string?
21
+ # @returns [Boolean] Whether it matches or not
22
+ def matches? string
23
+ return true if !(@before || @after)
24
+
25
+ t = Time.parse string[%r|<key>Creation Date</key>\s+<date>(.*?)</date>|,1]
26
+
27
+ return (
28
+ !(@before && t >= @before) && # NOT (@before defined and event occurs after @before)
29
+ !(@after && t <= @after)
30
+ )
31
+ end
32
+ end
@@ -0,0 +1,33 @@
1
+ # Searches the entry_text of a post
2
+ class DayOne::EntryTextSearch < DayOne::SearchEngine
3
+
4
+ # No-argument initializer, sets default ivars.
5
+ def initialize
6
+ @include = []
7
+ @exclude = []
8
+ end
9
+
10
+ # Posts must contain the following string in their entry text.
11
+ def include string
12
+ @include << string
13
+ end
14
+
15
+ # Posts cannot contain the following string in their entry text
16
+ def exclude string
17
+ @exclude << string
18
+ end
19
+
20
+ # Does this search widget match the entry text of the given string?
21
+ # @returns [Boolean] Whether it matches or not
22
+ def matches? string
23
+ entry_text = string[%r|<key>Entry Text</key>\s+<string>(.*?)</string>|m,1]
24
+
25
+ # Edge case: no entry text
26
+ return true if entry_text.nil? && @include.empty?
27
+
28
+ return (entry_text &&
29
+ @include.all?{ |s| entry_text.include?(s) } &&
30
+ @exclude.all?{ |s| !entry_text.include?(s) }
31
+ )
32
+ end
33
+ end
@@ -0,0 +1,30 @@
1
+ # Searches starred or unstarred posts
2
+ class DayOne::StarredSearch < DayOne::SearchEngine
3
+
4
+ # No-argument initializer, sets default ivars.
5
+ def initialize
6
+ @is = nil
7
+ end
8
+
9
+ # Posts must be starred true or false.
10
+ def is bool
11
+ @is = bool
12
+ end
13
+
14
+ # Unset search criterion
15
+ def unset
16
+ @is = nil
17
+ end
18
+
19
+ # Does this search widget match the starred value of the given string?
20
+ # @returns [Boolean] Whether it matches or not
21
+ def matches? string
22
+ return true if @is.nil?
23
+
24
+ starred_string = string[%r|<key>Starred</key>\s+<(.*)/>|m,1]
25
+
26
+ return (starred_string &&
27
+ (starred_string == "true") == @is
28
+ )
29
+ end
30
+ end
@@ -0,0 +1,38 @@
1
+ # Searches the tags of a post
2
+ class DayOne::TagSearch < DayOne::SearchEngine
3
+
4
+ # No-argument initializer, sets default ivars.
5
+ def initialize
6
+ @include = []
7
+ @exclude = []
8
+ end
9
+
10
+ # Posts must have the following tag.
11
+ def include string
12
+ @include << to_tag(string)
13
+ end
14
+
15
+ # Posts cannot have the following tag.
16
+ def exclude string
17
+ @exclude << to_tag(string)
18
+ end
19
+
20
+ # Does this search widget match the tags of the given string?
21
+ # @returns [Boolean] Whether it matches or not
22
+ def matches? string
23
+ tag_string = string[%r|<key>Tags</key>\s+<array>(.*?)</array>|m,1]
24
+
25
+ # Edge case: no tags
26
+ return true if @include.empty? && tag_string.nil?
27
+
28
+ return (tag_string &&
29
+ @include.all?{ |s| tag_string.include?(s) } &&
30
+ @exclude.all?{ |s| !tag_string.include?(s) }
31
+ )
32
+ end
33
+
34
+ private
35
+ def to_tag s
36
+ "<string>#{s}</string>"
37
+ end
38
+ end
@@ -5,7 +5,7 @@ Gem::Specification.new do |s|
5
5
  s.version = File.read('version.txt')
6
6
 
7
7
  s.summary = "Create DayOne journal entries in ruby."
8
- s.description = "Create or search [DayOne](http://www.dayoneapp.com) journal entries simply and easily in ruby. Currently only supports text entries, image entries to come."
8
+ s.description = "Create or search [DayOne](http://www.dayoneapp.com) journal entries simply and easily in ruby."
9
9
 
10
10
  s.author = 'Jan-Yves Ruzicka'
11
11
  s.email = 'janyves.ruzicka@gmail.com'
@@ -18,8 +18,8 @@ Gem::Specification.new do |s|
18
18
  s.executables << 'dayone'
19
19
 
20
20
 
21
- s.add_runtime_dependency 'builder', '~> 2.0'
21
+ s.add_runtime_dependency 'builder', '~> 3.1.0'
22
22
  s.add_runtime_dependency 'commander', '~> 4.1.2'
23
- s.add_runtime_dependency 'libxml-ruby', '~> 2.3.3'
24
- s.add_runtime_dependency 'nokogiri', '~> 1.5.0'
23
+ s.add_runtime_dependency 'libxml-ruby', '~> 2.7.0'
24
+ s.add_runtime_dependency 'nokogiri', '~> 1.6.0'
25
25
  end
@@ -1 +1 @@
1
- 0.6.0
1
+ 0.7.1
metadata CHANGED
@@ -1,62 +1,73 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rb-dayone
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
5
- prerelease:
4
+ version: 0.7.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jan-Yves Ruzicka
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-09 00:00:00.000000000 Z
11
+ date: 2014-01-14 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: builder
16
- requirement: &70362709355040 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
21
- version: '2.0'
19
+ version: 3.1.0
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *70362709355040
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 3.1.0
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: commander
27
- requirement: &70362709354080 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
31
  - - ~>
31
32
  - !ruby/object:Gem::Version
32
33
  version: 4.1.2
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *70362709354080
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 4.1.2
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: libxml-ruby
38
- requirement: &70362709352740 !ruby/object:Gem::Requirement
39
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
45
  - - ~>
42
46
  - !ruby/object:Gem::Version
43
- version: 2.3.3
47
+ version: 2.7.0
44
48
  type: :runtime
45
49
  prerelease: false
46
- version_requirements: *70362709352740
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 2.7.0
47
55
  - !ruby/object:Gem::Dependency
48
56
  name: nokogiri
49
- requirement: &70362709350740 !ruby/object:Gem::Requirement
50
- none: false
57
+ requirement: !ruby/object:Gem::Requirement
51
58
  requirements:
52
59
  - - ~>
53
60
  - !ruby/object:Gem::Version
54
- version: 1.5.0
61
+ version: 1.6.0
55
62
  type: :runtime
56
63
  prerelease: false
57
- version_requirements: *70362709350740
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: 1.6.0
58
69
  description: Create or search [DayOne](http://www.dayoneapp.com) journal entries simply
59
- and easily in ruby. Currently only supports text entries, image entries to come.
70
+ and easily in ruby.
60
71
  email: janyves.ruzicka@gmail.com
61
72
  executables:
62
73
  - dayone
@@ -74,6 +85,11 @@ files:
74
85
  - lib/rb-dayone/location.rb
75
86
  - lib/rb-dayone/plist_reader.rb
76
87
  - lib/rb-dayone/search.rb
88
+ - lib/rb-dayone/search_engine.rb
89
+ - lib/rb-dayone/search_engines/creation_date_search.rb
90
+ - lib/rb-dayone/search_engines/entry_text_search.rb
91
+ - lib/rb-dayone/search_engines/starred_search.rb
92
+ - lib/rb-dayone/search_engines/tag_search.rb
77
93
  - Manifest
78
94
  - Rakefile
79
95
  - rb-dayone.gemspec
@@ -81,27 +97,26 @@ files:
81
97
  - version.txt
82
98
  homepage: https://github.com/jyruzicka/rb-dayone
83
99
  licenses: []
100
+ metadata: {}
84
101
  post_install_message:
85
102
  rdoc_options: []
86
103
  require_paths:
87
104
  - lib
88
105
  - lib
89
106
  required_ruby_version: !ruby/object:Gem::Requirement
90
- none: false
91
107
  requirements:
92
108
  - - ! '>='
93
109
  - !ruby/object:Gem::Version
94
110
  version: '0'
95
111
  required_rubygems_version: !ruby/object:Gem::Requirement
96
- none: false
97
112
  requirements:
98
113
  - - ! '>='
99
114
  - !ruby/object:Gem::Version
100
115
  version: '0'
101
116
  requirements: []
102
117
  rubyforge_project:
103
- rubygems_version: 1.8.10
118
+ rubygems_version: 2.1.0
104
119
  signing_key:
105
- specification_version: 3
120
+ specification_version: 4
106
121
  summary: Create DayOne journal entries in ruby.
107
122
  test_files: []