wloger 0.0.1 → 0.0.3

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: 5ad03d67e07ac8ce1c6328f55d7abaf6281b4b9c
4
- data.tar.gz: 1338e085a151826c7a6827c2f048486c406b7a73
3
+ metadata.gz: a9e55339d9a3945f46dd637ac5c513f602f4a637
4
+ data.tar.gz: ef2873cf6fb6e8f3892f4dde4a5dcb95bf9ac612
5
5
  SHA512:
6
- metadata.gz: 3a7b113e58af1da48667881b6435a6e3c5191f8650376702c6903c19cf4720892e37bfb1aca42de3745a3779f8ce04e50602ff2a607655b048fbbfdff54857c1
7
- data.tar.gz: c22a9b7f1d1beeeb11c2dd8c5d0257e3537a01d95fd3b30a7dea99f0a733179a8735f4dd20110d18eb86622ba95e4607e95d58c491d2d920c11a010bf8ba0f80
6
+ metadata.gz: 72b5cf7ca409766925c83a2ac8648bca896b8686ac1a853ff283467a2ba4f6366fd10980836a0578c652d0c94786fef4c4174ba4e19e67847aff8b43cbf69531
7
+ data.tar.gz: 17c643dd68ae5c6426466c41a06f4de41be1112cdf287699cf02132dcd741f654c59be9abac9fdbbb37836fc031f9a96a43e7fd87635c1d4d4b3cd11f408bede
data/README.md CHANGED
@@ -13,8 +13,16 @@ Install it yourself as:
13
13
  If you log today, execute following command.
14
14
 
15
15
  $ wloger
16
+ # Wloger will execute "vim ~/Documents/work_log/{THIS_YEAR}_{THIS_MONTH}/{TODAY}/log.md"
16
17
 
17
- Wloger make log directory to store, and execute editor!!
18
+ Wloger make today log directory, and execute editor!!
19
+
20
+ If you want to view past log, execute following command.
21
+
22
+ $ wloger {DATE}
23
+ # Wloger will execute "vim ~/Documents/work_log/{THE_YEAR}_{THE_MONTH}/{THE_DAY}/log.md"
24
+
25
+ Wloger accepts YY/MM/DD, MM/DD, or DD for DATE argument format.
18
26
 
19
27
  ## TODO
20
28
 
data/bin/wloger CHANGED
@@ -8,4 +8,4 @@ rescue LoadError
8
8
  require 'wloger'
9
9
  end
10
10
 
11
- Wloger::Command.execute(*ARGV)
11
+ Wloger::Command.start
@@ -1,20 +1,35 @@
1
1
  require 'date'
2
+ require 'thor'
2
3
 
3
4
  module Wloger
4
5
  # Command line parse class
5
- class Command
6
- class << self
7
- def execute(*args)
8
- # argument parse
9
- date = Date.parse(args.first) unless args.first.nil?
10
- date ||= Date.today
6
+ class Command < Thor
7
+ default_command :today_log
11
8
 
12
- @directory = Wloger::DirectoryController.new(date)
13
- @editor = Wloger::Editor.new
9
+ desc 'today_log', 'Edit a today work-log file.'
10
+ def today_log
11
+ @directory = Wloger::Directory.new(Date.today)
12
+ @editor = Wloger::Editor.new(@directory.path)
14
13
 
15
- @directory.make_today_directory
16
- @editor.edit(@directory.log_dir, @directory.log_name)
17
- end
14
+ @directory.make_today
15
+ @directory.remove_today unless @editor.edit
16
+ end
17
+
18
+ desc '[DATE]', 'Open the work-log file assigned DATE.'
19
+ def method_missing(method)
20
+ date = Date.parse(method.to_s.rjust(2, '0'))
21
+ past_log(date)
22
+ rescue ArgumentError
23
+ help
24
+ end
25
+
26
+ private
27
+
28
+ def past_log(date)
29
+ @directory = Wloger::Directory.new(date)
30
+ @editor = Wloger::Editor.new(@directory.path)
31
+
32
+ Wloger::Error.no_log_file unless @editor.view
18
33
  end
19
34
  end
20
35
  end
