rtasklib 0.1.2.pre.alpha → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
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