my_help 0.8.0 → 0.8.2

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: 0a77e9a66372bd04c96bb0e29de646913594a2fe
4
- data.tar.gz: 4e27864662ad2ecbe5d672824b37595f6780408d
3
+ metadata.gz: 13b91f6abff32e7684a29cc6ed379336cec60491
4
+ data.tar.gz: 4a4615b5241da57e266de134b904b68cf030cb11
5
5
  SHA512:
6
- metadata.gz: 1bc062f32280693491ef365b7ec53ef9bbe4c01889f33e122aac2cc9172a75c38db84b8f07a2743de44f8ce3cc1b5b13fa261ddec7cf94a8f7129581b310b260
7
- data.tar.gz: 6402844db1fc46a448a549a9ffbbd3c04ac082464b6ef8f7d394de299a3e699484b154c671c9c4c045eefb9be73753c491146c871e0ba8fbd5c12bf1100c021c
6
+ metadata.gz: eed8e764d4d4a8cca12016807e1792886c297e347fd1c722e6466eaf4ec1043dad5b408090eaefd9d1b4f9bbd6fb6381ad3be98852584fa7a7fd09cc68f68aa3
7
+ data.tar.gz: 7518cd00a767a2d0c63ec0b514a0d39d9fb6eda53a2ee77c40e7db508d4de0ef2f281dcba2f7b200648bd42337f81cf81ed57a3247a132112f6b44c6f4126fc1
data/Gemfile.lock CHANGED
@@ -10,9 +10,9 @@ GEM
10
10
  specs:
11
11
  colorize (0.8.1)
12
12
  diff-lcs (1.3)
13
- ffi (1.11.1)
13
+ ffi (1.11.2)
14
14
  gli (2.17.1)
15
- rake (13.0.0)
15
+ rake (13.0.1)
16
16
  rdoc (6.2.0)
17
17
  rspec (3.9.0)
18
18
  rspec-core (~> 3.9.0)
data/README.org CHANGED
@@ -135,3 +135,10 @@ COMMANDS
135
135
  : my_help delete new_help
136
136
 
137
137
  すると消されます.
