milkode 0.7.0 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. data/Gemfile +5 -5
  2. data/VERSION +1 -1
  3. data/lib/milkode/cli.rb +47 -105
  4. data/milkode.gemspec +2 -17
  5. data/test/test_cli.rb +6 -18
  6. metadata +26 -96
data/Gemfile CHANGED
@@ -2,10 +2,10 @@ source "http://rubygems.org"
2
2
  # Add dependencies required to use your gem here.
3
3
  # Example:
4
4
  # gem "activesupport", ">= 2.3.5"
5
- gemspec
5
+ # gemspec
6
6
  # Add dependencies to develop your gem here.
7
7
  # Include everything needed to run rake, tests, features, etc.
8
- group :development do
9
- gem "bundler"
10
- gem "jeweler"
11
- end
8
+ # group :development do
9
+ # gem "bundler"
10
+ # gem "jeweler"
11
+ # end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.0
1
+ 0.7.1
@@ -7,18 +7,15 @@ require 'milkode/grep/cli_grep'
7
7
 
8
8
  module Milkode
9
9
  class CLI < Thor
10
+ class_option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
11
+
10
12
  desc "init [db_dir]", "Initialize database directory. If db_dir is omitted"
11
13
  option :default, :type => :boolean, :desc => "Init default db, ENV['MILKODE_DEFAULT_DIR'] or ~/.milkode."
12
14
  option :setdb, :type => :boolean, :aliases => '-s', :desc => 'Run setdb after initialization.'
13
- option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
14
15
  def init(db_dir = nil)
15
- if options[:help]
16
- CLI.task_help(shell, "init")
17
- else
18
- db_dir = db_dir || Dbdir.default_dir
19
- FileUtils.mkdir_p db_dir
20
- cdstk(db_dir).init(options)
21
- end
16
+ db_dir = db_dir || Dbdir.default_dir
17
+ FileUtils.mkdir_p db_dir
18
+ cdstk(db_dir).init(options)
22
19
  end
23
20
 
24
21
  desc "add PATH", <<EOF
@@ -36,9 +33,9 @@ EOF
36
33
  option :ignore, :type => :array, :aliases => '-i', :desc => 'Ignore path.'
37
34
  option :no_auto_ignore, :type => :boolean, :desc => 'Disable auto ignore (.gitignore).'
38
35
  option :verbose, :type => :boolean, :aliases => '-v', :desc => 'Be verbose.'
39
- option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
36
+
40
37
  def add(*args)
41
- if options[:help] || args.empty?
38
+ if args.empty?
42
39
  CLI.task_help(shell, "add")
43
40
  else
44
41
  cdstk.add(args, options)
@@ -48,124 +45,69 @@ EOF
48
45
  desc "update [keyword1 keyword2 ...]", "Update database"
49
46
  option :all, :type => :boolean, :desc => "Update all."
50
47
  option :verbose, :type => :boolean, :aliases => '-v', :desc => 'Be verbose.'
51
- option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
52
48
  def update(*args)
53
- if options[:help]
54
- CLI.task_help(shell, "update")
55
- else
56
- cdstk.update(args, options)
57
- end
49
+ cdstk.update(args, options)
58
50
  end
59
51
 
60
52
  desc "remove keyword1 [keyword2 ...]", "Remove package"
61
53
  option :all, :type => :boolean, :desc => 'Remove all.'
62
54
  option :force, :type => :boolean, :aliases => '-f', :desc => 'Force remove.'
63
55
  option :verbose, :type => :boolean, :aliases => '-v', :desc => 'Be verbose.'
64
- option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
65
56
  def remove(*args)
66
- if options[:help]
67
- CLI.task_help(shell, "remove")
68
- else
69
- cdstk.remove(args, options)
70
- end
57
+ cdstk.remove(args, options)
71
58
  end
72
59
 
73
60
  desc "list [package1 package2 ...]", "List package"
74
61
  option :verbose, :type => :boolean, :aliases => '-v', :desc => 'Be verbose.'
75
- option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
76
62
  def list(*args)
77
- if options[:help]
78
- CLI.task_help(shell, "list")
79
- else
80
- cdstk.list(args, options)
81
- end
63
+ cdstk.list(args, options)
82
64
  end
83
65
 
84
66
  desc "pwd", "Display the current database"
85
67
  option :default, :type => :boolean, :desc => 'Show default db, ENV[\'MILKODE_DEFAULT_DIR\'] or ~/.milkode.'
86
- option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
87
68
  def pwd()
88
- if options[:help]
89
- CLI.task_help(shell, "pwd")
90
- else
91
- cdstk.pwd(options)
92
- end
69
+ cdstk.pwd(options)
93
70
  end
