mkmatter 3.0.43 → 3.0.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.gitignore +0 -1
- data/.gitlab-ci.yml +1 -1
- data/.travis.yml +4 -6
- data/Gemfile +0 -1
- data/Gemfile.lock +76 -0
- data/README.md +2 -13
- data/Rakefile +6 -4
- data/bin/mkmatter +1 -1
- data/bin/setup +5 -6
- data/lib/minitest/xs_and_os_plugin.rb +206 -0
- data/lib/mkmatter/answers.rb +0 -2
- data/lib/mkmatter/cli/app.rb +22 -23
- data/lib/mkmatter/cli/descriptions.rb +12 -7
- data/lib/mkmatter/cli/methods.rb +70 -71
- data/lib/mkmatter/cli/runner.rb +1 -1
- data/lib/mkmatter/cli/subs/new.rb +9 -11
- data/lib/mkmatter/cli/subs/tags.rb +30 -11
- data/lib/mkmatter/cli/tags.rb +50 -37
- data/lib/mkmatter/cli.rb +2 -2
- data/lib/mkmatter/common.rb +5 -12
- data/lib/mkmatter/version.rb +1 -1
- data/mkmatter.gemspec +13 -8
- metadata +30 -48
data/lib/mkmatter/cli/methods.rb
CHANGED
@@ -2,86 +2,85 @@ require 'highline'
|
|
2
2
|
require 'find'
|
3
3
|
require 'yaml'
|
4
4
|
module Mkmatter
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
class Methods
|
6
|
+
# @return [Boolean] whether current directory is inside a jekyll site source directory
|
7
|
+
def Methods.check_if_jekyll
|
8
|
+
cwd = Pathname.new('.')
|
9
|
+
cwd.ascend do |path|
|
10
|
+
if path.join('_config.yml').exist?
|
11
|
+
break true
|
12
|
+
elsif cwd.to_s == '/'
|
13
|
+
# hit root, stop
|
14
|
+
break false
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
# @return [Pathname] path of current jekyll site source roo
|
20
|
+
def Methods.get_jekyll_root
|
21
|
+
if Methods.check_if_jekyll
|
22
|
+
cwd = Pathname.new('.').realdirpath
|
9
23
|
cwd.ascend do |path|
|
10
24
|
if path.join('_config.yml').exist?
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
break false
|
25
|
+
return path
|
26
|
+
else
|
27
|
+
next
|
15
28
|
end
|
16
29
|
end
|
17
30
|
end
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
next
|
28
|
-
end
|
29
|
-
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# @return [NilClass] nil
|
34
|
+
def Methods.launch_editor(editor, file_path)
|
35
|
+
hl = HighLine.new($stdin, $stderr, 80)
|
36
|
+
if file_path
|
37
|
+
if hl.agree("Would you like to open an editor? ('editor' command) ", true)
|
38
|
+
pid = spawn("#{} #{file_path}")
|
39
|
+
Process.wait pid
|
30
40
|
end
|
31
41
|
end
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
end
|
42
|
+
end
|
43
|
+
|
44
|
+
# @param [String] type type of content
|
45
|
+
# @param [String] key root yaml directive to return
|
46
|
+
# @return [Hash] front matter
|
47
|
+
def Methods.find_front_matter(type, key)
|
48
|
+
unless type =~ /^(post|page)$/
|
49
|
+
$stderr.puts "#{HighLine.color('Error', :red, :bold)}: Invalid Argument, allowed values: post, page"
|
50
|
+
exit 1
|
42
51
|
end
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
Find.prune if path =~ /(vendor\/bundle)/ # don't include vendor/
|
63
|
-
Find.prune if path =~ /(\/tag\/)/ # don't include our own tags
|
64
|
-
html_front_matter << path if path =~ /.*\.html$/
|
65
|
-
md_front_matter << path if path =~ /.*\.md$/
|
66
|
-
end
|
67
|
-
|
68
|
-
when 'post'
|
69
|
-
Find.find(Pathname(Methods.get_jekyll_root).join('_posts').to_path) do |path|
|
70
|
-
html_front_matter << path if path =~ /.*\.html$/
|
71
|
-
md_front_matter << path if path =~ /.*\.md$/
|
72
|
-
end
|
73
|
-
else
|
74
|
-
# noop
|
75
|
-
end
|
76
|
-
files['html'] = html_front_matter
|
77
|
-
files['md'] = md_front_matter
|
78
|
-
files.each do |ftype, array|
|
79
|
-
array.each do |ele|
|
80
|
-
front_matter[ele] = YAML.load_file(ele)[key]
|
52
|
+
files = {}
|
53
|
+
html_front_matter = []
|
54
|
+
md_front_matter = []
|
55
|
+
front_matter = {}
|
56
|
+
case type
|
57
|
+
when 'page'
|
58
|
+
Find.find(Methods.get_jekyll_root.to_s) do |path|
|
59
|
+
Find.prune if path =~ /(_includes|_layouts|_docs|_site)/ # don't include layouts, includes, site, docs
|
60
|
+
Find.prune if path =~ /(_posts)/ # don't include our own posts either
|
61
|
+
Find.prune if path =~ /(vendor\/bundle)/ # don't include vendor/
|
62
|
+
Find.prune if path =~ /(\/tag\/)/ # don't include our own tags
|
63
|
+
html_front_matter << path if path =~ /.*\.html$/
|
64
|
+
md_front_matter << path if path =~ /.*\.md$/
|
65
|
+
end
|
66
|
+
|
67
|
+
when 'post'
|
68
|
+
Find.find(Pathname(Methods.get_jekyll_root).join('_posts').to_path) do |path|
|
69
|
+
html_front_matter << path if path =~ /.*\.html$/
|
70
|
+
md_front_matter << path if path =~ /.*\.md$/
|
81
71
|
end
|
72
|
+
else
|
73
|
+
# noop
|
74
|
+
end
|
75
|
+
files['html'] = html_front_matter
|
76
|
+
files['md'] = md_front_matter
|
77
|
+
files.each do |ftype, array|
|
78
|
+
array.each do |ele|
|
79
|
+
front_matter[ele] = YAML.load_file(ele)[key]
|
82
80
|
end
|
83
|
-
front_matter.select! {|k, v| !v.nil?}
|
84
|
-
front_matter
|
85
81
|
end
|
82
|
+
front_matter.select! {|k, v| !v.nil?}
|
83
|
+
front_matter
|
86
84
|
end
|
87
|
-
end
|
85
|
+
end
|
86
|
+
end
|
data/lib/mkmatter/cli/runner.rb
CHANGED
@@ -24,7 +24,7 @@ module Mkmatter
|
|
24
24
|
# The ruby interpreter would pipe this to STDERR and exit 1 in the case of an unhandled exception
|
25
25
|
b = e.backtrace
|
26
26
|
@stderr.puts("#{b.shift}: #{e.message} (#{e.class})")
|
27
|
-
@stderr.puts(b.map {|s| "\tfrom #{s}"}.join("\n"))
|
27
|
+
@stderr.puts(b.map { |s| "\tfrom #{s}" }.join("\n"))
|
28
28
|
1
|
29
29
|
rescue SystemExit => e
|
30
30
|
e.status
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'highline'
|
2
|
+
require 'thor'
|
2
3
|
|
3
4
|
require 'mkmatter/cli/descriptions'
|
4
5
|
require 'mkmatter/cli/methods'
|
@@ -10,7 +11,7 @@ module Mkmatter
|
|
10
11
|
# Generate 'New' Content
|
11
12
|
class NewContent < Thor
|
12
13
|
include Thor::Actions
|
13
|
-
HILINE = HighLine.new($stdin, $stderr,
|
14
|
+
HILINE = HighLine.new($stdin, $stderr, 40)
|
14
15
|
option :publish, :type => :boolean
|
15
16
|
option :file, :type => :boolean
|
16
17
|
desc 'page [options]', 'make front matter (and possibly content) for a jekyll page'
|
@@ -18,9 +19,8 @@ module Mkmatter
|
|
18
19
|
|
19
20
|
def page
|
20
21
|
if options[:file]
|
21
|
-
|
22
22
|
if Mkmatter::Methods.check_if_jekyll
|
23
|
-
@questions = Mkmatter::Questions::Page.new(
|
23
|
+
@questions = Mkmatter::Questions::Page.new(HILINE).ask
|
24
24
|
answers = Mkmatter::Answers.new(@questions, options.fetch(:publish, nil))
|
25
25
|
filename = answers.title.to_slug + '.' + answers.file_format.downcase
|
26
26
|
path = Pathname("./#{filename}").realdirpath
|
@@ -46,7 +46,7 @@ module Mkmatter
|
|
46
46
|
fd.puts answers.to_h.stringify_keys.to_yaml(indentation: 2)
|
47
47
|
fd.puts '---'
|
48
48
|
end
|
49
|
-
Mkmatter::Methods.launch_editor(path)
|
49
|
+
Mkmatter::Methods.launch_editor(options[:editor], path)
|
50
50
|
else
|
51
51
|
puts "Not in a Jekyll directory. (no '_config.yml' in any parent directory)"
|
52
52
|
exit 1
|
@@ -71,7 +71,7 @@ module Mkmatter
|
|
71
71
|
if options[:draft] and options[:file]
|
72
72
|
|
73
73
|
if Mkmatter::Methods.check_if_jekyll
|
74
|
-
@questions = Mkmatter::Questions::Post.new(
|
74
|
+
@questions = Mkmatter::Questions::Post.new(HILINE).ask
|
75
75
|
answers = Mkmatter::Answers.new(@questions, options[:publish])
|
76
76
|
file_folder = '_drafts'
|
77
77
|
filename = [].concat([answers.slug_date, '-', answers.title.to_slug, '.', answers.file_format.downcase]).join
|
@@ -99,7 +99,7 @@ module Mkmatter
|
|
99
99
|
fd.puts answers.to_h.stringify_keys.to_yaml(indentation: 2)
|
100
100
|
fd.puts '---'
|
101
101
|
end
|
102
|
-
Mkmatter::Methods.launch_editor(path)
|
102
|
+
Mkmatter::Methods.launch_editor(options[:editor], path)
|
103
103
|
else
|
104
104
|
puts "Not in a Jekyll directory. (no '_config.yml' in any parent directory)"
|
105
105
|
exit 1
|
@@ -107,7 +107,7 @@ module Mkmatter
|
|
107
107
|
elsif options[:file] and options[:draft].nil? or options[:draft] == false
|
108
108
|
|
109
109
|
if Mkmatter::Methods.check_if_jekyll
|
110
|
-
@questions = Mkmatter::Questions::Post.new(
|
110
|
+
@questions = Mkmatter::Questions::Post.new(HILINE).ask
|
111
111
|
answers = Mkmatter::Answers.new(@questions, options[:publish])
|
112
112
|
file_folder = '_posts'
|
113
113
|
filename = [].concat([answers.slug_date, '-', answers.title.to_slug, '.', answers.file_format.downcase]).join('')
|
@@ -137,21 +137,19 @@ module Mkmatter
|
|
137
137
|
fd.puts '---'
|
138
138
|
end
|
139
139
|
|
140
|
-
Mkmatter::Methods.launch_editor(path)
|
140
|
+
Mkmatter::Methods.launch_editor(options[:editor], path)
|
141
141
|
else
|
142
142
|
puts "Not in a Jekyll directory. (no '_config.yml' in any parent directory)"
|
143
143
|
exit 1
|
144
144
|
end
|
145
|
-
|
146
145
|
elsif options[:draft].nil? and options[:file].nil?
|
147
|
-
@questions = Mkmatter::Questions::Post.new(
|
146
|
+
@questions = Mkmatter::Questions::Post.new(HILINE).ask
|
148
147
|
answers = Mkmatter::Answers.new(@questions, options[:publish])
|
149
148
|
puts ''
|
150
149
|
puts answers.to_h.stringify_keys.to_yaml(indentation: 2)
|
151
150
|
puts '---'
|
152
151
|
|
153
152
|
end
|
154
|
-
|
155
153
|
end
|
156
154
|
end
|
157
155
|
end
|
@@ -8,7 +8,7 @@ module Mkmatter
|
|
8
8
|
class Tags < Thor
|
9
9
|
include Thor::Actions
|
10
10
|
HILINE = HighLine.new($stdin, $stderr, 80)
|
11
|
-
|
11
|
+
|
12
12
|
desc 'find [options] TYPE', 'find content of type TYPE'
|
13
13
|
# @param [String] type Type of content
|
14
14
|
def find(type)
|
@@ -17,7 +17,7 @@ module Mkmatter
|
|
17
17
|
table.title = 'Tags'
|
18
18
|
table.style.all_separators = true
|
19
19
|
table.headings = ["#{HILINE.color('Path from Jekyll Root', :bold)}", "#{HILINE.color('Tags', :bold)}"]
|
20
|
-
|
20
|
+
|
21
21
|
front_matter = Mkmatter::Methods.find_front_matter(type, 'tags')
|
22
22
|
front_matter.each do |path, tags|
|
23
23
|
path = path.gsub(/#{Mkmatter::Methods.get_jekyll_root}(\/.*)/, '\1')
|
@@ -29,29 +29,48 @@ module Mkmatter
|
|
29
29
|
$stderr.puts "#{HILINE.color('Error', :red, :bold)}: Not a Jekyll source directory (no '_config.yml' found in any parent directory)"
|
30
30
|
end
|
31
31
|
end
|
32
|
+
|
32
33
|
desc 'new [options] TAG', 'create a new tag'
|
33
34
|
# @param [String] tag Tag Name
|
34
35
|
def new_tag(tag)
|
35
36
|
if Mkmatter::Methods.check_if_jekyll
|
36
|
-
|
37
|
+
|
37
38
|
else
|
38
39
|
$stderr.puts "#{HILINE.color('Error', :red, :bold)}: Not a Jekyll source directory (no '_config.yml' found in any parent directory)"
|
39
40
|
end
|
40
41
|
end
|
42
|
+
|
41
43
|
desc 'gen [options]', 'generate tag files'
|
42
44
|
option(:'tag-index', type: :string, default: nil, desc: "configures whether generation of tag files will give them a layout file for a tag index, if you don't want generation to give layouts, omit --tag-index", aliases: %w(-i))
|
45
|
+
option(:'dry-run', type: :boolean, default: false, desc: 'Performs a dry run and prints out what it was going to do')
|
46
|
+
|
43
47
|
def gen # only used for posts
|
44
|
-
if
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
48
|
+
if options[:'dry-run']
|
49
|
+
if Mkmatter::Tags.has_tag_folder?
|
50
|
+
front_matter = Mkmatter::Methods.find_front_matter('post', 'tags')
|
51
|
+
tags = []
|
52
|
+
front_matter.each do |key, value|
|
53
|
+
tags << value
|
54
|
+
end
|
55
|
+
all_tags = tags.flatten.sort.uniq
|
56
|
+
Mkmatter::Tags.dry_gen all_tags
|
57
|
+
else
|
58
|
+
HILINE.say "<% color('Error', :red, :bold) %>: No tag folder"
|
49
59
|
end
|
50
|
-
all_tags = tags.flatten.sort.uniq
|
51
|
-
all_tags
|
52
60
|
else
|
53
|
-
|
61
|
+
if Mkmatter::Tags.has_tag_folder?
|
62
|
+
front_matter = Mkmatter::Methods.find_front_matter('post', 'tags')
|
63
|
+
tags = []
|
64
|
+
front_matter.each do |key, value|
|
65
|
+
tags << value
|
66
|
+
end
|
67
|
+
all_tags = tags.flatten.sort.uniq
|
68
|
+
Mkmatter::Tags.gen_post_tags all_tags
|
69
|
+
else
|
70
|
+
$stderr.puts "#{HILINE.color('Error', :red, :bold)}: Not a Jekyll source directory (no '_config.yml' found in any parent directory)"
|
71
|
+
end
|
54
72
|
end
|
73
|
+
|
55
74
|
end
|
56
75
|
end
|
57
76
|
end
|
data/lib/mkmatter/cli/tags.rb
CHANGED
@@ -1,7 +1,11 @@
|
|
1
1
|
require 'mkmatter/cli/methods'
|
2
|
-
|
2
|
+
require 'thor'
|
3
|
+
require 'front_matter_parser'
|
4
|
+
require 'active_support/inflector'
|
3
5
|
module Mkmatter
|
4
|
-
class Tags
|
6
|
+
class Tags < Thor
|
7
|
+
include Thor::Actions
|
8
|
+
HILINE = HighLine.new($stdin, $stderr, 80)
|
5
9
|
|
6
10
|
def Tags.has_tag_folder?
|
7
11
|
if Mkmatter::Methods.check_if_jekyll
|
@@ -15,51 +19,60 @@ module Mkmatter
|
|
15
19
|
end
|
16
20
|
end
|
17
21
|
|
18
|
-
|
22
|
+
# @param [Array] tags Array of tags to generate pages for
|
23
|
+
# @return [Boolean] whether generation was successful
|
24
|
+
def Tags.dry_gen(tags)
|
19
25
|
if Mkmatter::Methods.check_if_jekyll
|
20
26
|
if Tags.has_tag_folder?
|
21
|
-
|
27
|
+
tags.each do |tag|
|
28
|
+
file = "#{Mkmatter::Methods.get_jekyll_root}/tag/#{tag}.md"
|
29
|
+
puts <<-PUTS.strip_heredoc
|
30
|
+
---
|
31
|
+
|
32
|
+
title: #{tag.titleize}
|
33
|
+
tag: #{tag}
|
34
|
+
---
|
35
|
+
PUTS
|
36
|
+
end
|
22
37
|
else
|
23
38
|
end
|
24
39
|
end
|
25
40
|
end
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
Find.prune if path =~ /(_posts)/ # don't include our own posts either
|
42
|
-
Find.prune if path =~ /(vendor\/bundle)/ # don't include vendor/
|
43
|
-
Find.prune if path =~ /(\/tag\/)/ # don't include our own tags
|
44
|
-
html_front_matter << path if path =~ /.*\.html$/
|
45
|
-
md_front_matter << path if path =~ /.*\.md$/
|
46
|
-
end
|
47
|
-
|
48
|
-
when 'post'
|
49
|
-
Find.find(Pathname(Methods.get_jekyll_root).join('_posts').to_path) do |path|
|
50
|
-
html_front_matter << path if path =~ /.*\.html$/
|
51
|
-
md_front_matter << path if path =~ /.*\.md$/
|
41
|
+
|
42
|
+
def Tags.gen_post_tags(tags)
|
43
|
+
if Mkmatter::Methods.check_if_jekyll
|
44
|
+
if Tags.has_tag_folder?
|
45
|
+
tags.each do |tag|
|
46
|
+
file = "#{Mkmatter::Methods.get_jekyll_root}/tag/#{tag}.md"
|
47
|
+
self.new.create_file file do
|
48
|
+
<<-PUTS
|
49
|
+
---
|
50
|
+
#{tag_index unless tag_index.nil?}
|
51
|
+
title: #{tag.titleize}
|
52
|
+
tag: #{tag}
|
53
|
+
---
|
54
|
+
PUTS
|
55
|
+
end
|
52
56
|
end
|
53
57
|
else
|
54
|
-
# noop
|
55
|
-
end
|
56
|
-
files['html'] = html_front_matter
|
57
|
-
files['md'] = md_front_matter
|
58
|
-
files.each do |ftype, array|
|
59
|
-
array.each do |ele|
|
60
|
-
front_matter[ele] = FrontMatterParser::Parser.parse_file(ele, syntax_parser: :md, loader: yaml_loader)[key]
|
61
58
|
end
|
62
59
|
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def Tags.get_tags
|
63
|
+
yaml_loader = ->(string) {YAML.load(string)}
|
64
|
+
files = []
|
65
|
+
front_matter = {}
|
66
|
+
|
67
|
+
Find.find(Pathname(Methods.get_jekyll_root).join('_posts').to_path) do |path|
|
68
|
+
files << path if path =~ /.*(\.html|\.md)$/
|
69
|
+
end
|
70
|
+
files.each do |ele|
|
71
|
+
yaml = FrontMatterParser::Parser.parse_file(ele, syntax_parser: :md, loader: yaml_loader).front_matter
|
72
|
+
front_matter[ele] = yaml['tags'] if yaml['tags']
|
73
|
+
front_matter[ele] = yaml['tag'] if yaml['tag']
|
74
|
+
|
75
|
+
end
|
63
76
|
front_matter.select! {|k, v| !v.nil?}
|
64
77
|
front_matter
|
65
78
|
end
|
data/lib/mkmatter/cli.rb
CHANGED
data/lib/mkmatter/common.rb
CHANGED
@@ -8,7 +8,7 @@ module Mkmatter
|
|
8
8
|
# @return [String]
|
9
9
|
def get_title(hl)
|
10
10
|
title = hl.ask 'Title: '
|
11
|
-
if hl.agree("Would you like it 'titleized' (Title instead of title)?", true)
|
11
|
+
if hl.agree("Would you like it 'titleized' (Title instead of title)? ", true)
|
12
12
|
title.titleize
|
13
13
|
else
|
14
14
|
title
|
@@ -18,13 +18,13 @@ module Mkmatter
|
|
18
18
|
# @param [HighLine] hl A highline context
|
19
19
|
# @return [String]
|
20
20
|
def get_tags(hl)
|
21
|
-
hl.ask
|
21
|
+
hl.ask 'Tags? (this would be a comma separated list.) ', -> (str) {str.split(',')}
|
22
22
|
end
|
23
23
|
|
24
24
|
# @param [HighLine] hl A highline context
|
25
25
|
# @return [String]
|
26
26
|
def get_categories(hl)
|
27
|
-
hl.ask
|
27
|
+
hl.ask 'Categories? (space separated list) ', -> (str) {str.split(' ')}
|
28
28
|
end
|
29
29
|
|
30
30
|
# @param [HighLine] hl A highline context
|
@@ -42,10 +42,9 @@ module Mkmatter
|
|
42
42
|
m.choice :neither
|
43
43
|
m.prompt = '? '
|
44
44
|
end
|
45
|
-
case
|
46
|
-
when :neither
|
45
|
+
case
|
46
|
+
when timezone == :neither
|
47
47
|
custom = hl.ask('Other Time Zone: ', String)
|
48
|
-
else
|
49
48
|
end
|
50
49
|
if custom
|
51
50
|
hl.say('Checking TimeZone Validity')
|
@@ -71,11 +70,5 @@ module Mkmatter
|
|
71
70
|
menu.prompt = '? '
|
72
71
|
end
|
73
72
|
end
|
74
|
-
def get_keywords(hl)
|
75
|
-
hl.ask("Meta Keywords? (example: 'space 'spaced', comma separated, page keywords, goes here') ")
|
76
|
-
end
|
77
|
-
def get_description(hl)
|
78
|
-
hl.ask("Meta Description? (example: 'This page is a bunch of right nonsense.' ")
|
79
|
-
end
|
80
73
|
end
|
81
74
|
end
|
data/lib/mkmatter/version.rb
CHANGED
data/mkmatter.gemspec
CHANGED
@@ -29,7 +29,7 @@ Gem::Specification.new do |spec|
|
|
29
29
|
end
|
30
30
|
|
31
31
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
32
|
-
f.match(%r{^(test
|
32
|
+
f.match(%r{^(test)/})
|
33
33
|
end
|
34
34
|
spec.required_ruby_version = '~> 2'
|
35
35
|
spec.bindir = 'bin'
|
@@ -40,14 +40,19 @@ Gem::Specification.new do |spec|
|
|
40
40
|
spec.add_runtime_dependency 'activesupport', '~> 5.1'
|
41
41
|
spec.add_runtime_dependency 'git', '~> 1.3'
|
42
42
|
spec.add_runtime_dependency 'slugity', '~> 1.1'
|
43
|
-
spec.add_runtime_dependency 'thor', '~> 0.20
|
43
|
+
spec.add_runtime_dependency 'thor', '~> 0.20'
|
44
44
|
spec.add_runtime_dependency 'terminal-table', '~> 1.8'
|
45
45
|
spec.add_runtime_dependency 'os', '~> 1.0'
|
46
|
+
spec.add_runtime_dependency 'front_matter_parser', '~> 0.1'
|
47
|
+
spec.add_runtime_dependency 'rake', '~> 10.0'
|
48
|
+
spec.add_runtime_dependency 'micro_install', '~> 0.1.0'
|
46
49
|
spec.add_development_dependency 'bundler', '~> 1.16'
|
47
|
-
spec.add_development_dependency '
|
48
|
-
spec.add_development_dependency '
|
49
|
-
spec.
|
50
|
-
|
51
|
-
|
52
|
-
|
50
|
+
spec.add_development_dependency 'minitest', '~> 5'
|
51
|
+
spec.add_development_dependency 'minitest-reporters', '~> 1.1'
|
52
|
+
spec.post_install_message = [
|
53
|
+
"Thanks for installing 'mkmatter', It means a lot to me.",
|
54
|
+
"If you'd like to install 'micro', a text editor bundled with 'mkmatter'.",
|
55
|
+
"Then just run 'bundle exec micro-install' or 'micro-install',",
|
56
|
+
"depending on how you installed 'mkmatter'."
|
57
|
+
].join("\n")
|
53
58
|
end
|