rb-dayone 0.4.1 → 0.6.0

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/History.rdoc DELETED
@@ -1,76 +0,0 @@
1
- == 0.4.1 / 2012-11-14
2
-
3
- * [FIXED] rb-dayone was looking in the wrong place for preferences
4
- * [FIXED] new preference files not json-parseable. Swapped to XML/Nokogiri
5
-
6
- == 0.4.0 / 2012-10-22
7
-
8
- * Added image support
9
-
10
- == 0.3.3 / 2012-08-17
11
-
12
- * [FIXED] LibXML will now accept UTF-8 characters in journal entries.
13
- * Added the command "repair" to the dayone binary, which will at least repair *my* damage.
14
- * Added the command "verify" to the dayone binary, which I at least find helpful.
15
- * Added a post-install note telling people upgrading from <= 0.2.0 to repair.
16
-
17
- == 0.3.2 / 2012-08-16
18
-
19
- * Switched from REXML to LibXML-ruby for XML parsing. Now accepts ampersands in entries, as well as UTF-8. Rejoice!
20
-
21
- == 0.3.1 / 2012-08-16
22
-
23
- * [FIXED] Minor bugfixes
24
- * [FIXED] REXML will no longer kill the whole program if it can't parse a journal file.
25
-
26
- == 0.3.0 / 2012-08-16
27
-
28
- * [FIXED] Fixed several bugs in Builder xml output, including:
29
- * Output of trailing <target />
30
- * Output of malformed DOCTYPE
31
- * You can now import existing DayOne entries and search them
32
-
33
- == 0.2.0 / 2012-08-14
34
-
35
- * Now auto-detects DayOne journal location from your plist file
36
-
37
- == 0.1.7 / 2012-08-13
38
-
39
- * The dayone binary can now add entries to your journal
40
- * [FIXED] Managed to break the gem's include in 0.1.6, and because I'm a terrible amateur at all this, didn't pick up on it.
41
-
42
- == 0.1.6 / 2012-08-13
43
-
44
- * Updated documentation so YARD would generate nice rdocs
45
- * dayone binary now uses the Commander gem
46
- * Now using a Manifest file rather than globbing in whole directories
47
-
48
- == 0.1.5 / 2012-08-12
49
-
50
- * [FIXED] Ouch, horrid horrid gemspec and readme. Let's make them prettier.
51
-
52
- == 0.1.4 / 2012-08-12
53
-
54
- * Added a couple more tests for better coverage
55
-
56
- == 0.1.3 / 2012-08-12
57
-
58
- * Removed the SimpleXML class, now using the Builder gem
59
-
60
- == 0.1.2 / 2012-08-12
61
-
62
- * [FIXED] Actual testing on my own system
63
-
64
- == 0.1.1 / 2012-08-07
65
-
66
- * [FIXED] DayOne constants are now `attr_accessors` - set them yourself if you wish!
67
-
68
- == 0.1.0 / 2012-08-06
69
-
70
- * Added binary
71
- * Support for DayOne locations
72
- * Uploaded to github!
73
-
74
- == 0.0.1 / 2012-08-05
75
-
76
- * Started development
@@ -1,14 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>Creation Date</key>
6
- <date>2012-08-16T08:42:17Z</date>
7
- <key>Entry Text</key>
8
- <string>Yes, this is foo.</string>
9
- <key>Starred</key>
10
- <false/>
11
- <key>UUID</key>
12
- <string>748AD5D252F44149920485B0CEA478E3</string>
13
- </dict>
14
- </plist>
@@ -1,14 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>Creation Date</key>
6
- <date>2012-08-16T08:42:19Z</date>
7
- <key>Entry Text</key>
8
- <string>Hello bar.</string>
9
- <key>Starred</key>
10
- <true/>
11
- <key>UUID</key>
12
- <string>F13723CDFD454481B24312DCD627BFD7</string>
13
- </dict>
14
- </plist>
@@ -1 +0,0 @@
1
- foo
@@ -1 +0,0 @@
1
- auto
@@ -1 +0,0 @@
1
- sample location
@@ -1,12 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>Entry Text</key>
6
- <string>Hello, world!</string>
7
- <key>Starred</key>
8
- <true/>
9
- <key>Creation Date</key>
10
- <date>1997-08-29T02:14:0Z</date>
11
- </dict>
12
- </plist>
Binary file
@@ -1,12 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>Entry Text</key>
6
- <string>æ</string>
7
- <key>Starred</key>
8
- <true/>
9
- <key>Creation Date</key>
10
- <date>1997-08-29T02:14:0Z</date>
11
- </dict>
12
- </plist>
data/spec/dayone_spec.rb DELETED
@@ -1,34 +0,0 @@
1
- require './spec/spec_helper'
2
-
3
- describe DayOne do
4
- describe "#journal_location" do
5
-
6
- before(:each) do
7
- DayOne::journal_location = nil
8
- DayOne::instance_variable_set('@journal_file',nil)
9
- end
10
-
11
- def location str
12
- spec_data("locations", "location-#{str}")
13
- end
14
-
15
- it "should return the value given by the +location+ file" do
16
- DayOne::dayone_folder = location('specified')
17
- DayOne::journal_location.should == 'sample location'
18
- end
19
-
20
- it "should return a default value when +location+ is 'auto'" do
21
- reader = double('ReaderMock')
22
- reader.should_receive(:journal_location).and_return('foo')
23
- DayOne.plist_reader = reader
24
- DayOne::dayone_folder = location('auto')
25
- DayOne::journal_location.should == File.expand_path('foo')
26
- end
27
-
28
- it "should return a default value if +location+ doesn't exist" do
29
- DayOne.plist_reader = {'NSNavLastRootDirectory' => 'foo'}
30
- DayOne::dayone_folder = location('unspecified')
31
- DayOne::journal_location.should == File.expand_path('foo')
32
- end
33
- end
34
- end
@@ -1,69 +0,0 @@
1
- #encoding: UTF-8
2
-
3
- require './spec/spec_helper'
4
-
5
- describe DayOne::EntryImporter do
6
- let(:sample_entry){ DayOne::EntryImporter::from_file spec_data('sample.doentry') }
7
-
8
- describe "#initialize" do
9
- it "should accept a string or file" do
10
- ei = DayOne::EntryImporter.new('foo')
11
- ei.data.should == 'foo'
12
-
13
- file_ei = DayOne::EntryImporter::from_file spec_data('foo.doentry')
14
- file_ei.data.should == 'foo'
15
- end
16
- end
17
-
18
- describe "#[]" do
19
-
20
- def wrap str
21
- <<-end
22
- <plist>
23
- <dict>
24
- <key>element</key>
25
- <string>#{str}</string>
26
- </dict>
27
- </plist>
28
- end
29
- end
30
-
31
- it "should parse strings" do
32
- sample_entry['Entry Text'].should == 'Hello, world!'
33
- end
34
-
35
- it "should parse booleans" do
36
- sample_entry['Starred'].should == true
37
- end
38
-
39
- it "should parse dates" do
40
- sample_entry['Creation Date'].should == Time.new(1997, 8, 29, 2, 14, 0)
41
- end
42
-
43
- it "should accept ampersands" do
44
- importer = DayOne::EntryImporter.new(wrap('&amp;'))
45
- importer['element'].should == '&'
46
- end
47
-
48
- it "should accept UTF-8" do
49
- importer = DayOne::EntryImporter.new(wrap('æ'))
50
- importer['element'].should == 'æ'
51
- end
52
-
53
- it "should accept UTF-8 from file" do
54
- importer = DayOne::EntryImporter.from_file spec_data('utf.doentry')
55
- importer['Entry Text'].should == 'æ'
56
- end
57
-
58
- end
59
-
60
- describe "#to_entry" do
61
- it "should make a valid entry" do
62
- entry = sample_entry.to_entry
63
- entry.entry_text.should == 'Hello, world!'
64
- entry.starred.should be_true
65
- entry.creation_date.year.should == 1997
66
- entry.should be_saved
67
- end
68
- end
69
- end
data/spec/entry_spec.rb DELETED
@@ -1,57 +0,0 @@
1
- require './spec/spec_helper'
2
- require 'fileutils'
3
-
4
- describe DayOne::Entry do
5
- before :each do
6
- setup_working
7
- end
8
-
9
- after :each do
10
- clean_working
11
- end
12
-
13
- describe "#to_xml" do
14
-
15
- let(:sample_entry){ DayOne::Entry.new('foo', starred:true) }
16
-
17
- it "should give a default entry" do
18
- e = subject.to_xml
19
- e.should match %r|<key>Entry Text</key>\s*<string></string>|
20
- e.should match %r|<key>Starred</key>\s*<false/>|
21
- end
22
-
23
- it "should set from initialize" do
24
- sample_entry.starred.should be_true
25
- sample_entry.entry_text.should == 'foo'
26
- sample_entry.should_not be_saved
27
- end
28
-
29
- it "should act properly when starred" do
30
- sample_entry.to_xml.should match %r|<key>Starred</key>\s*<true/>|
31
- end
32
- end
33
-
34
- describe "#create!" do
35
- it "should correctly create a .doentry file" do
36
-
37
-
38
- e = subject
39
- e.entry_text = "Hello, world!"
40
- e.create!
41
-
42
- file_location = Dir[spec_data('working', 'entries', '*.doentry')][0]
43
- file_location.should_not be_nil
44
-
45
- contents = File.read(file_location)
46
- contents.should == e.to_xml
47
- end
48
- end
49
-
50
- describe "#xml_valid?" do
51
- it "should handle weird XML characters" do
52
- e = subject
53
- e.entry_text = "Hello <&> Goodbye"
54
- e.should be_xml_valid
55
- end
56
- end
57
- end
@@ -1,18 +0,0 @@
1
- require './spec/spec_helper'
2
-
3
- describe DayOne::PlistReader do
4
- describe "#initialize" do
5
- it "should default to the normal preference file" do
6
- File.should exist(subject.path)
7
- end
8
- end
9
-
10
- describe "#body" do
11
- it "should correctly parse binary plists" do
12
- reader = DayOne::PlistReader.new(File.join(File.dirname(__FILE__),'data', 'sample.plist'))
13
-
14
- reader.key('foo').should == 'bar'
15
- expect(reader.key('bing')).to be_nil
16
- end
17
- end
18
- end
data/spec/search_spec.rb DELETED
@@ -1,35 +0,0 @@
1
- describe DayOne::Search do
2
- describe "#initialize" do
3
- it "should create a Search object, uninitialized" do
4
- subject.entry_text.should == ''
5
- subject.starred.should be_nil
6
- end
7
- end
8
-
9
- describe "#results" do
10
- before :all do
11
- DayOne::journal_location = spec_data
12
- end
13
-
14
- it "should find all posts when no search criteria are applied" do
15
- subject.results.size.should == 2
16
- end
17
-
18
- it "should find posts when searching by string" do
19
- search = DayOne::Search.new entry_text: 'foo'
20
- search.results.size.should == 1
21
- search[0].entry_text.should == "Yes, this is foo."
22
- end
23
-
24
- it "should find posts when searching by starred" do
25
- search = DayOne::Search.new starred:true
26
- search.results.size.should == 1
27
- search[0].entry_text.should == "Hello bar."
28
- end
29
-
30
- it "should find posts when searching by string and starred" do
31
- search = DayOne::Search.new entry_text: 'foo', starred:true
32
- search.results.should be_empty
33
- end
34
- end
35
- end
data/spec/spec_helper.rb DELETED
@@ -1,15 +0,0 @@
1
- require './lib/rb-dayone'
2
-
3
- def spec_data *path
4
- File.join(File.dirname(__FILE__), 'data', *path)
5
- end
6
-
7
- def setup_working
8
- FileUtils::mkdir_p spec_data('working/entries')
9
- FileUtils::mkdir_p spec_data('working/photos')
10
- DayOne::journal_location = spec_data('working')
11
- end
12
-
13
- def clean_working
14
- FileUtils::rm_rf spec_data('working')
15
- end