doing 0.1.7 → 0.1.9

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: bb5416a055ea3a013f84f1e53012064b84e05ccc
4
- data.tar.gz: 32c01753a8dad864ffc540d1695be3055bdcf665
3
+ metadata.gz: b8e66a72fd2de31862fdc6423f9771b4a41ac012
4
+ data.tar.gz: 1bc3c5ab4be017092e802dba802c1a7c1d1721db
5
5
  SHA512:
6
- metadata.gz: 3cfcdbcbd29bbd129e8aa9928156124f76fcf6f560fd05cdb039c16c49bc47723d5d6d7007e6f6dc469f5390fc10d6f3b26995885fe52cc6a53a30c8eb920d82
7
- data.tar.gz: e03184ca58e766fdc00f58fd247388f80d0c3e0ae7af6c4986bc0888b2ddae37930ce74ae8745e75e2404cfb3ca304b83997f03abeb58e85c85c931bdf6e7794
6
+ metadata.gz: e1b2d0a13c32cb31f971f85afe278138bd7ceffae608f801b3640d23a397474efca6f812830d4089b8220f149f2dc688ef80b680626caac6b98529265f68fe17
7
+ data.tar.gz: 4536f5c497ef9c2510e81faa08b83786f140d85695ceb757e5233988feaa0ea26fb7f72ff83da9b6d042b6bc2df1b68944b381b1e45708c3a6e0294f0b633301
data/README.md CHANGED
@@ -16,7 +16,11 @@ _Side note:_ I actually use the library behind this utility as part of another s
16
16
 
17
17
  ## Installation
18
18
 