94
71
 
95
72
  desc "cleanup", "Creanup garbage recoeds"
96
73
  option :force, :type => :boolean, :aliases => '-f', :desc => 'Force cleanup.'
97
- option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
98
74
  def cleanup
99
- if options[:help]
100
- CLI.task_help(shell, "cleanup")
101
- else
102
- cdstk.cleanup(options)
103
- end
75
+ cdstk.cleanup(options)
104
76
  end
105
77
 
106
78
  desc "rebuild [keyword1 keyword2]", "Rebuild database"
107
79
  option :all, :type => :boolean, :desc => 'Rebuild all.'
108
80
  option :verbose, :type => :boolean, :aliases => '-v', :desc => 'Be verbose.'
109
- option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
110
81
  def rebuild(*args)
111
- if options[:help]
112
- CLI.task_help(shell, "rebuild")
113
- else
114
- cdstk.rebuild(args, options)
115
- end
82
+ cdstk.rebuild(args, options)
116
83
  end
117
84
 
118
85
  desc "dump", "Dump records"
119
- option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
120
86
  def dump
121
- if options[:help]
122
- CLI.task_help(shell, "dump")
123
- else
124
- cdstk.dump
125
- end
87
+ cdstk.dump
126
88
  end
127
89
 
128
90
  desc "dir [package1 package2]", "Print project root directory"
129
91
  option :top, :type => :boolean
130
- option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
131
92
  def dir(*args)
132
- if options[:help]
133
- CLI.task_help(shell, "dir")
134
- else
135
- cdstk.dir(args, options)
136
- end
93
+ cdstk.dir(args, options)
137
94
  end
138
95
 
139
96
  desc "setdb [dbpath]", "Set default db to dbpath"
140
97
  option :reset, :type => :boolean, :aliases => '--default', :desc => 'Reset to the system default database.'
141
- option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
142
98
  def setdb(dbpath = nil)
143
- if options[:help]
144
- CLI.task_help(shell, "setdb")
145
- else
146
- cdstk.setdb(dbpath, options)
147
- end
99
+ cdstk.setdb(dbpath, options)
148
100
  end
149
101
 
150
102
  desc "mcd", "Generate `mcd' command"
151
103
  option :shell, :desc => 'Type of shell. bash or cygwin'
152
- option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
153
104
  def mcd
154
- if options[:help]
155
- CLI.task_help(shell, "mcd")
156
- else
157
- cdstk.mcd(options)
158
- end
105
+ cdstk.mcd(options)
159
106
  end
160
107
 
161
108
  desc "info", "Information of milkode status"
162
- option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
163
109
  def info
164
- if options[:help]
165
- CLI.task_help(shell, "info")
166
- else
167
- cdstk.info
168
- end
110
+ cdstk.info
169
111
  end
170
112
 
171
113
  desc "ignore [path ...]", "Ignore a file or directory"
@@ -173,16 +115,11 @@ EOF
173
115
  option :delete, :type => :boolean, :aliases => '-d', :desc => "Delete ignore setting."
174
116
  option :delete_all, :type => :boolean, :desc => "Delete all ignore setting."
175
117
  option :dry_run, :type => :boolean, :aliases => '-n', :desc => "Ignore setting test."
176
- option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
177
118
  def ignore(*paths)
178
- if options[:help]
179
- CLI.task_help(shell, "ignore")
180
- else
181
- begin
182
- cdstk.ignore(paths, options)
183
- rescue IgnoreError => e
184
- $stdout.puts e.message
185
- end
119
+ begin
120
+ cdstk.ignore(paths, options)
121
+ rescue IgnoreError => e
122
+ $stdout.puts e.message
186
123
  end
187
124
  end
188
125
 
@@ -193,27 +130,22 @@ EOF
193
130
  option :server, :default => 'thin', :aliases => '-s'
194
131
  option :no_browser, :type => :boolean, :default => false, :aliases => '-n', :type => :boolean, :desc => 'Do not launch browser.'
195
132
  option :customize, :type => :boolean, :desc => 'Create customize file.'
196
- option :help, :type => :boolean, :aliases => '-h', :desc => 'Help message.'
197
133
  def web