@@ -0,0 +1,29 @@
1
+ require 'fileutils'
2
+
3
+ module Wloger
4
+ # control work-log directories and current directory class
5
+ class Directory
6
+ LOG_DIR_NAME = 'work_log'.freeze
7
+ PARENT_LOG_DIR = 'Documents'.freeze
8
+
9
+ attr_accessor :path
10
+
11
+ def initialize(date)
12
+ @path = File.expand_path("~/#{PARENT_LOG_DIR}/#{LOG_DIR_NAME}/#{date.strftime('%Y_%b/%d')}")
13
+ end
14
+
15
+ # recursively make today work-log directory
16
+ def make_today
17
+ FileUtils.mkdir_p(@path) unless Dir.exist?(@path)
18
+ end
19
+
20
+ # recursively remove today directory if empty
21
+ def remove_today
22
+ while Dir.entries(@path).join == '...'
23
+ break if File.basename(@path) == LOG_DIR_NAME
24
+ Dir.rmdir(@path)
25
+ @path = File.dirname(@path)
26
+ end
27
+ end
28
+ end
29
+ end
data/lib/wloger/editor.rb CHANGED
@@ -2,10 +2,27 @@ module Wloger
2
2
  # using editor for work-log class
3
3
  class Editor
4
4
  EDITOR_NAME = 'vim'.freeze
5
+ LOG_NAME = 'log'.freeze
5
6
  EXTENTION = 'md'.freeze
6
7
 
7
- def edit(log_dir, log_name)
8
- system("#{EDITOR_NAME} #{log_dir}/#{log_name}.#{EXTENTION}")
8
+ def initialize(log_path)
9
+ @file_path = "#{log_path}/#{LOG_NAME}.#{EXTENTION}"
10
+ end
11
+
12
+ def edit
13
+ system("#{EDITOR_NAME} #{@file_path}")
14
+ log_exist?
15
+ end
16
+
17
+ def view
18
+ return unless log_exist?
19
+ system("#{EDITOR_NAME} #{@file_path}")
20
+ end
21
+
22
+ private
23
+
24
+ def log_exist?
25
+ File.exist?(@file_path)
9
26
  end
10
27
  end
11
28
  end
@@ -0,0 +1,11 @@
1
+ module Wloger
2
+ # show error class
3
+ class Error
4
+ class << self
5
+ def no_log_file
6
+ warn "ERROR: Don't exist work-log file assigned date."
7
+ exit
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,3 +1,3 @@
1
1
  module Wloger
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/wloger.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'wloger/command'
2
- require 'wloger/directory_controller'
2
+ require 'wloger/directory'
3
3
  require 'wloger/editor'
4
+ require 'wloger/error'
4
5
  require 'wloger/version'
5
6
 
6
7
  module Wloger
data/wloger.gemspec CHANGED
@@ -18,6 +18,8 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(/^(test|spec|features)\//)
19
19
  spec.require_paths = ['lib']
20
20
 
21
+ spec.add_dependency 'thor'
22
+
21
23
  spec.add_development_dependency 'bundler', '~> 1.6'
22
24
  spec.add_development_dependency 'rake'
23
25
  spec.add_development_dependency 'pry'
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wloger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - huyu398
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-20 00:00:00.000000000 Z
11
+ date: 2014-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -69,8 +83,9 @@ files:
69
83
  - bin/wloger
70
84
  - lib/wloger.rb
71
85
  - lib/wloger/command.rb
72
- - lib/wloger/directory_controller.rb
86
+ - lib/wloger/directory.rb
73
87
  - lib/wloger/editor.rb
88
+ - lib/wloger/error.rb
74
89
  - lib/wloger/version.rb
75
90
  - wloger.gemspec
76
91
  homepage: https://github.com/huyu398/wloger
@@ -1,22 +0,0 @@
1
- require 'fileutils'
2
-
3
- module Wloger
4
- # control work-log directories and current directory class
5
- class DirectoryController
6
- LOG_DIR_NAME = 'work_log'.freeze
7
- PARENT_LOG_DIR = 'Documents'.freeze
8
-
9
- attr_accessor :log_dir
10
- attr_accessor :log_name
11
-
12
- def initialize(date)
13
- @log_dir = File.expand_path("~/#{PARENT_LOG_DIR}/#{LOG_DIR_NAME}/#{date.strftime('%Y_%b/%d')}")
14
- @log_name = date.strftime('%d')
15
- end
16
-
17
- # recursively make work-log directory of today
18
- def make_today_directory
19
- FileUtils.mkdir_p(@log_dir) unless Dir.exist?(@log_dir)
20
- end
21
- end
22
- end