doing 1.0.26 → 1.0.27

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
  SHA256:
3
- metadata.gz: 3631ac831d0c67d8082a02f66bf733e49bfc759091f235b87464af7ddb163eec
4
- data.tar.gz: 9366ddb434383df32e204d409e588915d5e959f5b9c77f6411fb6781f24c6c4a
3
+ metadata.gz: a6b820922f541c1841b9e3cd6613fcdf20e39f726c455a289b035cd46adad4be
4
+ data.tar.gz: 03b371b4badb689f42c2132d252b69a592456efd00c26c94c78cde8ebd0091c9
5
5
  SHA512:
6
- metadata.gz: 716adc40f91a6b4a637e66fc310bbb70904112a67bd1a28a744bde5f19dbeb21c5040d66e3662fc9a33d5122307fc768a5859858786077ff48b5b5f9a649d3e1
7
- data.tar.gz: 42f564a64a07e81b29879f8364df85ae75644875cd752b2274f1481c24791baa97be354de39f1a1b521f82b2e652d6fe11294329d32ad6d314ad8e079c9c8db7
6
+ metadata.gz: a37aa02c0d7b72c9a3ee7fc920b14a90ac930b7b52e0b18aa5669850a5b84e9f99b6ceeda5e0e058d6a4de65d10736a3f4ea803869629617781daeb581b95460
7
+ data.tar.gz: 54ddce825edf7a8aa32b898c86ae698b29e3dd71b443d2154816b3c40714be8a7d0af35f8010640bab76dd135380779cf0598fcacab8deedab9841878e66b3c0
data/README.md CHANGED
@@ -390,7 +390,7 @@ Note that you can include a tag with synonyms in the whitelist as well to tag it
390
390
 
391
391
  #### Adding entries:
392
392
 
393
- now - Add an entry
393
+ now, did - Add an entry
394
394
  later - Add an item to the Later section
395
395
  done - Add a completed item with @done(date). No argument finishes last entry.
396
396
  meanwhile - Finish any @meanwhile tasks and optionally create a new one
data/bin/doing CHANGED
@@ -3,6 +3,7 @@ $LOAD_PATH.unshift File.join(__dir__, '..', 'lib')
3
3
  require 'gli'
4
4
  require 'doing'
5
5
  require 'tempfile'
6
+ require 'pp'
6
7
 
7
8
  def class_exists?(class_name)
8
9
  klass = Module.const_get(class_name)
@@ -42,6 +43,10 @@ desc 'Send results report to STDOUT instead of STDERR'
42
43
  default_value false
43
44
  switch [:stdout], :default_value => false, :negatable => false
44
45
 
46
+ desc 'Use a specific configuration file'
47
+ default_value false
48
+ flag [:config_file]
49
+
45
50
  # desc 'Wrap notes at X chars (0 for no wrap)'
46
51
  # flag [:w,:wrapwidth], :must_match => /^\d+$/, :type => Integer
47
52
 
@@ -1077,22 +1082,22 @@ command :config do |c|
1077
1082
  c.action do |global_options,options,args|
1078
1083
  if `uname` =~ /Darwins/
1079
1084
  if options[:x]
1080
- %x{open -a "#{wwid.config['editor_app']}" "#{File.join(Dir.home, wwid.default_config_file)}"}
1085
+ %x{open -a "#{wwid.config['editor_app']}" "#{wwid.config_file}"}
1081
1086
  elsif options[:a] || options[:b]
1082
1087
  if options[:a]
1083
- %x{open -a "#{options[:a]}" "#{File.join(Dir.home, wwid.default_config_file)}"}
1088
+ %x{open -a "#{options[:a]}" "#{wwid.config_file}"}
1084
1089
  elsif options[:b]