198
- if options[:help]
199
- CLI.task_help(shell, "web")
200
- else
201
- opts = {
202
- :environment => ENV['RACK_ENV'] || "development",
203
- :pid => nil,
204
- :Port => options[:port],
205
- :Host => options[:host],
206
- :AccessLog => [],
207
- :config => "config.ru",
208
- # ----------------------------
209
- :server => options[:server],
210
- :LaunchBrowser => !options[:no_browser],
211
- :DbDir => options[:db],
212
- }
213
- opts[:customize] = options[:customize]
214
- cdstk(opts[:DbDir]).assert_compatible
215
- Milkode::CLI_Cdweb.execute_with_options($stdout, opts)
216
- end
134
+ opts = {
135
+ :environment => ENV['RACK_ENV'] || "development",
136
+ :pid => nil,
137
+ :Port => options[:port],
138
+ :Host => options[:host],
139
+ :AccessLog => [],
140
+ :config => "config.ru",
141
+ # ----------------------------
142
+ :server => options[:server],
143
+ :LaunchBrowser => !options[:no_browser],
144
+ :DbDir => options[:db],
145
+ }
146
+ opts[:customize] = options[:customize]
147
+ cdstk(opts[:DbDir]).assert_compatible
148
+ Milkode::CLI_Cdweb.execute_with_options($stdout, opts)
217
149
  end
218
150
 
219
151
  desc "grep", "Search projects"
@@ -228,6 +160,16 @@ EOF
228
160
  def shell
229
161
  @shell ||= Thor::Base.shell.new
230
162
  end
163
+
164
+ # デフォルトメソッドを上書きして -h を処理
165
+ # defined in /lib/thor/invocation.rb
166
+ def invoke_task(task, *args)
167
+ if options[:help] && task.name != 'grep'
168
+ CLI.task_help(shell, task.name)
169
+ else
170
+ super
171
+ end
172
+ end
231
173
  end
232
174
 
233
175
  private
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{milkode}
8
- s.version = "0.7.0"
8
+ s.version = "0.7.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["ongaeshi"]
12
- s.date = %q{2012-05-06}
12
+ s.date = %q{2012-05-15}
13
13
  s.description = %q{Line based local source code search engine & grep-command & web-app.}
14
14
  s.email = %q{ongaeshi0621@gmail.com}
15
15
  s.executables = ["gmilk", "milk"]
@@ -128,11 +128,6 @@ Gem::Specification.new do |s|
128
128
  s.specification_version = 3
129
129
 
130
130
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
131
- s.add_runtime_dependency(%q<milkode>, [">= 0"])
132
- s.add_development_dependency(%q<bundler>, [">= 0"])
133
- s.add_development_dependency(%q<jeweler>, [">= 0"])
134
- s.add_development_dependency(%q<bundler>, [">= 0"])
135
- s.add_development_dependency(%q<jeweler>, [">= 0"])
136
131
  s.add_runtime_dependency(%q<termcolor>, [">= 1.2.0"])
137
132
  s.add_runtime_dependency(%q<rroonga>, [">= 1.1.0"])
138
133
  s.add_runtime_dependency(%q<rack>, [">= 1.3.4"])
@@ -145,11 +140,6 @@ Gem::Specification.new do |s|
145
140
  s.add_runtime_dependency(%q<sass>, [">= 3.1.3"])
146
141
  s.add_runtime_dependency(%q<thor>, ["~> 0.15.0"])
147
142
  else
148
- s.add_dependency(%q<milkode>, [">= 0"])
149
- s.add_dependency(%q<bundler>, [">= 0"])
150
- s.add_dependency(%q<jeweler>, [">= 0"])
151
- s.add_dependency(%q<bundler>, [">= 0"])
152
- s.add_dependency(%q<jeweler>, [">= 0"])
153
143
  s.add_dependency(%q<termcolor>, [">= 1.2.0"])
154
144
  s.add_dependency(%q<rroonga>, [">= 1.1.0"])
155
145
  s.add_dependency(%q<rack>, [">= 1.3.4"])
@@ -163,11 +153,6 @@ Gem::Specification.new do |s|
163
153
  s.add_dependency(%q<thor>, ["~> 0.15.0"])
164
154
  end
165
155
  else
166
- s.add_dependency(%q<milkode>, [">= 0"])
167
- s.add_dependency(%q<bundler>, [">= 0"])
168
- s.add_dependency(%q<jeweler>, [">= 0"])
169
- s.add_dependency(%q<bundler>, [">= 0"])
170
- s.add_dependency(%q<jeweler>, [">= 0"])
171
156
  s.add_dependency(%q<termcolor>, [">= 1.2.0"])
172
157
  s.add_dependency(%q<rroonga>, [">= 1.1.0"])
173
158
  s.add_dependency(%q<rack>, [">= 1.3.4"])
@@ -61,24 +61,12 @@ class TestCLI_Cdstk < Test::Unit::TestCase
61
61
  assert_equal @first_default_dir, Dbdir.default_dir
