rubyfocus 0.5.5 → 0.5.6
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 +4 -4
- data/HISTORY.md +63 -0
- data/README.md +2 -2
- data/lib/rubyfocus/core_ext.rb +11 -0
- data/lib/rubyfocus/items/item.rb +2 -2
- data/lib/rubyfocus/items/project.rb +1 -1
- data/lib/rubyfocus/items/task.rb +3 -3
- data/version.txt +1 -1
- metadata +4 -5
- data/.gitignore +0 -4
- data/.rspec +0 -1
- data/Manifest +0 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e695cc8f092d4f4fd24f1f65f3aa3bcfe808051
|
4
|
+
data.tar.gz: 72c4ce4e2a8c2faca9d59f1a1e3dde2874bf4de8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 11b5d85f415b2ad27d384e8ab78ff1aebb35983484368d561d6b8cb08398b7491c2b5f9d5041366404a5e97bc6c2673d709f6beb0464cce8b258780187341462
|
7
|
+
data.tar.gz: 49dbdd242c1fc944d5a99b19d8737bd587e5425ef99dc44fc80400ae48ec3a826063e8d1a1f98312a3dfd96b881f509daa91900af4e73b3941712a9863aad3af
|
data/HISTORY.md
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
# History
|
2
|
+
|
3
|
+
## 0.5.6 // 2016-09-01
|
4
|
+
|
5
|
+
* [New] Added `Time.safely_parse`, which will not choke on empty strings or nil values
|
6
|
+
* [Fixed] `conditional_set` will no longer choke on empty string for times
|
7
|
+
|
8
|
+
## 0.5.5 // 2016-05-18
|
9
|
+
|
10
|
+
* [Fixed] If there are no patches, `Fetcher#head`s will return the ID of the base file.
|
11
|
+
* [Fixed] `Fetcher#head` will now return the ID of the most recent patch, not the patch itself.
|
12
|
+
* [New] `Searchable` objects will now respond to `find_all`, which is an alias of `select`.
|
13
|
+
* [Fixed] `RankedItem#contained_within?` will now check against all objects matching a block or hash, rather than just the first one that the document can find.
|
14
|
+
|
15
|
+
## 0.5.4 // 2016-02-08
|
16
|
+
|
17
|
+
* [Fixed] `LocalFetcher` will now try the default App Store location if it can't find anything at the normal location.
|
18
|
+
|
19
|
+
## 0.5.3 // 2016-02-04
|
20
|
+
|
21
|
+
* [Fixed] Re-did the code determining whether a task was blocked. Now tasks are considered blocked if their immediate container is blocked.
|
22
|
+
* [Fixed] Caching some task filters on the `Task` class was causing issues. Removed caching, which shouldn't hit performance much.
|
23
|
+
|
24
|
+
## 0.5.2 // 2016-02-04
|
25
|
+
|
26
|
+
* [Fixed] Whoops! Did I leave HTTParty out of the gem install list? My bad!
|
27
|
+
|
28
|
+
## 0.5.1 // 2016-02-03
|
29
|
+
|
30
|
+
* [Fixed] `Task#next_available_task` should no longer cause errors when a project has no tasks.
|
31
|
+
|
32
|
+
## 0.5.0 // 2016-01-20
|
33
|
+
|
34
|
+
Now work out how close to (or far from) the head of your document you are!
|
35
|
+
|
36
|
+
* [New] `Fetcher#head` returns the most recent patch.
|
37
|
+
* [New] `Fetcher#can_reach_head_from?(id)` will inform you if you can get to the head from a given ID.
|
38
|
+
|
39
|
+
## 0.4.0 // 2016-01-01
|
40
|
+
|
41
|
+
* Happy new year!
|
42
|
+
* [Modified] Container IDRef is now located on RankedItem, rather than having several on each RankedItem subclass.
|
43
|
+
* [New] RankedItems can look at their ancestry much more easily, using RankedItem#ancestry and RankedItem#contained_within?
|
44
|
+
* [New] Documents now forbid elements with duplicate IDs unless Document#allow_duplicate_ids is set to true.
|
45
|
+
* [New] Patchers now treate CREATE nodes on elements whose IDs already exist in the database as UPDATE nodes
|
46
|
+
* [Fixed] Patchers will now interpret missing parameters as "default values" e.g. project update without `status` parameter assumed to be active.
|
47
|
+
|
48
|
+
## 0.3.1 // 2015-12-31
|
49
|
+
|
50
|
+
* [Bugfix] IDRefs will now return `nil` if the relevant ID is not set.
|
51
|
+
|
52
|
+
## 0.3.0 // 2015-10-17
|
53
|
+
|
54
|
+
* [New] Now supports remote syncing with the Omni Sync Server!
|
55
|
+
|
56
|
+
## 0.2.0 // 2015-10-11
|
57
|
+
|
58
|
+
* [Bugfix] Will now turn tasks into projects and projects into tasks if the user has done this in OmniFocus.
|
59
|
+
* [Bugfix] Rubyfocus::Patch now does patch application, rather than delegating to the Fetcher.
|
60
|
+
|
61
|
+
## 0.1.0 // 2015-10-10
|
62
|
+
|
63
|
+
* Hello, world!
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Version: 0.5.
|
1
|
+
# Version: 0.5.6
|
2
2
|
|
3
3
|
Rubyfocus is a one-way (read-only) ruby bridge to OmniFocus. Analyse, store, inspect, or play with your projects and tasks in OmniFocus from the comfort and flexibility of ruby!
|
4
4
|
|
@@ -22,7 +22,7 @@ Now build and install it!
|
|
22
22
|
|
23
23
|
```
|
24
24
|
gem build rubyfocus.gemspec
|
25
|
-
gem install rubyfocus-0.
|
25
|
+
gem install rubyfocus-0.5.6.gem
|
26
26
|
```
|
27
27
|
|
28
28
|
# Usage
|
data/lib/rubyfocus/items/item.rb
CHANGED
@@ -28,8 +28,8 @@ class Rubyfocus::Item
|
|
28
28
|
|
29
29
|
def apply_xml(n)
|
30
30
|
self.id ||= n["id"] # This should not change once set!
|
31
|
-
conditional_set(:added, n.at_xpath("xmlns:added")) { |e| Time.
|
32
|
-
conditional_set(:modified, n.at_xpath("xmlns:modified")) { |e| Time.
|
31
|
+
conditional_set(:added, n.at_xpath("xmlns:added")) { |e| Time.safely_parse(e) }
|
32
|
+
conditional_set(:modified, n.at_xpath("xmlns:modified")) { |e| Time.safely_parse(e) }
|
33
33
|
end
|
34
34
|
alias_method :<<, :apply_xml
|
35
35
|
|
@@ -41,7 +41,7 @@ class Rubyfocus::Project < Rubyfocus::Task
|
|
41
41
|
p = n.at_xpath("xmlns:project")
|
42
42
|
conditional_set(:singleton, p.at_xpath("xmlns:singleton")) { |e| e.inner_html == "true" }
|
43
43
|
conditional_set(:review_interval, p.at_xpath("xmlns:review-interval") ) { |e| Rubyfocus::ReviewPeriod.from_string(e.inner_html) }
|
44
|
-
conditional_set(:last_review, p.at_xpath("xmlns:last-review")) { |e| Time.
|
44
|
+
conditional_set(:last_review, p.at_xpath("xmlns:last-review")) { |e| Time.safely_parse e.inner_html }
|
45
45
|
conditional_set(:status, p.at_xpath("xmlns:status")) { |e| e.inner_html.to_sym }
|
46
46
|
end
|
47
47
|
|
data/lib/rubyfocus/items/task.rb
CHANGED
@@ -31,9 +31,9 @@ class Rubyfocus::Task < Rubyfocus::RankedItem
|
|
31
31
|
conditional_set(:note, n.at_xpath("xmlns:note")) { |e| e.inner_html.strip }
|
32
32
|
conditional_set(:order, n.at_xpath("xmlns:order")) { |e| e.inner_html.to_sym }
|
33
33
|
conditional_set(:flagged, n.at_xpath("xmlns:flagged")) { |e| e.inner_html == "true" }
|
34
|
-
conditional_set(:start, n.at_xpath("xmlns:start")) { |e| Time.
|
35
|
-
conditional_set(:due, n.at_xpath("xmlns:due")) { |e| Time.
|
36
|
-
conditional_set(:completed, n.at_xpath("xmlns:completed")){ |e| Time.
|
34
|
+
conditional_set(:start, n.at_xpath("xmlns:start")) { |e| Time.safely_parse(e.inner_html) }
|
35
|
+
conditional_set(:due, n.at_xpath("xmlns:due")) { |e| Time.safely_parse(e.inner_html) }
|
36
|
+
conditional_set(:completed, n.at_xpath("xmlns:completed")){ |e| Time.safely_parse(e.inner_html) }
|
37
37
|
end
|
38
38
|
|
39
39
|
# Convenience methods
|
data/version.txt
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.6
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubyfocus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan-Yves Ruzicka
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-08-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -78,11 +78,10 @@ extensions: []
|
|
78
78
|
extra_rdoc_files:
|
79
79
|
- README.md
|
80
80
|
files:
|
81
|
-
-
|
82
|
-
- ".rspec"
|
83
|
-
- Manifest
|
81
|
+
- HISTORY.md
|
84
82
|
- README.md
|
85
83
|
- lib/rubyfocus.rb
|
84
|
+
- lib/rubyfocus/core_ext.rb
|
86
85
|
- lib/rubyfocus/document.rb
|
87
86
|
- lib/rubyfocus/errors.rb
|
88
87
|
- lib/rubyfocus/fetchers/fetcher.rb
|
data/.gitignore
DELETED
data/.rspec
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
-c
|
data/Manifest
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
# INCLUDE bin/**/*
|
2
|
-
# INCLUDE lib/**/*
|
3
|
-
# INCLUDE *
|
4
|
-
# EXCLUDE **/.DS_Store
|
5
|
-
# EXCLUDE .*
|
6
|
-
# EXCLUDE Manifest
|
7
|
-
# EXCLUDE stage_ofocus.rb
|
8
|
-
# EXCLUDE spec/files/ofocus_staging
|
9
|
-
|
10
|
-
.gitignore
|
11
|
-
.rspec
|
12
|
-
lib/rubyfocus.rb
|
13
|
-
lib/rubyfocus/document.rb
|
14
|
-
lib/rubyfocus/errors.rb
|
15
|
-
lib/rubyfocus/fetchers/fetcher.rb
|
16
|
-
lib/rubyfocus/fetchers/local_fetcher.rb
|
17
|
-
lib/rubyfocus/fetchers/oss_fetcher.rb
|
18
|
-
lib/rubyfocus/includes/conditional_exec.rb
|
19
|
-
lib/rubyfocus/includes/idref.rb
|
20
|
-
lib/rubyfocus/includes/parser.rb
|
21
|
-
lib/rubyfocus/includes/searchable.rb
|
22
|
-
lib/rubyfocus/items/context.rb
|
23
|
-
lib/rubyfocus/items/folder.rb
|
24
|
-
lib/rubyfocus/items/item.rb
|
25
|
-
lib/rubyfocus/items/named_item.rb
|
26
|
-
lib/rubyfocus/items/project.rb
|
27
|
-
lib/rubyfocus/items/ranked_item.rb
|
28
|
-
lib/rubyfocus/items/setting.rb
|
29
|
-
lib/rubyfocus/items/task.rb
|
30
|
-
lib/rubyfocus/location.rb
|
31
|
-
lib/rubyfocus/patch.rb
|
32
|
-
lib/rubyfocus/review_period.rb
|
33
|
-
lib/rubyfocus/xml_translator.rb
|
34
|
-
Manifest
|
35
|
-
README.md
|
36
|
-
rubyfocus.gemspec
|
37
|
-
version.txt
|