my_help 0.8.6 → 1.1a

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/'../test'/.my_help/.my_help_conf.yml +2 -0
  3. data/'../test'/.my_help/emacs.org +50 -0
  4. data/{lib/templates → '../test'/.my_help}/org.org +0 -0
  5. data/{lib/templates → '../test'/.my_help}/todo.org +0 -0
  6. data/.gitignore +8 -0
  7. data/.my_help/example2.org +9 -0
  8. data/.rspec +1 -2
  9. data/.rspec_status +13 -0
  10. data/.yardoc/checksums +3 -3
  11. data/.yardoc/object_types +0 -0
  12. data/.yardoc/objects/root.dat +0 -0
  13. data/Gemfile +10 -5
  14. data/Gemfile.lock +61 -88
  15. data/README.org +35 -47
  16. data/Rakefile +25 -14
  17. data/doc/MyHelp/Control.html +443 -221
  18. data/doc/MyHelp.html +7 -7
  19. data/doc/OrgToYaml.html +12 -10
  20. data/doc/_index.html +7 -7
  21. data/doc/class_list.html +2 -2
  22. data/doc/css/style.css +3 -2
  23. data/doc/file.README.html +29 -29
  24. data/doc/file_list.html +2 -2
  25. data/doc/frames.html +2 -2
  26. data/doc/index.html +29 -29
  27. data/doc/js/app.js +14 -3
  28. data/doc/method_list.html +24 -8
  29. data/doc/top-level-namespace.html +6 -6
  30. data/docs/README.html +218 -0
  31. data/docs/README.org +202 -0
  32. data/docs/old_docs/16b_nasu.pdf +0 -0
  33. data/docs/old_docs/17b_oyagi.pdf +0 -0
  34. data/docs/old_docs/19b_okabata.pdf +0 -0
  35. data/docs/old_docs/19b_yamaguchi.pdf +0 -0
  36. data/docs/old_docs/features/delete.feature +7 -0
  37. data/docs/old_docs/features/edit.feature +7 -0
  38. data/docs/old_docs/features/list.feature +6 -0
  39. data/docs/old_docs/features/new.feature +7 -0
  40. data/docs/old_docs/features/step_definitions/delete_spec.rb +12 -0
  41. data/docs/old_docs/features/step_definitions/edit_spec.rb +14 -0
  42. data/docs/old_docs/features/step_definitions/list_spec.rb +10 -0
  43. data/docs/old_docs/features/step_definitions/new_spec.rb +12 -0
  44. data/docs/old_docs/features/support/env.rb +3 -0
  45. data/docs/old_docs/fukumori_symp/18_human_interface_fukumori_workshop.pdf +0 -0
  46. data/docs/old_docs/fukumori_symp/memo_perp_magician.pdf +0 -0
  47. data/docs/old_docs/fukumori_symp//347/237/245/350/255/230/343/201/256/347/233/264/344/272/244/350/243/234/347/251/272/351/226/223.png +0 -0
  48. data/exe/my_help +1 -142
  49. data/lib/my_help/cli.rb +106 -0
  50. data/lib/my_help/config.rb +70 -0
  51. data/lib/my_help/git_cli.rb +40 -0
  52. data/lib/my_help/init.rb +28 -0
  53. data/lib/my_help/list.rb +76 -0
  54. data/lib/my_help/md2hash.rb +54 -0
  55. data/lib/my_help/modify.rb +33 -0
  56. data/lib/my_help/org2hash.rb +45 -0
  57. data/lib/my_help/org2yml.rb +14 -14
  58. data/lib/my_help/version.rb +3 -1
  59. data/lib/my_help.rb +23 -7
  60. data/lib/templates/emacs.org +13 -14
  61. data/lib/templates/example.md +17 -0
  62. data/lib/templates/example.org +9 -0
  63. data/my_help.gemspec +27 -22
  64. data/tmp.txt +14 -0
  65. metadata +52 -26
  66. data/README.html +0 -443
  67. data/README.rdoc +0 -6
  68. data/bin/my_help_thor +0 -66
  69. data/exe/my_help_gli +0 -82
  70. data/lib/my_help/my_help_controll.rb +0 -222
  71. data/lib/my_help/tomo_help_controll.rb +0 -0
  72. data/lib/templates/help_template.org +0 -8