62
62
  end
63
63
 
64
- # def test_list_help
65
- # command("init -h")
66
- # command("add -h")
67
- # command("update -h")
68
- # command("remove -h")
69
- # command("list -h")
70
- # command("pwd -h")
71
- # command("cleanup -h")
72
- # command("rebuild -h")
73
- # command("dump -h")
74
- # command("dir -h")
75
- # command("setdb -h")
76
- # command("mcd -h")
77
- # command("info -h")
78
- # command("ignore -h")
79
- # command("web -h")
80
- # command("grep -h")
81
- # end
64
+ def test_help_with_h_option
65
+ commands = ["init", "add", "update", "remove", "list", "pwd", "cleanup", "rebuild", "dump", "dir", "setdb", "mcd", "info", "ignore", "web"]
66
+ commands.each do |cmd|
67
+ assert_match "Usage:", command("#{ cmd } -h")
68
+ end
69
+ end
82
70
 
83
71
  private
84
72
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: milkode
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
4
+ hash: 1
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 7
9
- - 0
10
- version: 0.7.0
9
+ - 1
10
+ version: 0.7.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - ongaeshi
@@ -15,84 +15,14 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-05-06 00:00:00 +09:00
18
+ date: 2012-05-15 00:00:00 +09:00
19
19
  default_executable:
20
20
  dependencies:
21
- - !ruby/object:Gem::Dependency
22
- type: :runtime
23
- prerelease: false
24
- name: milkode
25
- version_requirements: &id001 !ruby/object:Gem::Requirement
26
- none: false
27
- requirements:
28
- - - ">="
29
- - !ruby/object:Gem::Version
30
- hash: 3
31
- segments:
32
- - 0
33
- version: "0"
34
- requirement: *id001
35
- - !ruby/object:Gem::Dependency
36
- type: :development
37
- prerelease: false
38
- name: bundler
39
- version_requirements: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 0
47
- version: "0"
48
- requirement: *id002
49
- - !ruby/object:Gem::Dependency
50
- type: :development
51
- prerelease: false
52
- name: jeweler
53
- version_requirements: &id003 !ruby/object:Gem::Requirement
54
- none: false
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- hash: 3
59
- segments:
60
- - 0
61
- version: "0"
62
- requirement: *id003
63
- - !ruby/object:Gem::Dependency
64
- type: :development
65
- prerelease: false
66
- name: bundler
67
- version_requirements: &id004 !ruby/object:Gem::Requirement
68
- none: false
69
- requirements:
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- hash: 3
73
- segments:
74
- - 0
75
- version: "0"
76
- requirement: *id004
77
- - !ruby/object:Gem::Dependency
78
- type: :development
79
- prerelease: false
80
- name: jeweler
81
- version_requirements: &id005 !ruby/object:Gem::Requirement
82
- none: false
83
- requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- hash: 3
87
- segments:
88
- - 0
89
- version: "0"
90
- requirement: *id005
91
21
  - !ruby/object:Gem::Dependency
92
22
  type: :runtime
93
23
  prerelease: false
94
24
  name: termcolor
95
- version_requirements: &id006 !ruby/object:Gem::Requirement
25
+ version_requirements: &id001 !ruby/object:Gem::Requirement
96
26
  none: false
97
27
  requirements:
98
28
  - - ">="
@@ -103,12 +33,12 @@ dependencies:
103
33
  - 2
104
34
  - 0
105
35
  version: 1.2.0
106
- requirement: *id006
36
+ requirement: *id001
107
37
  - !ruby/object:Gem::Dependency
108
38
  type: :runtime
109
39
  prerelease: false
110
40
  name: rroonga
111
- version_requirements: &id007 !ruby/object:Gem::Requirement
41
+ version_requirements: &id002 !ruby/object:Gem::Requirement
112
42
  none: false
113
43
  requirements:
114
44
  - - ">="
@@ -119,12 +49,12 @@ dependencies:
119
49
  - 1
120
50
  - 0
121
51
  version: 1.1.0
122
- requirement: *id007
52
+ requirement: *id002
123
53
  - !ruby/object:Gem::Dependency
124
54
  type: :runtime
125
55
  prerelease: false
126
56
  name: rack
127
- version_requirements: &id008 !ruby/object:Gem::Requirement
57
+ version_requirements: &id003 !ruby/object:Gem::Requirement
128
58
  none: false
129
59
  requirements:
130
60
  - - ">="
@@ -135,12 +65,12 @@ dependencies:
135
65
  - 3
136
66
  - 4
137
67
  version: 1.3.4
138
- requirement: *id008
68
+ requirement: *id003
139
69
  - !ruby/object:Gem::Dependency