138
+ * test
139
+ testは[[/Users/bob/github/ruby_docs/testing_frameworks/test_unit/README.org]]
140
+ にあるのに従って書いている.
141
+
142
+ 「Rubyベストプラクティス」にあるmustを使ったextension
143
+ を組み込んで,DSLにしている.
144
+ [[https://github.com/practicingruby/rbp/blob/master/testing/test_unit_extensions.rb]]
data/exe/my_help CHANGED
@@ -1,50 +1,68 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'thor'
3
3
  require 'my_help'
4
-
4
+ require 'colorize'
5
5
  class MyCLI < Thor
6
- desc "list", "list all helps, specific HELP, or item"
7
- def list(*args)
6
+ desc('setup', 'set up the test database')
7
+ def setup(*args)
8
8
  $control = MyHelp::Control.new()
9
+ end
10
+
11
+ desc "list", "list helps, specific HELP, or item"
12
+ def list(*args)
13
+ invoke :setup
9
14
  file = args[0]
10
15
  item = args[1]
11
16
  if file.nil?
12
- $control.list_all
17
+ puts $control.list_all.blue # list []
13
18
  elsif item.nil?
14
- $control.list_help(file)
19
+ begin
20
+ puts $control.list_help(file) # list [file]
21
+ rescue => e
22
+ puts e.to_s.red
23
+ end
15
24
  else
16
- $control.show_item(file, item)
25
+ begin
26
+ puts $control.show_item(file, item) # list [file] [item]
27
+ rescue => e
28
+ puts e.to_s.red
29
+ end
17
30
  end
18
31
  end
19
32
 
33
+ desc "version", "show version"
34
+ def version
35
+ invoke :setup
36
+ puts MyHelp::VERSION
37
+ end
38
+
39
+ desc "editor {editor_name}", "set editor"
40
+ def editor(editor_name)
41
+ invoke :setup
42
+ $control.set_editor(editor_name)
43
+ end
44
+
20
45
  desc "edit {help_name}", "edit HELP_NAME"
21
46
  def edit(help_name)
22
- $control = MyHelp::Control.new()
47
+ invoke :setup
23
48
  $control.edit_help(help_name)
24
49
  end
25
50
 
26
51
  desc "new {help_name}", "make new HELP_NAME"
27
52
  def new(help_name)
28
- $control = MyHelp::Control.new()
53
+ invoke :setup
29
54
  $control.init_help(help_name)
30
55
  end
31
56
 
32
57
  desc "delete {help_name}", "delete HELP_NAME"
33
58
  def delete(help_name)
34
- $control = MyHelp::Control.new()
59
+ invoke :setup
35
60
  $control.delete_help(help_name)
36
61
  end
37
62
 
38
-
39
- desc "tomo_upload {help_name}", "tomo_upload HELP_NAME"
40
- def tomo_upload(help_name)
41
- $control = MyHelp::Control.new()
42
- $control.upload_help(help_name)
43
- end
44
-
45
63
  desc "search {find_char}", "search FIND_CHAR"
46
64
  def search(find_char)
47
- $control = MyHelp::Control.new()
65
+ invoke :setup
48
66
  $control.search_help(find_char)
49
67
  end
50
68
  end
@@ -1,16 +1,47 @@
1
- # -*- coding: utf-8 -*-
1
+ # coding: utf-8
2
+ require 'fileutils'
3
+ require 'yaml'
4
+
2
5
  module MyHelp
3
- class Control
6
+ class Control
7
+ attr_accessor :local_help_dir, :editor
4
8
  def initialize()
9
+ # for configuration setups
10
+ # see https://stackoverflow.com/questions/6233124/where-to-place-access-config-file-in-gem
11
+
5
12
  @template_dir = File.expand_path("../../templates", __FILE__)
6
13
  @exe_dir = File.expand_path("../../exe", __FILE__)
7
14
  @local_help_dir = File.join(ENV['HOME'],'.my_help')
8
- # @mini_account = File
15
+ @editor = 'code' #'emacs' #'vim'
16
+ # @mini_account = File
9
17
  set_help_dir_if_not_exists
18
+ load_conf
19
+ end
20
+
21
+ def set_editor(editor)
22
+ @editor = editor
23
+ file_name = '.my_help_conf.yml'
24
+ # @conf_file = File.join(Dir.pwd, file_name)
25
+ @conf_file = File.join(@local_help_dir, file_name)
26
+ conf = {editor: editor}
27
+ File.open(@conf_file, 'w'){|f| YAML.dump(conf, f)}
28
+ end
29
+
30
+ def load_conf
31
+ file_name = '.my_help_conf.yml'
32
+ # @conf_file = File.join(Dir.pwd, file_name)
33
+ @conf_file = File.join(@local_help_dir, file_name)
34
+ begin
35
+ conf = YAML.load_file(@conf_file)
36
+ @editor = conf[:editor]
37
+ rescue => e
38
+ p e
39
+ set_editor('code')
40
+ end
10
41
  end
11
42
 
12
43
  def set_help_dir_if_not_exists
13
- return if File::exists?(@local_help_dir)
44
+ return if File::exist?(@local_help_dir)
14
45
  FileUtils.mkdir_p(@local_help_dir, :verbose=>true)
15
46
  Dir.entries(@template_dir).each{|file|
16
47
  next if file=='help_template.org'
@@ -20,66 +51,60 @@ module MyHelp
20
51
  }
21
52
  end
22
53
 
23
- def show_item(file, item)
24
- file_path=File.join(@local_help_dir,file+'.org')
25
- help = auto_load(file_path)
26
- select = select_item(help, item)
27
- print help[:head][:cont]
28
- puts '-'*5+"\n"+select.to_s.red
29
- print help[select][:cont]
30
- end
31
-
32
- def select_item(help, item)
33
- o_key = ''
34
- help.each_pair do |key, cont|
35
- next if key==:license or key==:head
36
- if cont[:opts][:short] == item or cont[:opts][:long] == item
37
- o_key = key
38
- break
54
+ def list_all
55
+ output = "\nList all helps\n"
56
+ local_help_entries.each do |file|
57
+ file_path=File.join(@local_help_dir,file)
58
+ title = file.split('.')[0]
59
+ help = auto_load(file_path)
60
+ next if help.nil?
61
+ begin
62
+ desc = help[:head][:cont].split("\n")[0]
63
+ rescue => e
64
+ puts e
65
+ puts "No head in #{file_path}".red
66
+ next
39
67
  end
68
+ output << title.rjust(10)
69
+ output << ": #{desc}\n"
40
70
  end
41
- o_key
71
+ output
42
72
  end
43
73
 
74
+ WrongFileName = Class.new(RuntimeError)
44
75
  def list_help(file)
76
+ output = ''
45
77
  file_path=File.join(@local_help_dir,file+'.org')
46
- help = auto_load(file_path)
47
- help.each_pair do |key, conts|
48
- print conts[:cont] if key==:head
49
- disp_opts( conts[:opts] )
78
+ begin
79
+ help = auto_load(file_path)
80
+ rescue => e
81
+ raise WrongFileName, "No help named '#{file}' in the directory '#{local_help_dir}'."
50
82
  end
51
- end
52
-
53
- def disp_opts( conts )
54
- col = 0
55
- conts.each_pair do |key, item|
56
- col_length = case col
57
- when 0; print item.rjust(5)+", "
58
- when 1; print item.ljust(15)+": "
59
- else; print item
60
- end
61
- col += 1
83
+ help.each_pair do |key, conts|
84
+ output << conts[:cont] if key==:head
85
+ output << disp_opts( conts[:opts] )
62
86
  end
63
- print("\n")
87
+ output
64
88
  end
65
89
 
66
- def list_all
67
- print "List all helps\n"
68
- local_help_entries.each do |file|
69
- file_path=File.join(@local_help_dir,file)
70
- title = file.split('.')[0]
71
- help = auto_load(file_path)
72
- next if help.nil?
73
- desc = help[:head][:cont].split("\n")[0]
74
- print title.rjust(10).blue
75
- print ": #{desc}\n".blue
90
+ WrongItemName = Class.new(RuntimeError)
91
+ def show_item(file, item)
92
+ output = ''
93
+ file_path=File.join(@local_help_dir,file+'.org')
94
+ help = auto_load(file_path)
95
+ select = select_item(help, item)
96
+ output << help[:head][:cont]
97
+ unless select then
98
+ raise WrongItemName, "No item entry: #{item}"
76
99
  end
100
+ output << '-'*5+"\n"+select.to_s.green+"\n"
101
+ output << help[select][:cont]
77
102
  end
78
103
 
79
104
  def edit_help(file)
80
105
  p target_help = File.join(@local_help_dir,file+'.org')
81
106
  if local_help_entries.member?(file+'.org')
82
- system "emacs #{target_help}"
107
+ system "#{@editor} #{target_help}"
83
108
  else
84
109
  puts "file #{target_help} does not exits in #{@local_help_dir}."
85
110
  puts "init #{file} first."
@@ -114,39 +139,44 @@ module MyHelp
114
139
  end
115
140
  end
116
141
 
117
- def upload_help(file)
118
- p target_help = File.join(@local_help_dir,file+'.org')
119
- puts "miniのuser_nameを入力してください."
120
- p user_name = STDIN.gets.chomp
121
- puts "保存するディレクトリ名を入力してください."
122
- p directory_name = STDIN.gets.chomp
123
- if local_help_entries.member?(file+'.org')
124
- # if target_help.empty?(file+'.org')
125
- # system "scp #{@local_help_dir} tomoko_y@mini:~/our_help/member/tomoko"
126
- # else
127
- system "scp #{target_help} #{user_name}@mini:~/our_help/member/#{directory_name}"
128
- puts "後は,miniでgitにpushしてください."
129
- # end
130
- else
131
- puts "file #{target_help} does not exits in #{@local_help_dir}."
132
- puts "init #{file} first."
142
+ def search_help(word)
143
+ p find_char = word
144
+ system "ls #{@local_help_dir} | grep #{find_char}"
145
+ end
146
+
147
+ private
148
+ def select_item(help, item)
149
+ o_key = nil
150
+ help.each_pair do |key, cont|
151
+ next if key==:license or key==:head
152
+ if cont[:opts][:short] == item or cont[:opts][:long] == item
153
+ o_key = key
154
+ break
155
+ end
133
156
  end
157
+ o_key
134
158
  end
135
159
 
136
- =begin
137
- def search_help(file)
138
- p find_char = STDIN.gets.chomp
139
- system "ls #{@local_help_dir} | grep #{find_char}"
160
+ def disp_opts( conts )
161
+ output = ''
162
+ col = 0
163
+ conts.each_pair do |key, item|
164
+ col_length = case col
165
+ when 0; output << item.rjust(5)+", "
166
+ when 1; output << item.ljust(15)+": "
167
+ else; output << item
168
+ end
169
+ col += 1
170
+ end
171
+ output << "\n"
140
172
  end
141
- =end
142
173
 
143
- private
144
174
  def local_help_entries
145
175
  entries= []
146
176
  Dir.entries(@local_help_dir).each{|file|
147
- # next unless file.include?('_')
177
+ # next unless file.include?('_')
148
178
  next if file[0]=='#' or file[-1]=='~' or file[0]=='.'
149
- # next if file.match(/(.+)_e\.org/) # OK?
179
+ # next if file.match(/(.+)_e\.org/) # OK?
150
180
  # next if file.match(/(.+)\.html/)
151
181
  if file.match(/(.+)\.org$/) # OK?
152
182
  entries << file
@@ -157,8 +187,8 @@ module MyHelp
157
187
 
158
188
  def auto_load(file_path)
159
189
  case File.extname(file_path)
160
- # when '.yml'
161
- # cont = YAML.load(File.read(file_path))
190
+ # when '.yml'
191
+ # cont = YAML.load(File.read(file_path))
162
192
  when '.org'
163
193
  cont = OrgToYaml.new(file_path).help_cont
164
194
  else
@@ -1,3 +1,3 @@
1
1
  module MyHelp
2
- VERSION = "0.8.0"
2
+ VERSION = "0.8.2"
3
3
  end
data/my_help.gemspec CHANGED
@@ -18,8 +18,8 @@ spec = Gem::Specification.new do |s|
18
18
  s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
19
  s.add_development_dependency('rake')
20
20
  s.add_development_dependency('rdoc')
21
- s.add_development_dependency('thor')
22
21
  s.add_development_dependency('rspec')
23
- s.add_runtime_dependency('gli','2.17.1')
22
+ s.add_runtime_dependency('thor')
23
+ # s.add_runtime_dependency('gli','2.17.1')
24
24
  s.add_runtime_dependency "colorize"
25
25
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: my_help
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shigeot R. Nishitani
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-17 00:00:00.000000000 Z
11
+ date: 2019-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: thor
42
+ name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,33 +53,19 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rspec
56
+ name: thor
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
- type: :development
62
+ type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: gli
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - '='
74
- - !ruby/object:Gem::Version
75
- version: 2.17.1
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - '='
81
- - !ruby/object:Gem::Version
82
- version: 2.17.1
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: colorize
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -105,7 +91,6 @@ files:
105
91
  - ".dockerignore"
106
92
  - ".gitignore"
107
93
  - ".rspec"
108
- - ".ruby-version"
109
94
  - ".travis.yml"
110
95
  - ".yardoc/checksums"
111
96
  - ".yardoc/complete"
@@ -120,7 +105,6 @@ files:
120
105
  - README.rdoc
121
106
  - README_en.org
122
107
  - Rakefile
123
- - Rakefile_gli
124
108
  - doc/MyHelp.html
125
109
  - doc/MyHelp/Control.html
126
110
  - doc/OrgToYaml.html
@@ -150,8 +134,6 @@ files:
150
134
  - lib/templates/org.org
151
135
  - lib/templates/todo.org
152
136
  - my_help.gemspec
153
- - my_help.rdoc
154
- - tmp.rb
155
137
  homepage: https://github.com/daddygongon/my_help
156
138
  licenses:
157
139
  - MIT
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 2.4.3
data/Rakefile_gli DELETED
@@ -1,44 +0,0 @@
1
- require 'rake/clean'
2
- require 'rubygems'
3
- require 'rubygems/package_task'
4
- require 'rdoc/task'
5
- require 'cucumber'
6
- require 'cucumber/rake/task'
7
- Rake::RDocTask.new do |rd|
8
- rd.main = "README.rdoc"
9
- rd.rdoc_files.include("README.rdoc","lib/**/*.rb","bin/**/*")
10
- rd.title = 'Your application title'
11
- end
12
-
13
- spec = eval(File.read('my_help.gemspec'))
14
-
15
- Gem::PackageTask.new(spec) do |pkg|
16
- end
17
- CUKE_RESULTS = 'results.html'
18
- CLEAN << CUKE_RESULTS
19
- desc 'Run features'
20
- Cucumber::Rake::Task.new(:features) do |t|
21
- opts = "features --format html -o #{CUKE_RESULTS} --format progress -x"
22
- opts += " --tags #{ENV['TAGS']}" if ENV['TAGS']
23
- t.cucumber_opts = opts
24
- t.fork = false
25
- end
26
-
27
- desc 'Run features tagged as work-in-progress (@wip)'
28
- Cucumber::Rake::Task.new('features:wip') do |t|
29
- tag_opts = ' --tags ~@pending'
30
- tag_opts = ' --tags @wip'
31
- t.cucumber_opts = "features --format html -o #{CUKE_RESULTS} --format pretty -x -s#{tag_opts}"
32
- t.fork = false
33
- end
34
-
35
- task :cucumber => :features
36
- task 'cucumber:wip' => 'features:wip'
37
- task :wip => 'features:wip'
38
- require 'rake/testtask'
39
- Rake::TestTask.new do |t|
40
- t.libs << "test"
41
- t.test_files = FileList['test/*_test.rb']
42
- end
43
-
44
- task :default => [:test,:features]
data/my_help.rdoc DELETED
@@ -1,5 +0,0 @@
1
- = my_help
2
-
3
- Generate this with
4
- my_help rdoc
5
- After you have described your command line interface
data/tmp.rb DELETED
@@ -1,5 +0,0 @@
1
- def test(opts={})
2
- p opts[:test2]
3
- end
4
-
5
- test(test: 'hoge', test2: 'hage')