data/exe/my_help CHANGED
@@ -1,145 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- require 'thor'
3
2
  require 'my_help'
4
- require 'colorize'
5
- require 'command_line/global'
6
3
 
7
- class MyCLI < Thor
8
- desc('setup', 'set up the test database')
9
- def setup(*args)
10
- $control = MyHelp::Control.new()
11
- end
12
-
13
- desc "list [HELP] [ITEM]", "list all helps, specific HELP, or ITEM"
14
- def list(*args)
15
- invoke :setup
16
- file = args[0]
17
- item = args[1]
18
- if file.nil?
19
- puts $control.list_all.blue # list []
20
- elsif item.nil?
21
- begin
22
- puts $control.list_help(file) # list [file]
23
- rescue => e
24
- puts e.to_s.red
25
- end
26
- else
27
- begin
28
- puts $control.show_item(file, item) # list [file] [item]
29
- rescue => e
30
- puts e.to_s.red
31
- end
32
- end
33
- end
34
-
35
- desc "version", "show version"
36
- def version
37
- invoke :setup
38
- puts MyHelp::VERSION
39
- end
40
-
41
- desc "set_editor EDITOR_NAME", "set editor to EDITOR_NAME"
42
- def set_editor(editor_name)
43
- invoke :setup
44
- $control.set_editor(editor_name)
45
- end
46
-
47
- desc "edit HELP", "edit HELP"
48
- def edit(help_name)
49
- invoke :setup
50
- $control.edit_help(help_name)
51
- end
52
-
53
- desc "new HELP", "make new HELP"
54
- def new(help_name)
55
- invoke :setup
56
- $control.init_help(help_name)
57
- end
58
-
59
- desc "delete HELP", "delete HELP"
60
- def delete(help_name)
61
- invoke :setup
62
- $control.delete_help(help_name)
63
- end
64
-
65
- =begin
66
- desc "git [push|pull]", "git push or pull"
67
- def git(push_or_pull)
68
- p push_or_pull
69
- invoke :setup
70
- dir = $control.local_help_dir
71
- Dir.chdir(dir) do
72
- case push_or_pull
73
- when 'push'
74
- comms = ['git add -A',
75
- "git commit -m 'git push from my_help'",
76
- "git push origin master"]
77
- when 'pull'
78
- comms = ['git pull origin master']
79
- else
80
- raise "my_help git was called by the other than 'push or pull'"
81
- end
82
- comms.each do |comm|
83
- c = command_line(comm)
84
- puts c.stdout.blue
85
- puts c.stderr.red
86
- end
87
- end
88
- end
89
- =end
90
-
91
- desc "git [push|pull]", "git push or pull"
92
- def git(push_or_pull,*args)
93
- p push_or_pull
94
- invoke :setup
95
- argument_size = args.size
96
- Dir.chdir($control.local_help_dir) do
97
- case push_or_pull
98
- when 'push'
99
- if argument_size == 0
100
- comms = ['git add -A',
101
- "git commit -m 'git push from my_help'",
102
- "git push origin master"]
103
- else
104
- p args
105
- argument_size.times do |i|
106
- orgfile = args[i] + '.org'
107
- file = File.join($control.local_help_dir,orgfile)
108
- if File.exist?(file) == true
109
- puts orgfile.green
110
- dir = $control.local_help_dir
111
- Dir.chdir(dir) do
112
- comm = 'git add ' + file
113
- puts c
114
- c = command_line(comm)
115
- puts c.stdout.blue
116
- puts c.stderr.red
117
- end
118
- else
119
- puts (orgfile + " does not existed").red
120
- end
121
- end
122
- comms = ["git commit -m 'git push from my_help'",
123
- "git push origin master"]
124
- end
125
- when 'pull'
126
- comms = ['git pull origin master']
127
- else
128
- raise "my_help git was called by the other than 'push or pull'"
129
- end
130
- comms.each do |comm|
131
- puts comm
132
- c = command_line(comm)
133
- puts c.stdout.blue
134
- puts c.stderr.red
135
- end
136
- end
137
- end
138
- # desc "search {find_char}", "search FIND_CHAR"
139
- # def search(find_char)
140
- # invoke :setup
141
- # $control.search_help(find_char)
142
- # end
143
- end
144
-
145
- MyCLI.start(ARGV)
4
+ MyHelp::CLI.start(ARGV)
@@ -0,0 +1,106 @@
1
+ module MyHelp
2
+ class CLI < Thor
3
+ include GetConfig
4
+ class_option :help_dir, :type => :string
5
+ # option :help_dir, :type => :string
6
+ # option :layer, :type => :numeric
7
+
8
+ # THOR to SILENCE DEPRECATION
9
+ # https://qiita.com/tbpgr/items/5edb1454634157ff816d
10
+ class << self
11
+ def exit_on_failure?
12
+ true
13
+ end
14
+ end
15
+
16
+ desc "version", "show version"
17
+
18
+ def version
19
+ puts VERSION
20
+ end
21
+
22
+ desc "git [pull|push]", "git operations"
23
+ subcommand "git", Git
24
+
25
+ desc "init", "initialize my_help environment"
26
+
27
+ def init(*args)
28
+ config = get_config # for using methods in Config
29
+ #config.ask_default
30
+ init = Init.new(config)
31
+ raise "Local help dir exist." if init.help_dir_exist?
32
+ puts "Choose default markup '.org' [Y or .md]? "
33
+ response = $stdin.gets.chomp
34
+ config.configure(:ext => response) unless response.upcase[0] == "Y"
35
+ init.mk_help_dir
36
+ config.save_config
37
+ init.cp_templates
38
+ puts "If you want change editor use my_help set editor code."
39
+ end
40
+
41
+ desc "set [:key] [VAL]", "set editor or ext"
42
+
43
+ def set(*args)
44
+ config = get_config # for using methods in Config
45
+ key = args[0] || ""
46
+ config.configure(key.to_sym => args[1])
47
+ config.save_config
48
+ conf_file_path = config[:conf_file]
49
+ puts "conf_file_path: %s" % conf_file_path
50
+ puts File.read(conf_file_path)
51
+ end
52
+
53
+ desc "list [HELP] [ITEM]", "list helps"
54
+ # option :help_dir, :type => :string
55
+ option :layer, :type => :numeric
56
+ # use method_options [[https://github.com/rails/thor/wiki/Method-Options]]
57
+ def list(*args)
58
+ config = get_config
59
+ help_dir = options["help_dir"] || config[:local_help_dir]
60
+ layer = options["layer"] || 1
61
+ puts List.new(help_dir,
62
+ config[:ext],
63
+ layer).list(*args.join(" "))
64
+ end
65
+
66
+ desc "edit [HELP]", "edit help"
67
+
68
+ def edit(*args)
69
+ c = get_config
70
+ help_name = args[0]
71
+ Modify.new(c).edit(help_name)
72
+ end
73
+
74
+ desc "new [HELP]", "mk new HELP"
75
+
76
+ def new(*args)
77
+ c = get_config
78
+ help_name = args[0]
79
+ help_file = File.join(c[:local_help_dir], help_name + c[:ext])
80
+ Modify.new(c).new(help_file)
81
+ # puts res.stdout
82
+ end
83
+
84
+ desc "delete [HELP]", "delete HELP"
85
+
86
+ def delete(*args)
87
+ c = get_config
88
+ help_name = args[0]
89
+ help_file = File.join(c[:local_help_dir], help_name + c[:ext])
90
+ puts "Are you sure to delete #{help_file}? [YN]"
91
+ responce = $stdin.gets.chomp
92
+ if responce.upcase[0] == "Y"
93
+ Modify.new(c).delete(help_file)
94
+ else
95
+ puts "Leave #{help_file} exists."
96
+ end
97
+ end
98
+
99
+ desc "hello", "hello"
100
+
101
+ def hello
102
+ name = $stdin.gets.chomp
103
+ puts("Hello #{name}.")
104
+ end
105
+ end
106
+ end
@@ -0,0 +1,70 @@
1
+ module MyHelp
2
+
3
+ # make @config from default and load yaml
4
+ # as shown
5
+ # https://stackoverflow.com/questions/6233124/where-to-place-access-config-file-in-gem
6
+ class Config
7
+ attr_reader :valid_config_keys
8
+ # Configuration defaults
9
+ def initialize(conf_path = nil)
10
+ conf_path ||= ENV["HOME"]
11
+ local_help_dir = File.join(conf_path, ".my_help")
12
+ @config = {
13
+ template_dir: File.expand_path("../templates", __dir__),
14
+ local_help_dir: local_help_dir,
15
+ conf_file: File.join(local_help_dir, ".my_help_conf.yml"),
16
+ editor: ENV["EDITOR"] || "emacs",
17
+ ext: ".org",
18
+ verbose: false,
19
+ }
20
+ @valid_config_keys = @config.keys
21
+ configure_with(@config[:conf_file])
22
+ # YAML.dump(@config, File.open(@config[:conf_file], 'w'))
23
+ # no good for multiple testers.
24
+ end
25
+
26
+ # Configure through hash
27
+ def configure(opts = nil)
28
+ return if opts == nil
29
+ opts.each do |k, v|
30
+ if @valid_config_keys.include? k.to_sym
31
+ @config[k.to_sym] = v
32
+ elsif k == "".to_sym
33
+ print "Valid key words are follows:"
34
+ p @valid_config_keys
35
+ else
36
+ raise KeyError.new("Error: keyword '#{k}' is invalid",
37
+ receiver: @config,
38
+ key: k)
39
+ end
40
+ end
41
+ @config
42
+ end
43
+
44
+ # Configure through yaml file
45
+ def configure_with(path)
46
+ begin
47
+ config = YAML.safe_load(IO.read(path),
48
+ permitted_classes: [Symbol])
49
+ rescue Errno::ENOENT => e
50
+ message = "WARNING: #{e.message}.\nUsing default conf."
51
+ $stderr.puts message if @config[:verbose]
52
+ rescue Psych::SyntaxError => e
53
+ message = "WARNING: #{e.message}.\nUsing default conf."
54
+ $stderr.puts message if @config[:verbose]
55
+ end
56
+ configure(config)
57
+ end
58
+
59
+ # save config in @config[:conf_file]
60
+ def save_config()
61
+ File.write(@config[:conf_file], YAML.dump(config))
62
+ end
63
+
64
+ attr_reader :config
65
+
66
+ def [](sym)
67
+ @config[sym]
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,40 @@
1
+ module MyHelp
2
+ module GetConfig
3
+ def get_config #(args)
4
+ parent_help_dir = options["help_dir"] || ""
5
+ parent_help_dir = ENV["HOME"] unless File.exist?(parent_help_dir)
6
+ return Config.new(parent_help_dir)
7
+ end
8
+ end
9
+
10
+ class Git < Thor
11
+ include MyHelp::GetConfig
12
+
13
+ desc "pull", "pull my helps"
14
+
15
+ def pull
16
+ puts "called my_help git pull"
17
+ config = get_config
18
+ help_dir = config[:local_help_dir]
19
+ puts "on the target git directory : %s" % help_dir
20
+ Dir.chdir(help_dir) do
21
+ system "git pull origin main"
22
+ end
23
+ end
24
+
25
+ desc "push", "push my helps"
26
+
27
+ def push
28
+ puts "called my_help git push"
29
+ config = get_config
30
+ help_dir = config[:local_help_dir]
31
+ puts "on the target git directory : %s" % help_dir
32
+ Dir.chdir(help_dir) do
33
+ system "git add -A"
34
+ system "git commit -m 'auto commit from my_help'"
35
+ system "git pull origin main"
36
+ system "git push origin main"
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,28 @@
1
+ module MyHelp
2
+ class Init
3
+ def initialize(config)
4
+ @config = config
5
+ end
6
+
7
+ def help_dir_exist?
8
+ File.exist?(@config[:local_help_dir])
9
+ end
10
+
11
+ def check_conf_exist
12
+ File.exist?(@config[:conf_file])
13
+ end
14
+
15
+ def mk_help_dir
16
+ FileUtils.mkdir(@config[:local_help_dir])
17
+ end
18
+
19
+ def cp_templates
20
+ target_dir = @config[:local_help_dir]
21
+ src_dir = @config[:template_dir]
22
+ ext = @config[:ext]
23
+ Dir.glob(File.join(src_dir, "*#{ext}")).each do |file|
24
+ FileUtils.cp(file, target_dir, verbose: false)
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,76 @@
1
+ require_relative "./org2yml"
2
+ #require "colorize"
3
+ require "colorized_string"
4
+
5
+ module MyHelp
6
+ # Your code goes here...
7
+ class List
8
+ def initialize(path = "", ext = ".org", layer = 1)
9
+ @path = path
10
+ @ext = ext
11
+ p @layer = layer
12
+ end
13
+
14
+ def list(help_options = "", level = 0)
15
+ name, item = help_options.split(" ")
16
+ if item == nil && name == nil
17
+ list_helps()
18
+ else
19
+ path = File.exists?(name + @ext) ? name + @ext :
20
+ File.join(@path, name + @ext)
21
+ list_help_with(path, name, item)
22
+ end
23
+ end
24
+
25
+ def read_help(file)
26
+ info = {}
27
+ info[:items] = Org2Hash.new(File.read(file)).contents
28
+ info[:name] = File.basename(file).split(".")[0]
29
+ return info
30
+ end
31
+
32
+ def list_helps()
33
+ files = File.join(@path, "*#{@ext}")
34
+ Dir.glob(files).inject("") do |out, file|
35
+ # p [out, file]
36
+ help_info = read_help(file)
37
+ out << "%10s: %s\n" % [help_info[:name],
38
+ help_info[:items]["head"].split("\n")[0]]
39
+ end
40
+ end
41
+
42
+ # defaultで@path/name.@extのヘルプを読み込んで,itemを表示
43
+ #
44
+ def list_help_with(path, name, item)
45
+ @help_info = read_help(path)
46
+ output = ColorizedString["my_help called with name : #{name}, item : #{item}\n"].colorize(:cyan)
47
+
48
+ if item == nil
49
+ @help_info[:items].each_pair do |item, val|
50
+ item, desc = item.split(":")
51
+ desc ||= ""
52
+ output << "- %20s : %s\n" % [item, desc]
53
+ end
54
+ else
55
+ output << find_near(item)
56
+ end
57
+ return output
58
+ end
59
+
60
+ def find_near(input_item)
61
+ candidates = []
62
+ @help_info[:items].each_pair do |item, val|
63
+ candidates << item if item.include?(input_item)
64
+ end
65
+ if candidates.size == 0
66
+ "Can't find similar item name with : #{input_item}"
67
+ else
68
+ contents = candidates.collect do |near_item|
69
+ ColorizedString["item : #{near_item} \n"].colorize(:cyan) +
70
+ @help_info[:items][near_item]
71
+ end
72
+ contents.join("\n")
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,54 @@
1
+ module MyHelp
2
+ class Md2Hash
3
+ attr_accessor :md_text, :contents, :results, :opts
4
+
5
+ def initialize(md_text = "", **opts)
6
+ @opts = opts
7
+ @md_text = md_text.split("\n")
8
+ @contents = fsm
9
+ #fsm()
10
+ end
11
+
12
+ TRANS = {
13
+ #current
14
+ # new action
15
+ #-----------------------------------
16
+ init: {
17
+ #"*" => [:init, :ignore],
18
+ :default => [:init, :ignore],
19
+ "#" => [:reading, :item],
20
+ },
21
+ reading: {
22
+ "#" => [:reading, :item],
23
+ :default => [:reading, :data],
24
+ },
25
+ }
26
+
27
+ def fsm
28
+ contents = {}
29
+ state = :init
30
+ @results = []
31
+ item = ""
32
+ @md_text.each do |line|
33
+ state, action = TRANS[state][line[0]] || TRANS[state][:default]
34
+
35
+ if line[0..1] == "#+" # line[1] != " "
36
+ state = :init
37
+ action = :ignore
38
+ end
39
+
40
+ results << [line, state, action]
41
+
42
+ case action
43
+ when :ignore
44
+ when :item
45
+ item = line.match(/^# (.+)/)[1]
46
+ contents[item] = []
47
+ when :data
48
+ contents[item] << line
49
+ end
50
+ end
51
+ return contents
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,33 @@
1
+ module MyHelp
2
+ class Modify
3
+ def initialize(conf)
4
+ @conf = conf
5
+ end
6
+
7
+ def new(help_file)
8
+ target = help_file
9
+ source = File.join(@conf[:template_dir], "example.org")
10
+ FileUtils.cp(source, target, verbose: @conf[:verbose])
11
+ end
12
+
13
+ def delete(help_file)
14
+ if File.exist?(help_file)
15
+ FileUtils.rm(help_file, verbose: @conf[:verbose])
16
+ else
17
+ puts "file #{help_file} does not exist."
18
+ end
19
+ end
20
+
21
+ def edit(help_name)
22
+ p help_file = File.join(@conf[:local_help_dir],
23
+ help_name + @conf[:ext])
24
+ if File.exist?(help_file)
25
+ p comm = "#{@conf[:editor]} #{help_file}"
26
+ system(comm)
27
+ else
28
+ puts "file #{help_file} does not exist,"
29
+ puts "make #{help_name} first by 'new' command."
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,45 @@
1
+ module MyHelp
2
+ # get org and trans it to hash by FSM
3
+ class Org2Hash
4
+ attr_accessor :contents, :text
5
+ # current_state => [ new_state, action ]
6
+ TRANSITIONS = {
7
+ :header_read => {
8
+ "* " => [:contents_read, :start_new_item],
9
+ :default => [:header_read, :ignore],
10
+ },
11
+ :contents_read => {
12
+ "* " => [:contents_read, :start_new_item],
13
+ :default => [:contents_read, :add_contents],
14
+ },
15
+ }
16
+
17
+ def initialize(org_text)
18
+ @text = org_text
19
+ @contents = Hash.new
20
+ simple_fsm()
21
+ end
22
+
23
+ def simple_fsm()
24
+ state = :header_read
25
+ item = ""
26
+ @text.split("\n").each do |line|
27
+ next if line.size < 1
28
+ state, action = TRANSITIONS[state][line[0..1]] ||
29
+ TRANSITIONS[state][:default]
30
+ case action
31
+ when :ignore
32
+ when :start_new_item
33
+ item = read_item(line)
34
+ @contents[item] = ""
35
+ when :add_contents
36
+ @contents[item] += line + "\n"
37
+ end
38
+ end
39
+ end
40
+
41
+ def read_item(line)
42
+ line.match(/\* (.+)/)[1]
43
+ end
44
+ end
45
+ end
@@ -1,24 +1,24 @@
1
1
  # -*- coding: utf-8 -*-
2
- require 'yaml'
3
- require 'pp'
2
+ require "yaml"
3
+ require "pp"
4
4
 
5
- class OrgToYaml
5
+ class Org2Yaml
6
6
  attr_accessor :help_cont
7
7
 
8
8
  def initialize(file)
9
9
  @help_cont = {} #{ head: [File.basename(file, '.org')] }
10
10
  @head_sym = nil
11
- @conts = ''
11
+ @conts = ""
12
12
  @short_stored = []
13
13
  org_to_yaml(File.readlines(file))
14
14
  end
15
15
 
16
16
  def make_options(line)
17
- head, desc = line.split(':')
17
+ head, desc = line.split(":")
18
18
  desc ||= head.to_s
19
19
  short = "-#{head[0]}"
20
- if @short_stored.include?(short) or head=='license' or head=='head'
21
- short = ''
20
+ if @short_stored.include?(short) or head == "license" or head == "head"
21
+ short = ""
22
22
  else
23
23
  @short_stored << short
24
24
  end
@@ -27,28 +27,28 @@ class OrgToYaml
27
27
 
28
28
  def next_cont(head)
29
29
  @help_cont[@head_sym][:cont] = @conts if @head_sym
30
- return if head == 'EOF'
31
- @conts = ''
30
+ return if head == "EOF"
31
+ @conts = ""
32
32
  @head_sym = head.to_sym
33
33
  @help_cont[@head_sym] = {
34
- opts: make_options(head), title: head, cont: ''
34
+ opts: make_options(head), title: head, cont: "",
35
35
  }
36
36
  end
37
37
 
38
38
  def org_to_yaml(lines)
39
39
  lines.each do |line|
40
- m = line.force_encoding(Encoding::UTF_8).match(/^\* (.+)/u)
40
+ m = line.force_encoding(Encoding::UTF_8).match(/^(\*+) (.+)/u)
41
41
  if m
42
- next_cont m[1]
42
+ next_cont m[2]
43
43
  else
44
44
  @conts << line
45
45
  end
46
46
  end
47
- next_cont 'EOF'
47
+ next_cont "EOF"
48
48
  end
49
49
  end
50
50
 
51
- if $PROGRAM_NAME == __FILE__
51
+ if $PROGRAM_NAME == __FILE__
52
52
  helps = OrgToYaml.new(ARGV[0])
53
53
  pp helps.help_cont
54
54
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module MyHelp
2
- VERSION = "0.8.6"
4
+ VERSION = "1.1a"
3
5
  end