19
- [sudo] gem install doing
19
+ $ [sudo] gem install doing
20
+
21
+ Only use `sudo` if your environment requires it. If you're using the system Ruby on a Mac, for example, it will likely be necessary. If `gem install doing` fails, then run `sudo gem install doing` and provide your administrator password.
22
+
23
+ See the [support](#support) section below for troubleshooting details.
20
24
 
21
25
  ## The "doing" file
22
26
 
@@ -57,16 +61,32 @@ A basic configuration looks like this:
57
61
 
58
62
  The config file is stored in "~/.doingrc", and is created on the first run.
59
63
 
64
+ ### Doing file location
65
+
60
66
  The one thing you'll probably want to adjust is the file that the notes are stored in. That's the `doing_file` key:
61
67
 
62
68
  doing_file: /Users/username/Dropbox/nvALT2.2/?? What was I doing.md
63
69
 
64
70
  I keep mine in my nvALT folder for quick access and syncing between machines. If desired, you can give it a `.taskpaper` extension to make it more recognizable to other applications. (If you do that in nvALT, make sure to add `taskpaper` as a recognized extension in preferences).
65
71
 
72
+ ### "Current actions" section
73
+
66
74
  You can rename the section that holds your current tasks. By default, this is "Currently," but if you have some other bright idea, feel free:
67
75
 
68
76
  current_section: Currently
69
77
 
78
+ ### Default editors
79
+
80
+ The setting `editor_app` only applies to Mac OS X users. It's the default application that the command `doing open` will open your WWID file in. If this is blank, it will be opened by whatever the system default is, or you can use `-a app_name` or `-b bundle_id` to override.
81
+
82
+ In the case of the `doing now -e` command, your $EDITOR environment variable will be used to complete the entry text and notes. Set it in your .bash_profile or whatever is appropriate for your system:
83
+
84
+ export EDITOR="mate -w"
85
+
86
+ The only requirements are that your editor be launchable from the command line and able to "wait." In the case of Sublime Text and TextMate, just use `-w` like this: `export EDITOR="subl -w"`.
87
+
88
+ ### Templates
89
+
70
90
  The config also contains templates for various command outputs. Include placeholders by placing a % before the keyword. The available tokens are:
71
91
 
72
92
  - `%title`: the "what was I doing" entry line
@@ -169,7 +189,7 @@ You can create your own "views" in the `~/.doingrc` file and view them with `doi
169
189
  You can add additional custom views, just nest them under the "views" key (indented two spaces from the edge). Multiple views would look like this:
170
190
 
171
191
  views:
172
- mine:
192
+ later:
173
193
  section: Later
174
194
  count: 5
175
195
  wrap_width: 60
@@ -186,6 +206,19 @@ The "section" key is the default section to pull entries from. Count and section
186
206
 
187
207
  You can add new sections with `done add_section section_name`. You can also create them on the fly by using the `-s section_name` flag when running `doing now`. For example, `doing now -s Misc just a random side note` would create the "just a random side note" entry in a new section called "Misc."
188
208
 
209
+ Regarding colors, you can use them to create very nice displays if you're outputting to a color terminal. Example:
210
+
211
+ color:
212
+ date_format: '%F %_I:%M%P'
213
+ section: Currently
214
+ count: 10
215
+ wrap_width: 0
216
+ template: '%boldblack%date %boldgreen| %boldwhite%title%default%note'
217
+
218
+ Outputs:
219
+
220
+ ![](http://ckyp.us/XKpj+)
221
+
189
222
  ## Usage:
190
223
 
191
224
  doing [global options] command [command options] [arguments...]
@@ -223,4 +256,38 @@ You can add new sections with `done add_section section_name`. You can also crea
223
256
  archive - Move all but the most recent 5 entries to the Archive section
224
257
  config - Edit the default configuration
225
258
 
259
+ ---
260
+
261
+ ## Troubleshooting
262
+
263
+ ### Errors after "Successfully installed..."
264
+
265
+ If you get errors in the terminal immediately after a message like:
266
+
267
+ Successfully installed doing-x.x.x
268
+ 2 gems installed
269
+
270
+ ...it may just be documentation related. If running `doing` works, you can ignore them. If not, try running the install command again with `--no-document`:
271
+
272
+ $ gem install --no-document doing
273
+
274
+ ### Command not found
275
+
276
+ If running `doing` after a successful install gives you a "command not found" error, then your gem path isn't in your $PATH, meaning the system can't find it. To locate the gem and link it into your path, you can try this:
277
+
278
+ cd $GEM_PATH/bin
279
+ ln -s doing /usr/local/bin/
280
+
281
+ Then try running `doing` and see if it works.
282
+
283
+ ### Encoding errors
284
+
285
+ Ruby is rife with encoding inconsistencies across platforms and versions. Feel free to file issues (see below).
286
+
287
+ ### Support
288
+
289
+ I'm not making any money on `doing`, and I don't plan to spend a lot of time fixing errors on an array of operating systems and platforms I don't even have access to. You'll probably have to solve some things on your own.
290
+
291
+ That said, you can get support from other users (and occasionally me) on GitHub. If you run into a replicatable issue in your environment, please [post an issue](https://github.com/ttscoff/doing/issues) and include your platform, OS version, and the result of `ruby -v`, along with a copy/paste of the error message.
226
292
 
293
+ Please try not to email me directly about GitHub projects.
data/bin/doing CHANGED
@@ -3,6 +3,11 @@ require 'gli'
3
3
  require 'doing'
4
4
  require 'tempfile'
5
5
 
6
+ if RUBY_VERSION.to_f > 1.9
7
+ Encoding.default_external = Encoding::UTF_8
8
+ Encoding.default_internal = Encoding::UTF_8
9
+ end
10
+
6
11
  include GLI::App
7
12
  version Doing::VERSION
8
13
 
@@ -243,19 +248,32 @@ command :view do |c|
243
248
  c.flag [:c,:count], :must_match => /^\d+$/, :type => Integer
244
249
 
245
250
  c.action do |global_options,options,args|
246
- view = wwid.get_view(args[0])
251
+ if args.empty?
252
+ title = wwid.choose_view
253
+ else
254
+ title = args[0]
255
+ end
256
+ view = wwid.get_view(title)
247
257
  if view
248
258
  template = view.has_key?('template') ? view['template'] : nil
249
259
  format = view.has_key?('date_format') ? view['date_format'] : nil
250
260
  count = options[:c] ? options[:c] : view.has_key?('count') ? view['count'] : 10
251
- section = options[:s] ? options[:s] : view.has_key?('section') ? view['section'] : wwid.current_section
252
- puts wwid.list_section({:section => section, :count => count, :template => template, :format => format})
261
+ section = options[:s] ? options[:s].cap_first : view.has_key?('section') ? view['section'] : wwid.current_section
262
+ order = view.has_key?('order') ? view['order'] : "asc"
263
+ puts wwid.list_section({:section => section, :count => count, :template => template, :format => format, :order => order })
253
264
  else
254
- raise "View #{args[0]} not found in config"
265
+ raise "View #{title} not found in config"
255
266
  end
256
267
  end
257
268
  end
258
269
 
270
+ desc 'List available custom views'
271
+ command :views do |c|
272
+ c.action do |global_options,options,args|
273
+ puts wwid.views.join(", ")
274
+ end
275
+ end
276
+
259
277
  desc 'Move all but the most recent 5 entries in a section to Archive'
260
278
  arg_name 'section'
261
279
  default_value wwid.current_section
data/lib/doing/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Doing
2
- VERSION = '0.1.7'
2
+ VERSION = '0.1.9'
3
3
  end
data/lib/doing/wwid.rb CHANGED
@@ -46,7 +46,8 @@ class WWID
46
46
  'template' => '%date | %title%note',
47
47
  'wrap_width' => 0,
48
48
  'section' => 'section_name',
49
- 'count' => 5
49
+ 'count' => 5,
50
+ 'order' => "desc"
50
51
  },
51
52
  'color' => {
52
53
  'date_format' => '%F %_I:%M%P',
@@ -54,6 +55,7 @@ class WWID
54
55
  'wrap_width' => 0,
55
56
  'section' => 'Currently',
56
57
  'count' => 10,
58
+ 'order' => "asc"
57
59
  }
58
60
  }
59
61
 
@@ -82,7 +84,7 @@ class WWID
82
84
  @other_content_bottom = []
83
85
 
84
86
  section = "Uncategorized"
85
- lines = input.split(/\n/)
87
+ lines = input.split(/[\n\r]/)
86
88
  current = 0
87
89
 
88
90
  lines.each {|line|
@@ -141,7 +143,7 @@ class WWID
141
143
  f.puts input
142
144
  end
143
145
 
144
- pid = Process.fork { system(ENV['EDITOR'], "#{tmpfile.path}") }
146
+ pid = Process.fork { system("$EDITOR #{tmpfile.path}") }
145
147
 
146
148
  trap("INT") {
147
149
  Process.kill(9, pid) rescue Errno::ESRCH
@@ -153,7 +155,11 @@ class WWID
153
155
  Process.wait(pid)
154
156
 
155
157
  begin
156
- input = IO.read(tmpfile.path)
158
+ if $?.exitstatus == 0
159
+ input = IO.read(tmpfile.path)
160
+ else
161
+ raise "Cancelled"
162
+ end
157
163
  ensure
158
164
  tmpfile.close
159
165
  tmpfile.unlink
@@ -165,8 +171,8 @@ class WWID
165
171
  # This takes a multi-line string and formats it as an entry
166
172
  # returns an array of [title(String), note(Array)]
167
173
  def format_input(input)
168
- return false unless input && input.length > 0
169
- input_lines = input.strip.split(/[\n\r]+/)
174
+ raise "No content in entry" if input.nil? || input.strip.length == 0
175
+ input_lines = input.split(/[\n\r]+/)
170
176
  title = input_lines[0].strip
171
177
  note = input_lines.length > 1 ? input_lines[1..-1] : []
172
178
  note.map! { |line|
@@ -231,6 +237,20 @@ class WWID
231
237
  return sections[num.to_i - 1]
232
238
  end
233
239
 
240
+ def views
241
+ @config.has_key?('views') ? @config['views'].keys : []
242
+ end
243
+
244
+ def choose_view
245
+ views.each_with_index {|view, i|
246
+ puts "% 3d: %s" % [i+1, view]
247
+ }
248
+ print "> "
249
+ num = STDIN.gets
250
+ return false if num =~ /^[a-z ]*$/i
251
+ return views[num.to_i - 1]
252
+ end
253
+
234
254
  def get_view(title)
235
255
  if @config['views'].has_key?(title)
236
256
  return @config['views'][title]
@@ -336,10 +356,11 @@ class WWID
336
356
 
337
357
  def archive(section=nil,count=10)
338
358
  section = choose_section if section.nil? || section =~ /choose/i
359
+ section = section.cap_first
339
360
  if sections.include?(section)
340
361
  items = @content[section]['items']
341
- return if items.length < 10
342
- @content[section]['items'] = items[0..5]
362
+ return if items.length < count
363
+ @content[section]['items'] = items[0..count-1]
343
364
  add_section('Archive') unless sections.include?('Archive')
344
365
  @content['Archive']['items'] += items[count..-1]
345
366
  write(@doing_file)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: doing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Terpstra
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-17 00:00:00.000000000 Z
11
+ date: 2014-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -87,7 +87,7 @@ files:
87
87
  - lib/doing.rb
88
88
  - lib/doing/version.rb
89
89
  - lib/doing/wwid.rb
90
- homepage: http://brettterpstra.com
90
+ homepage: http://brettterpstra.com/project/doing/
91
91
  licenses:
92
92
  - MIT
93
93
  metadata: {}