1085
- %x{open -b #{options[:b]} "#{File.join(Dir.home, wwid.default_config_file)}"}
1090
+ %x{open -b #{options[:b]} "#{wwid.config_file}"}
1086
1091
  end
1087
1092
  else
1088
1093
  raise "No EDITOR variable defined in environment" if options[:e].nil? && ENV['EDITOR'].nil?
1089
1094
  editor = options[:e].nil? ? ENV['EDITOR'] : options[:e]
1090
- system %Q{#{editor} "#{File.join(Dir.home, wwid.default_config_file)}"}
1095
+ system %Q{#{editor} "#{wwid.config_file}"}
1091
1096
  end
1092
1097
  else
1093
1098
  raise "No EDITOR variable defined in environment" if options[:e].nil? && ENV['EDITOR'].nil?
1094
1099
  editor = options[:e].nil? ? ENV['EDITOR'] : options[:e]
1095
- system %Q{#{editor} "#{File.join(Dir.home, wwid.default_config_file)}"}
1100
+ system %Q{#{editor} "#{wwid.config_file}"}
1096
1101
  end
1097
1102
  end
1098
1103
  end
@@ -1111,12 +1116,20 @@ end
1111
1116
 
1112
1117
 
1113
1118
  pre do |global,command,options,args|
1119
+ if global[:config_file]
1120
+ wwid.config_file = global[:config_file]
1121
+ wwid.configure({:ignore_local => true})
1122
+ # wwid.results.push("Override config file #{wwid.config_file}")
1123
+ end
1124
+
1114
1125
  if global[:doing_file]
1115
1126
  wwid.init_doing_file(global[:doing_file])
1116
1127
  else
1117
1128
  wwid.init_doing_file
1118
1129
  end
1130
+
1119
1131
  wwid.config[:include_notes] = false unless global[:notes]
1132
+
1120
1133
  if global[:version]
1121
1134
  $stdout.puts "doing v" + Doing::VERSION
1122
1135
  end
data/lib/doing/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Doing
2
- VERSION = '1.0.26'
2
+ VERSION = '1.0.27'
3
3
  end
data/lib/doing/wwid.rb CHANGED
@@ -1,7 +1,6 @@
1
1
  #!/usr/bin/ruby
2
2
 
3
3
  require 'deep_merge'
4
- require 'pp'
5
4
 
6
5
  ##
7
6
  ## @brief String helpers
@@ -43,7 +42,7 @@ end
43
42
  ## @brief Main "What Was I Doing" methods
44
43
  ##
45
44
  class WWID
46
- attr_accessor :content, :sections, :current_section, :doing_file, :config, :user_home, :default_config_file, :results
45
+ attr_accessor :content, :sections, :current_section, :doing_file, :config, :user_home, :default_config_file, :config_file, :results
47
46
 
48
47
  ##
49
48
  ## @brief Initializes the object.
@@ -53,6 +52,65 @@ class WWID
53
52
  @doingrc_needs_update = false
54
53
  @default_config_file = '.doingrc'
55
54
  @interval_cache = {}
55
+ @results = []
56
+ end
57
+
58
+ ##
59
+ ## @brief Finds a project-specific configuration file
60
+ ##
61
+ ## @return (String) A file path
62
+ ##
63
+ def find_local_config
64
+
65
+ config = {}
66
+ dir = Dir.pwd
67
+
68
+ local_config_files = []
69
+
70
+ while (dir != '/' && (dir =~ /[A-Z]:\//) == nil)
71
+ if File.exists? File.join(dir, @default_config_file)
72
+ local_config_files.push(File.join(dir, @default_config_file))
73
+ end
74
+
75
+ dir = File.dirname(dir)
76
+ end
77
+
78
+ local_config_files
79
+ end
80
+
81
+ ##
82
+ ## @brief Reads a configuration.
83
+ ##
84
+ def read_config(opt={})
85
+ unless @config_file
86
+ if Dir.respond_to?('home')
87
+ @config_file = File.join(Dir.home, @default_config_file)
88
+ else
89
+ @config_file = File.join(File.expand_path("~"), @default_config_file)
90
+ end
91
+ end
92
+
93
+ if opt[:ignore_local]
94
+ additional_configs = []
95
+ else
96
+ additional_configs = find_local_config
97
+ end
98
+
99
+ begin
100
+ @local_config = {}
101
+
102
+ @config = YAML.load_file(@config_file) || {} if File.exists?(@config_file)
103
+ additional_configs.each { |cfg|
104
+ new_config = YAML.load_file(cfg) || {} if cfg
105
+ @local_config = @local_config.deep_merge(new_config)
106
+ }
107
+
108
+ # @config.deep_merge(@local_config)
109
+ rescue
110
+ @config = {}
111
+ @local_config = {}
112
+ # raise "error reading config"
113
+ end
56
114
  end
57
115
 
58
116
  ##
@@ -62,12 +120,17 @@ class WWID
62
120
  ##
63
121
  def configure(opt={})
64
122
  @timers = {}
65
- @config_file == File.join(@user_home, @default_config_file)
123
+ opt[:ignore_local] ||= false
66
124
 
67
- read_config
125
+ unless @config_file
126
+ @config_file = File.join(@user_home, @default_config_file)
127
+ end
128
+
129
+ read_config({:ignore_local => opt[:ignore_local]})
68
130
 
69
131
  user_config = @config.dup
70
- @results = []
132
+
133
+ @config = {} if @config.nil?
71
134
 
72
135
  @config['autotag'] ||= {}
73
136
  @config['autotag']['whitelist'] ||= []
@@ -145,6 +208,7 @@ class WWID
145
208
  @default_template = @config['templates']['default']['template']
146
209
  @default_date_format = @config['templates']['default']['date_format']
147
210
 
211
+
148
212
  end
149
213
 
150
214
  ##
@@ -243,58 +307,6 @@ class WWID
243
307
  end
244
308
  end
245
309
 
246
- ##
247
- ## @brief Finds a project-specific configuration file
248
- ##
249
- ## @return (String) A file path
250
- ##
251
- def find_local_config
252
-
253
- config = {}
254
- dir = Dir.pwd
255
-
256
- local_config_files = []
257
-
258
- while (dir != '/' && (dir =~ /[A-Z]:\//) == nil)
259
- if File.exists? File.join(dir, @default_config_file)
260
- local_config_files.push(File.join(dir, @default_config_file))
261
- end
262
-
263
- dir = File.dirname(dir)
264
- end
265
-
266
- local_config_files
267
- end
268
-
269
- ##
270
- ## @brief Reads a configuration.
271
- ##
272
- def read_config
273
- if Dir.respond_to?('home')
274
- @config_file = File.join(Dir.home, @default_config_file)
275
- else
276
- @config_file = File.join(File.expand_path("~"), @default_config_file)
277
- end
278
- # @doingrc_needs_update = true if File.exists? @config_file
279
- additional_configs = find_local_config
280
-
281
- begin
282
- @local_config = {}
283
-
284
- @config = YAML.load_file(@config_file) || {} if File.exists?(@config_file)
285
- additional_configs.each { |cfg|
286
- new_config = YAML.load_file(cfg) || {} if cfg
287
- @local_config = @local_config.deep_merge(new_config)
288
- }
289
-
290
- # @config.deep_merge(@local_config)
291
- rescue
292
- @config = {}
293
- @local_config = {}
294
- # raise "error reading config"
295
- end
296
- end
297
-
298
310
  ##
299
311
  ## @brief Create a process for an editor and wait for the file handle to return
300
312
  ##
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: doing
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.26
4
+ version: 1.0.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Terpstra