wloger 0.0.3 → 0.0.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: a9e55339d9a3945f46dd637ac5c513f602f4a637
4
- data.tar.gz: ef2873cf6fb6e8f3892f4dde4a5dcb95bf9ac612
3
+ metadata.gz: cc6571a6d7d733aa2a9489941b1f49e025c4128f
4
+ data.tar.gz: f6562c4cf030117b1f5289198e3eaa66d7e8a8cc
5
5
  SHA512:
6
- metadata.gz: 72b5cf7ca409766925c83a2ac8648bca896b8686ac1a853ff283467a2ba4f6366fd10980836a0578c652d0c94786fef4c4174ba4e19e67847aff8b43cbf69531
7
- data.tar.gz: 17c643dd68ae5c6426466c41a06f4de41be1112cdf287699cf02132dcd741f654c59be9abac9fdbbb37836fc031f9a96a43e7fd87635c1d4d4b3cd11f408bede
6
+ metadata.gz: feb4265e6ffbfe804613e6320391d29cb15e0e3fe96268d5da62f40ca6fef885b7b8d9d140f95d1a0407f573394132ac48c4ec090ed4a4fed088aca4f5ffbe64
7
+ data.tar.gz: d53312dad2c9e2e8b8cd87aba89c5312a65fb1cf7a9c1c34c484de044f23cd4e4064389c7e9fff72718ab2010275b4b4d023c99b6efc9b62be54967d3f080b65
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format progress
data/Gemfile CHANGED
@@ -1,4 +1,15 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ gem 'rake', '>= 0.9'
4
+ gem 'rdoc', '>= 3.9'
5
+ gem 'thor', '>= 0.19.1'
6
+
7
+ group :development do
8
+ gem 'guard', '>= 2.6.1'
9
+ gem 'guard-rspec', '>= 4.2.9'
10
+ gem 'pry', '>= 0.9.12.6'
11
+ gem 'rspec', '>= 2.14'
12
+ end
13
+
3
14
  # Specify your gem's dependencies in wloger.gemspec
4
15
  gemspec