140
70
  type: :runtime
141
71
  prerelease: false
142
72
  name: sinatra
143
- version_requirements: &id009 !ruby/object:Gem::Requirement
73
+ version_requirements: &id004 !ruby/object:Gem::Requirement
144
74
  none: false
145
75
  requirements:
146
76
  - - ">="
@@ -151,12 +81,12 @@ dependencies:
151
81
  - 2
152
82
  - 6
153
83
  version: 1.2.6
154
- requirement: *id009
84
+ requirement: *id004
155
85
  - !ruby/object:Gem::Dependency
156
86
  type: :runtime
157
87
  prerelease: false
158
88
  name: launchy
159
- version_requirements: &id010 !ruby/object:Gem::Requirement
89
+ version_requirements: &id005 !ruby/object:Gem::Requirement
160
90
  none: false
161
91
  requirements:
162
92
  - - ">="
@@ -167,12 +97,12 @@ dependencies:
167
97
  - 3
168
98
  - 7
169
99
  version: 0.3.7
170
- requirement: *id010
100
+ requirement: *id005
171
101
  - !ruby/object:Gem::Dependency
172
102
  type: :runtime
173
103
  prerelease: false
174
104
  name: coderay
175
- version_requirements: &id011 !ruby/object:Gem::Requirement
105
+ version_requirements: &id006 !ruby/object:Gem::Requirement
176
106
  none: false
177
107
  requirements:
178
108
  - - ">="
@@ -183,12 +113,12 @@ dependencies:
183
113
  - 0
184
114
  - 5
185
115
  version: 1.0.5
186
- requirement: *id011
116
+ requirement: *id006
187
117
  - !ruby/object:Gem::Dependency
188
118
  type: :runtime
189
119
  prerelease: false
190
120
  name: thin
191
- version_requirements: &id012 !ruby/object:Gem::Requirement
121
+ version_requirements: &id007 !ruby/object:Gem::Requirement
192
122
  none: false
193
123
  requirements:
194
124
  - - ">="
@@ -199,12 +129,12 @@ dependencies:
199
129
  - 2
200
130
  - 10
201
131
  version: 1.2.10
202
- requirement: *id012
132
+ requirement: *id007
203
133
  - !ruby/object:Gem::Dependency
204
134
  type: :runtime
205
135
  prerelease: false
206
136
  name: archive-zip
207
- version_requirements: &id013 !ruby/object:Gem::Requirement
137
+ version_requirements: &id008 !ruby/object:Gem::Requirement
208
138
  none: false
209
139
  requirements:
210
140
  - - ">="
@@ -215,12 +145,12 @@ dependencies:
215
145
  - 4
216
146
  - 0
217
147
  version: 0.4.0
218
- requirement: *id013
148
+ requirement: *id008
219
149
  - !ruby/object:Gem::Dependency
220
150
  type: :runtime
221
151
  prerelease: false
222
152
  name: haml
223
- version_requirements: &id014 !ruby/object:Gem::Requirement
153
+ version_requirements: &id009 !ruby/object:Gem::Requirement
224
154
  none: false
225
155
  requirements:
226
156
  - - ">="
@@ -231,12 +161,12 @@ dependencies:
231
161
  - 1
232
162
  - 2
233
163
  version: 3.1.2
234
- requirement: *id014
164
+ requirement: *id009
235
165
  - !ruby/object:Gem::Dependency
236
166
  type: :runtime
237
167
  prerelease: false
238
168
  name: sass
239
- version_requirements: &id015 !ruby/object:Gem::Requirement
169
+ version_requirements: &id010 !ruby/object:Gem::Requirement
240
170
  none: false
241
171
  requirements:
242
172
  - - ">="
@@ -247,12 +177,12 @@ dependencies:
247
177
  - 1
248
178
  - 3
249
179
  version: 3.1.3
250
- requirement: *id015
180
+ requirement: *id010
251
181
  - !ruby/object:Gem::Dependency
252
182
  type: :runtime
253
183
  prerelease: false
254
184
  name: thor
255
- version_requirements: &id016 !ruby/object:Gem::Requirement
185
+ version_requirements: &id011 !ruby/object:Gem::Requirement
256
186
  none: false
257
187
  requirements:
258
188
  - - ~>
@@ -263,7 +193,7 @@ dependencies:
263
193
  - 15
264
194
  - 0
265
195
  version: 0.15.0
266
- requirement: *id016
196
+ requirement: *id011
267
197
  description: Line based local source code search engine & grep-command & web-app.
268
198
  email: ongaeshi0621@gmail.com
269
199
  executables: