rtasklib 0.1.2.pre.alpha → 0.1.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: 6ddff6869a1475069decc94f5998be42aa6729b5
4
- data.tar.gz: 80905fa55abea1eb3d07fdb0177f8e462804a39a
3
+ metadata.gz: 6594a20f1c965ccf953918bf9fb7eba89832dc70
4
+ data.tar.gz: 6c889440f54c76d7eac9f46e62ad1d7300e44399
5
5
  SHA512:
6
- metadata.gz: fad524b012a515c047e810c2bf86de2d1a2dcc98d1d4adf8778af4419175a6bf72e20da630f61c9fd4f5280c5dfa67e6bde8c0fbdb85ba7e295d2281fe88381d
7
- data.tar.gz: 8a477502dc39c6b0cb214b894b1663fefbc58a30131a14d0d9d27eef4cbeb761d8202615de5fe960f64fd35ee2536908fdfc756c4b49e195a31af327cb31012c
6
+ metadata.gz: 23c9ecccf416dcf6e94835258096ec96dc5257d9ee1109a31014c11100bfd329b11b02ca42a59d2c72c095b6f360b21ddbdc5db1726cdf0c21dc61a6fb127b5b
7
+ data.tar.gz: b9962b934cca761f7a8e3c7ad623d76238a1b10722e0e1eb876c75d06640cf5b326e9339f31da34cfe73c12669f7b322d7e1f2652eef35afaf0c1782380aa670
data/Rakefile CHANGED
@@ -7,3 +7,12 @@ RSpec::Core::RakeTask.new :spec do |task|
7
7
  end
8
8
 
9
9
  task default: :spec
10
+
11
+ desc "Update and publish docs to gh-pages"
12
+ task :docs do |task|
13
+ `yard docs`
14
+ `ghp-import -p doc`
15
+ end
16
+
17
+ task :build_rpm do
18
+ end
@@ -6,6 +6,10 @@ module Rtasklib
6
6
  module Controller
7
7
  extend self
8
8
 
9
+ # Retrieves the current task list from the TW database
10
+ #
11
+ # @return [Array<Models::TaskModel>]
12
+ # @api public
9
13
  def all
10
14
  all = []
11
15
  Execute.task_popen3(*@override_a, "export") do |i, o, e, t|
@@ -16,19 +20,73 @@ module Rtasklib
16
20
  all
17
21
  end
18
22
 
19
- def update_config attr, val
23
+ def filter ids: nil, tags: nil, query: nil
24
+ end
25
+
26
+ def add!
27
+ end
28
+
29
+ # def modify! attr:, val:, ids: nil, tags: nil, query: nil
30
+ # end
31
+
32
+ def undo!
33
+ end
34
+
35
+ def update_config! attr, val
20
36
  Execute.task_popen3(*override_a, "config #{attr} #{val}") do |i, o, e, t|
21
37
  return t.value
22
38
  end
23
39
  end
24
40
 
41
+ # Retrieves an array of hashes with info about the udas currently available
25
42
  def get_udas
43
+ taskrc.config.attributes
44
+ .select { |attr, val| uda_attr? attr }
45
+ .sort
46
+ .chunk { |attr, val| arbitrary_attr attr }
47
+ .map do |attr, arr|
48
+ uda = arr.map do |pair|
49
+ key = deep_attr(pair[0])
50
+ val = pair[1]
51
+ [key, val]
52
+ end
53
+ {attr.to_sym => Hash[uda]}
54
+ end
55
+ end
56
+
57
+ # Is a given attribute dealing with udas?
58
+ def uda_attr? attr
59
+ attr.to_s.start_with? "uda"
60
+ end
61
+ private :uda_attr?
62
+
63
+ # Returns part of attribute at a given depth
64
+ def arbitrary_attr attr, depth: 1
65
+ attr.to_s.split("_")[depth]
66
+ end
67
+
68
+ # Returns all attribute string after given depth
69
+ def deep_attr attr, depth: 2
70
+ attr.to_s.split("_")[depth..-1].join("_")
71
+ end
72
+ private :deep_attr
73
+
74
+
75
+ # Retrieve an array of the uda names
76
+ #
77
+ # @return [Array<String>]
78
+ # @api public
79
+ def get_uda_names
26
80
  Execute.task_popen3(*@override_a, "_udas") do |i, o, e, t|
27
81
  return o.read.each_line.map { |l| l.chomp }
28
82
  end
29
83
  end
30
84
 
31
85
  # Checks if a given uda exists in the current task database
86
+ #
87
+ # @param uda_name [String] the uda name to check for
88
+ # @return [Boolean] whether it matches or not
89
+ # @api public
32
90
  def check_uda uda_name
33
91
  if get_udas.any? { |uda| uda == uda_name }
34
92
  true
@@ -37,9 +95,16 @@ module Rtasklib
37
95
  end
38
96
  end
39
97
 
40
- def create_uda name, label: nil, values: nil, default: nil, urgency: nil
98
+ def create_uda name, type: "string", label: nil, values: nil,
99
+ default: nil, urgency: nil
41
100
  label = name if label.nil?
42
101
  p name, label, values, default, urgency
102
+
103
+ update_config "uda.#{name}.type", type
104
+ update_config "uda.#{name}.label", label
105
+ update_config "uda.#{name}.values", values unless values.nil?
106
+ update_config "uda.#{name}.default", default unless default.nil?
107
+ update_config "uda.#{name}.urgency", urgency unless urgency.nil?
43
108
  end
44
109
 
45
110
  def get_rc
@@ -58,10 +123,14 @@ module Rtasklib
58
123
  version
59
124
  end
60
125
 
61
- # Convert "1.6.2 (adf342jsd)" to Gem::Version object
126
+ # Converts a string of format "1.6.2 (adf342jsd)" to Gem::Version object
127
+ #
128
+ #
62
129
  def to_gem_version raw
63
130
  std_ver = raw.chomp.gsub(' ','.').delete('(').delete(')')
64
131
  Gem::Version.new std_ver
65
132
  end
133
+ private :to_gem_version
134
+
66
135
  end
67
136
  end
@@ -30,7 +30,7 @@ module Rtasklib::Models
30
30
  class TaskModel
31
31
  include Virtus.model
32
32
  # perhaps use Veto
33
- include ActiveModel::Validations
33
+ # include ActiveModel::Validations
34
34
 
35
35
  # Default attributes from TW
36
36
  # Should match: http://taskwarrior.org/docs/design/task.html
@@ -40,12 +40,12 @@ module Rtasklib::Models
40
40
  # But on creation these should be set by `task`
41
41
  attribute :status, String
42
42
  attribute :uuid, String
43
- attribute :entry, Date
43
+ attribute :entry, DateTime
44
44
 
45
45
  # Optional for every task
46
- attribute :start, Date
47
- attribute :until, Date
48
- attribute :scheduled, Date
46
+ attribute :start, DateTime
47
+ attribute :until, DateTime
48
+ attribute :scheduled, DateTime
49
49
  attribute :annotation, Array[String]
50
50
  attribute :tags, Array[String]
51
51
  attribute :project, String
@@ -55,24 +55,24 @@ module Rtasklib::Models
55
55
  attribute :priority, String
56
56
 
57
57
  # Required only for tasks that are Deleted or Completed
58
- attribute :end, Date
58
+ attribute :end, DateTime
59
59
 
60
60
  # Required only for tasks that are Waiting
61
- attribute :wait, Date
61
+ attribute :wait, DateTime
62
62
 
63
63
  # Required only for tasks that are Recurring or have Recurring Parent
64
- attribute :recur, Date
64
+ attribute :recur, DateTime
65
65
 
66
66
  # Optional except for tasks with Recurring Parents
67
- attribute :due, Date
67
+ attribute :due, DateTime
68
68
 
69
69
  # Required only for tasks that have Recurring Child
70
- attribute :parent, UUID
70
+ attribute :parent, String
71
71
 
72
72
  # Internal attributes should be read-only
73
73
  attribute :mask, String
74
74
  attribute :imask, String
75
- attribute :modified, Date
75
+ attribute :modified, DateTime
76
76
 
77
77
  # TODO: handle arbitrary UDA's
78
78
 
@@ -1,3 +1,3 @@
1
1
  module Rtasklib
2
- VERSION = "0.1.2-alpha"
2
+ VERSION = "0.1.4"
3
3
  end
data/lib/rtasklib.rb CHANGED
@@ -2,7 +2,6 @@ require_relative "rtasklib/version"
2
2
  require_relative "rtasklib/models"
3
3
  require_relative "rtasklib/execute"
4
4
  require_relative "rtasklib/controller"
5
- require_relative "rtasklib/serializer"
6
5
  require_relative "rtasklib/taskrc"
7
6
 
8
7
  require "open3"
@@ -11,7 +10,7 @@ require "pathname"
11
10
  module Rtasklib
12
11
 
13
12
  class TaskWarrior
14
- attr_reader :version, :data_location, :taskrc, :create_new,
13
+ attr_reader :version, :data_location, :taskrc,
15
14
  :override, :override_a, :override_str
16
15
 
17
16
  include Controller
@@ -31,7 +30,7 @@ module Rtasklib
31
30
  override_h = DEFAULTS.merge({data_location: data}).merge(opts)
32
31
  @override = Taskrc.new(override_h, :hash)
33
32
  @override_a = override.model_to_rc
34
- @config = get_rc
33
+ @taskrc = get_rc
35
34
 
36
35
  # Check TaskWarrior version, and throw warning if unavailable
37
36
  begin
@@ -48,4 +47,7 @@ module Rtasklib
48
47
  version
49
48
  end
50
49
  end
50
+
51
+ # Add a convenience alias
52
+ TW = TaskWarrior
51
53
  end
data/rtasklib.gemspec CHANGED
@@ -18,6 +18,8 @@ Gem::Specification.new do |spec|
18
18
  spec.bindir = "exe"
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
+ spec.required_ruby_version = '>= 2.1'
22
+ spec.requirements << 'taskwarrior, >=2.4.0'
21
23
 
22
24
  spec.add_dependency "virtus"
23
25
  spec.add_dependency "activesupport"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rtasklib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2.pre.alpha
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Will Paul
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-05-11 00:00:00.000000000 Z
11
+ date: 2015-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: virtus
@@ -249,9 +249,7 @@ files:
249
249
  - lib/rtasklib/serializer.rb
250
250
  - lib/rtasklib/taskrc.rb
251
251
  - lib/rtasklib/version.rb
252
- - rtasklib-0.1.0.gem
253
252
  - rtasklib.gemspec
254
- - rubygem-rtasklib_0.1.0_all.deb
255
253
  - spec/controller_spec.rb
256
254
  - spec/data/.task/backlog.data
257
255
  - spec/data/.task/completed.data
@@ -276,15 +274,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
276
274
  requirements:
277
275
  - - ">="
278
276
  - !ruby/object:Gem::Version
279
- version: '0'
277
+ version: '2.1'
280
278
  required_rubygems_version: !ruby/object:Gem::Requirement
281
279
  requirements:
282
- - - ">"
280
+ - - ">="
283
281
  - !ruby/object:Gem::Version
284
- version: 1.3.1
285
- requirements: []
282
+ version: '0'
283
+ requirements:
284
+ - taskwarrior, >=2.4.0
286
285
  rubyforge_project:
287
- rubygems_version: 2.2.2
286
+ rubygems_version: 2.4.5
288
287
  signing_key:
289
288
  specification_version: 4
290
289
  summary: A Ruby wrapper around the TaskWarrior CLI
data/rtasklib-0.1.0.gem DELETED
Binary file
Binary file