data/Guardfile ADDED
@@ -0,0 +1,24 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard :rspec do
5
+ watch(%r{^spec/.+_spec\.rb$})
6
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
7
+ watch('spec/spec_helper.rb') { "spec" }
8
+
9
+ # Rails example
10
+ watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
11
+ watch(%r{^app/(.*)(\.erb|\.haml|\.slim)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
12
+ watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
13
+ watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
14
+ watch('config/routes.rb') { "spec/routing" }
15
+ watch('app/controllers/application_controller.rb') { "spec/controllers" }
16
+
17
+ # Capybara features specs
18
+ watch(%r{^app/views/(.+)/.*\.(erb|haml|slim)$}) { |m| "spec/features/#{m[1]}_spec.rb" }
19
+
20
+ # Turnip features and steps
21
+ watch(%r{^spec/acceptance/(.+)\.feature$})
22
+ watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
23
+ end
24
+
data/README.md CHANGED
@@ -1,7 +1,10 @@
1
1
  # Wloger
2
+ [![Gem Version](https://badge.fury.io/rb/wloger.svg)](http://badge.fury.io/rb/wloger)
2
3
 
3
4
  Wloger help to manage your daily work-logs.
4
5
 
6
+ ![demo](https://raw.github.com/wiki/huyu398/wloger/images/demo.gif)
7
+
5
8
  ## Installation
6
9
 
7
10
  Install it yourself as:
@@ -26,9 +29,12 @@ Wloger accepts YY/MM/DD, MM/DD, or DD for DATE argument format.
26
29
 
27
30
  ## TODO
28
31
 
29
- - [ ] setting to select your editor
30
- - [ ] setting for log directory name
31
- - [ ] able to change stored directory
32
+ - [ ] add function of grep search in log files
33
+ - [ ] add configure to select your editor
34
+ - [ ] add configure to select your log directory
35
+ - [ ] add configure to become shallow directory nest
36
+ - [ ] able to select month directory format from name to number
37
+ - [ ] able to make log file template
32
38
 
33
39
  ## Contributing
34
40
 
@@ -6,30 +6,30 @@ module Wloger
6
6
  class Command < Thor
7
7
  default_command :today_log
8
8
 
9
- desc 'today_log', 'Edit a today work-log file.'
9
+ desc 'today_log', 'Edit a today work-log file'
10
10
  def today_log
11
- @directory = Wloger::Directory.new(Date.today)
12
- @editor = Wloger::Editor.new(@directory.path)
11
+ date = Date.today
12
+ @today_log = Wloger::TodayLogFile.new(date)
13
+ @today_log.edit
13
14
 
14
- @directory.make_today
15
- @directory.remove_today unless @editor.edit
16
15
  end
17
16
 
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
17
+ desc 'version', 'Show the version of Wloger'
18
+ def version
19
+ puts Wloger::VERSION
24
20
  end
21
+ map %w[-v --version] => :version
25
22
 
26
- private
27
-
28
- def past_log(date)
29
- @directory = Wloger::Directory.new(date)
30
- @editor = Wloger::Editor.new(@directory.path)
23
+ desc '[DATE]', 'Open the work-log file assigned DATE'
24
+ def method_missing(method)
25
+ begin
26
+ date = Date.parse(method.to_s.rjust(2, '0'))
27
+ rescue ArgumentError
28
+ return help
29
+ end
31
30
 
32
- Wloger::Error.no_log_file unless @editor.view
31
+ @past_log = Wloger::PastLogFile.new(date)
32
+ @past_log.view
33
33
  end
34
34
  end
35
35
  end
data/lib/wloger/error.rb CHANGED
@@ -2,8 +2,8 @@ module Wloger
2
2
  # show error class
3
3
  class Error
4
4
  class << self
5
- def no_log_file
6
- warn "ERROR: Don't exist work-log file assigned date."
5
+ def no_log_file(date)
6
+ warn "ERROR: Don't exist work-log file assigned date(#{date.to_s})."
7
7
  exit
8
8
  end
9
9
  end
@@ -0,0 +1,16 @@
1
+ module Wloger
2
+ # base object for today and past logs
3
+ class LogFile
4
+ PARENT_DIR_NAME = File.expand_path('~/Documents').freeze
5
+ DIR_NAME = 'work_log'.freeze
6
+ LOG_NAME = 'log'.freeze
7
+ LOG_EXTENTION = 'md'.freeze
8
+ EDITOR_NAME = 'vim'.freeze
9
+
10
+ def initialize(date)
11
+ @date = date
12
+ @log_dir = "#{PARENT_DIR_NAME}/#{DIR_NAME}/#{date.strftime('%Y_%m/%d')}"
13
+ @log_path = "#{@log_dir}/#{LOG_NAME}.#{LOG_EXTENTION}"
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,10 @@
1
+ module Wloger
2
+ # past log file class
3
+ ## In case, this class operate today log file.
4
+ class PastLogFile < LogFile
5
+ def view
6
+ Wloger::Error.no_log_file(@date) unless File.exist?(@log_path)
7
+ system("#{EDITOR_NAME} #{@log_path}")
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,30 @@
1
+ require 'fileutils'
2
+
3
+ module Wloger
4
+ # today log file class
5
+ ## If don't exist today dir, this class make the dir.
6
+ class TodayLogFile < LogFile
7
+ def edit
8
+ make_dir unless File.exist?(@log_dir)
9
+ system("#{EDITOR_NAME} #{@log_path}")
10
+ remove_dir unless File.exist?(@log_path)
11
+ end
12
+
13
+ private
14
+
15
+ # recursively make today work-log directory
16
+ def make_dir
17
+ FileUtils.mkdir_p(@log_dir)
18
+ end
19
+
20
+ # recursively remove today directory if empty
21
+ def remove_dir
22
+ path_tmp = @log_dir
23
+ while Dir.entries(path_tmp).join == '...'
24
+ break if File.basename(path_tmp) == DIR_NAME
25
+ Dir.rmdir(path_tmp)
26
+ path_tmp = File.dirname(path_tmp)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -1,3 +1,3 @@
1
1
  module Wloger
2
- VERSION = "0.0.3"
2
+ VERSION = '0.0.4'
3
3
  end
data/lib/wloger.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'wloger/command'
2
- require 'wloger/directory'
3
- require 'wloger/editor'
2
+ require 'wloger/log_file'
3
+ require 'wloger/today_log_file'
4
+ require 'wloger/past_log_file'
4
5
  require 'wloger/error'
5
6
  require 'wloger/version'
6
7
 
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+ require 'fileutils'
3
+ require 'pry'
4
+
5
+ describe 'Wloger::Directory' do
6
+ YEAR = '3050'
7
+ MONTH = '06'
8
+ DAY = '08'
9
+ DATE = [YEAR, MONTH, DAY].join('/')
10
+
11
+ context "if today is #{DATE}" do
12
+ before :all do
13
+ @logs_saved_dir = File.expand_path("~/#{Wloger::Directory::PARENT_LOG_DIR}/#{Wloger::Directory::LOG_DIR_NAME}")
14
+ date = Date.parse(DATE)
15
+ @directory = Wloger::Directory.new(date)
16
+ end
17
+
18
+ it 'has a default log directory name' do
19
+ expect(Wloger::Directory::LOG_DIR_NAME).not_to eq nil
20
+ end
21
+
22
+ it 'has a default log directory parent' do
23
+ expect(Wloger::Directory::PARENT_LOG_DIR).not_to eq nil
24
+ end
25
+
26
+ context 'when wloger run to edit today work-log' do
27
+ it 'has a file path attribute' do
28
+ expect(@directory.path).not_to eq nil
29
+ end
30
+
31
+ describe '#make_today' do
32
+ it 'maked today log directory' do
33
+ expect(Dir.exist?(@directory.path)).to eq false
34
+ @directory.make_today
35
+ expect(Dir.exist?(@directory.path)).to eq true
36
+ end
37
+ end
38
+
39
+ describe '#remove_today' do
40
+ it 'don\'t exist today log directory' do
41
+ expect(Dir.exist?(@directory.path)).to eq true
42
+ @directory.remove_today
43
+ expect(Dir.exist?(@directory.path)).to eq false
44
+ end
45
+ end
46
+
47
+ after :all do
48
+ log_file_path = "#{@logs_saved_dir}/#{YEAR}_#{MONTH}"
49
+ FileUtils.rm_rf(log_file_path) if Dir.exist?(log_file_path)
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Wloger' do
4
+ it 'has a version number' do
5
+ expect(Wloger::VERSION).not_to eq nil
6
+ end
7
+ end
@@ -0,0 +1,19 @@
1
+ require 'wloger'
2
+
3
+ # This file was generated by the `rspec --init` command. Conventionally, all
4
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
5
+ # Require this file using `require "spec_helper"` to ensure that it is only
6
+ # loaded once.
7
+ #
8
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
9
+ RSpec.configure do |config|
10
+ config.treat_symbols_as_metadata_keys_with_true_values = true
11
+ config.run_all_when_everything_filtered = true
12
+ config.filter_run :focus
13
+
14
+ # Run specs in random order to surface order dependencies. If you find an
15
+ # order dependency and want to debug it, you can fix the order by providing
16
+ # the seed, which is printed after each run.
17
+ # --seed 1234
18
+ config.order = 'random'
19
+ end
data/wloger.gemspec CHANGED
@@ -22,5 +22,6 @@ Gem::Specification.new do |spec|
22
22
 
23
23
  spec.add_development_dependency 'bundler', '~> 1.6'
24
24
  spec.add_development_dependency 'rake'
25
+ spec.add_development_dependency 'rspec'
25
26
  spec.add_development_dependency 'pry'
26
27
  end
metadata CHANGED
@@ -1,69 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wloger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
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-21 00:00:00.000000000 Z
11
+ date: 2014-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.6'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.6'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
53
67
  - !ruby/object:Gem::Version
54
68
  version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: pry
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - ">="
73
+ - - '>='
60
74
  - !ruby/object:Gem::Version
61
75
  version: '0'
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - ">="
80
+ - - '>='
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
69
83
  description: Wloger manages the directory control of work-logs and automatically select
@@ -75,18 +89,24 @@ executables:
75
89
  extensions: []
76
90
  extra_rdoc_files: []
77
91
  files:
78
- - ".gitignore"
92
+ - .gitignore
93
+ - .rspec
79
94
  - Gemfile
95
+ - Guardfile
80
96
  - LICENSE.txt
81
97
  - README.md
82
98
  - Rakefile
83
99
  - bin/wloger
84
100
  - lib/wloger.rb
85
101
  - lib/wloger/command.rb
86
- - lib/wloger/directory.rb
87
- - lib/wloger/editor.rb
88
102
  - lib/wloger/error.rb
103
+ - lib/wloger/log_file.rb
104
+ - lib/wloger/past_log_file.rb
105
+ - lib/wloger/today_log_file.rb
89
106
  - lib/wloger/version.rb
107
+ - spec/lib/wloger/directory_spec.rb
108
+ - spec/lib/wloger_spec.rb
109
+ - spec/spec_helper.rb
90
110
  - wloger.gemspec
91
111
  homepage: https://github.com/huyu398/wloger
92
112
  licenses:
@@ -98,18 +118,21 @@ require_paths:
98
118
  - lib
99
119
  required_ruby_version: !ruby/object:Gem::Requirement
100
120
  requirements:
101
- - - ">="
121
+ - - '>='
102
122
  - !ruby/object:Gem::Version
103
123
  version: '0'
104
124
  required_rubygems_version: !ruby/object:Gem::Requirement
105
125
  requirements:
106
- - - ">="
126
+ - - '>='
107
127
  - !ruby/object:Gem::Version
108
128
  version: '0'
109
129
  requirements: []
110
130
  rubyforge_project:
111
- rubygems_version: 2.2.0
131
+ rubygems_version: 2.0.0
112
132
  signing_key:
113
133
  specification_version: 4
114
134
  summary: Wloger help to manage your daily work-logs.
115
- test_files: []
135
+ test_files:
136
+ - spec/lib/wloger/directory_spec.rb
137
+ - spec/lib/wloger_spec.rb
138
+ - spec/spec_helper.rb
@@ -1,29 +0,0 @@
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 DELETED
@@ -1,28 +0,0 @@
1
- module Wloger
2
- # using editor for work-log class
3
- class Editor
4
- EDITOR_NAME = 'vim'.freeze
5
- LOG_NAME = 'log'.freeze
6
- EXTENTION = 'md'.freeze
7
-
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)
26
- end
27
- end
28
- end