mkmatter 3.0.45 → 3.1.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 2887153201c4031bf7657eaf3034510b57a124fb
4
- data.tar.gz: ee281dfd39a59fbc5a7549cdb8fffe6bec2ebc51
2
+ SHA256:
3
+ metadata.gz: ee0e5f931dc430239fbe47d840508ff4efa2b3341003126283180ac6dffac7df
4
+ data.tar.gz: 2a0bcef90d6d9430ccc125b3e9779dd65e8e2b9c7d290a34e69cfa29dd8da20e
5
5
  SHA512:
6
- metadata.gz: 70b2fb1a3ba7e594eb8f6fdaee2f36e3dc32388c05c0f265fc5aaa588cca0c2f19d01b698414962c469dc2053a5e08858f73d06b02229d21d97e6824b12d4cd3
7
- data.tar.gz: 0e6424d949d23738c79ff423b5a5513525c3f98db1c6b065459e37b68428a4fc70589774f159904e04ec7bfd340351fb37e8d3a14627eed64c8048c5bfd557c4
6
+ metadata.gz: db663f58eb5df4ad445cec55c47a0a129e15f436aa7fa9d2a09c7c7b304e490408eec5dfe2f8e2dfd2800ce52790b9306f5041c60f904c09100a4c04c3181b8e
7
+ data.tar.gz: 033ad62cd7f42342c7216bbf885ff83a90700ae2e495864651c5ca79ee5bb39325f3470aa846ab2c6ec5ce4c4aacfbf06c6010311e14023da36c094d245151a7
@@ -1,6 +1,6 @@
1
1
  language: ruby
2
2
  script: echo "Running tests against $(ruby -v) ..."
3
- bundler_args: --jobs=6 --retry=3 --standalone --deployment
3
+ bundler_args: --jobs=6 --retry=3 --standalone
4
4
  notifications:
5
5
  irc:
6
6
  channels:
@@ -50,4 +50,4 @@ jobs:
50
50
  repo: IotaSpencer/mkmatter
51
51
  branch: master
52
52
  allow_failures:
53
- - rvm: ruby-head
53
+ - rvm: ruby-head
@@ -5,9 +5,9 @@ module Minitest
5
5
  def plugin_xs_and_os_init
6
6
  Minitest.reporter.reporters.clear
7
7
  Minitest.reporter << TravisReporter.new(options[:io], options)
8
-
8
+
9
9
  end
10
-
10
+
11
11
  class TravisReporter < Minitest::Reporters::BaseReporter
12
12
  @@color_for_result_code = {
13
13
  '.' => :green,
@@ -27,13 +27,13 @@ module Minitest
27
27
  yellow: 33,
28
28
  blue: 34
29
29
  }
30
-
30
+
31
31
  def initialize(*)
32
32
  super
33
33
  @color_enabled = io.respond_to?(:tty?) && io.tty?
34
-
34
+
35
35
  end
36
-
36
+
37
37
  def record(result)
38
38
  super
39
39
  puts
@@ -44,46 +44,46 @@ module Minitest
44
44
  print_result_code(result.result_code)
45
45
  print ']'
46
46
  end
47
-
47
+
48
48
  def start
49
49
  super
50
50
  io.print "Run options: #{options[:args]} / "
51
51
  io.print 'Running:'
52
52
  end
53
-
53
+
54
54
  def report
55
55
  super
56
56
  io.sync = true
57
-
57
+
58
58
  failing_results = results.reject(&:skipped?)
59
59
  skipped_results = results.select(&:skipped?)
60
-
60
+
61
61
  color = :green
62
62
  color = :yellow if skipped_results.any?
63
63
  color = :red if failing_results.any?
64
-
64
+
65
65
  if failing_results.any? || skipped_results.any?
66
66
  failing_results.each.with_index(1) { |result, index| display_failing(result, index) }
67
67
  skipped_results.each.with_index(failing_results.size + 1) { |result, index| display_skipped(result, index) }
68
68
  end
69
-
69
+
70
70
  io.print "\n\n"
71
71
  io.puts statistics
72
72
  io.puts color(summary, color)
73
-
73
+
74
74
  if failing_results.any?
75
75
  io.puts "\nFailed Tests:\n"
76
76
  failing_results.each { |result| display_replay_command(result) }
77
77
  io.puts "\n\n"
78
78
  end
79
79
  end
80
-
81
-
80
+
81
+
82
82
  def statistics
83
83
  'Finished in %.6fs, %.4f runs/s, %.4f assertions/s.' %
84
84
  [total_time, count / total_time, assertions / total_time]
85
85
  end
86
-
86
+
87
87
  def summary # :nodoc:
88
88
  [
89
89
  pluralize('run', count),
@@ -93,23 +93,23 @@ module Minitest
93
93
  pluralize('skip', skips)
94
94
  ].join(', ')
95
95
  end
96
-
96
+
97
97
  def indent(text)
98
98
  text.gsub(/^/, ' ')
99
99
  end
100
-
100
+
101
101
  def display_failing(result, index)
102
102
  backtrace = backtrace(result.failure.backtrace)
103
103
  message = result.failure.message
104
104
  message = message.lines.tap(&:pop).join.chomp if result.error?
105
-
105
+
106
106
  str = "\n\n"
107
107
  str << color('%4d) %s' % [index, result_name(result.name)])
108
108
  str << "\n" << color(indent(message), :red)
109
109
  str << "\n" << color(backtrace, :blue)
110
110
  io.print str
111
111
  end
112
-
112
+
113
113
  def display_skipped(result, index)
114
114
  location = location(result.failure.location)
115
115
  str = "\n\n"
@@ -117,55 +117,55 @@ module Minitest
117
117
  str << "\n" << indent(color(location, :yellow))
118
118
  io.print str
119
119
  end
120
-
120
+
121
121
  def display_replay_command(result)
122
122
  location, line = find_test_file(result)
123
123
  return if location.empty?
124
-
124
+
125
125
  command = if defined?(Rails) && Rails.version >= '5.0.0'
126
126
  %[bin/rails test #{location}:#{line}]
127
- else
128
127
  %[rake TEST=#{location} TESTOPTS="--name=#{result.name}"]
128
+ else
129
129
  end
130
-
130
+
131
131
  str = "\n"
132
132
  str << color(command, :red)
133
-
133
+
134
134
  io.print str
135
135
  end
136
-
136
+
137
137
  def find_test_file(result)
138
- location, line = result.method(result.name).source_location
138
+ location, line = result.source_location
139
139
  location = location.gsub(%r[^.*?/((?:test|spec)/.*?)$], "\\1")
140
-
140
+
141
141
  [location, line]
142
142
  end
143
-
143
+
144
144
  def backtrace(backtrace)
145
145
  backtrace = filter_backtrace(backtrace).map { |line| location(line, true) }
146
146
  return if backtrace.empty?
147
147
  indent(backtrace.join("\n")).gsub(/^(\s+)/, "\\1# ")
148
148
  end
149
-
149
+
150
150
  def location(location, include_line_number = false)
151
151
  regex = include_line_number ? /^([^:]+:\d+)/ : /^([^:]+)/
152
152
  location = File.expand_path(location[regex, 1])
153
-
153
+
154
154
  return location unless location.start_with?(Dir.pwd)
155
-
155
+
156
156
  location.gsub(%r[^#{Regexp.escape(Dir.pwd)}/], '')
157
157
  end
158
-
158
+
159
159
  def filter_backtrace(backtrace)
160
160
  Minitest.backtrace_filter.filter(backtrace)
161
161
  end
162
-
162
+
163
163
  def result_name(name)
164
164
  name
165
165
  .gsub(/^test(_\d+)?_/, '')
166
166
  .gsub(/_/, ' ')
167
167
  end
168
-
168
+
169
169
  def print_result_code(result_code)
170
170
  result = @@result_code_to_unicode[result_code]
171
171
  colors = {
@@ -174,9 +174,9 @@ module Minitest
174
174
  "\u{203C}" => :red,
175
175
  "\u{26A1}" => :yellow
176
176
  }
177
- io.print color(result_code, colors[result])
177
+ io.print color(result, colors[result])
178
178
  end
179
-
179
+
180
180
  def color(string, color = :default)
181
181
  if color_enabled?
182
182
  color = @@color.fetch(color, 0)
@@ -185,11 +185,11 @@ module Minitest
185
185
  string
186
186
  end
187
187
  end
188
-
188
+
189
189
  def color_enabled?
190
190
  @color_enabled
191
191
  end
192
-
192
+
193
193
  def pluralize(word, count)
194
194
  case count
195
195
  when 0
@@ -203,4 +203,4 @@ module Minitest
203
203
  end
204
204
  end
205
205
 
206
- end
206
+ end
@@ -6,7 +6,25 @@ require 'mkmatter/version'
6
6
 
7
7
  require 'json'
8
8
  require 'yaml'
9
+ require 'active_support/all'
9
10
  # Main Module Declaration
10
11
  module Mkmatter
11
12
 
12
13
  end
14
+ class Thor
15
+ module Shell
16
+ class Basic
17
+ def print_wrapped(message, options = {})
18
+ message.lstrip!
19
+ message.gsub!(/\n\s+/, "\n")
20
+ message = message.split("\n")
21
+ message.each do |line|
22
+ line.gsub!(/^------/, ' ') if line[0..5] == '------'
23
+ line.gsub!(/^----/, ' ') if line[0..3] == '----'
24
+ line.gsub!(/^--/, ' ') if line[0..1] == '--'
25
+ stdout.puts line
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -8,7 +8,7 @@ module Mkmatter
8
8
  attr_accessor :slug_date, :answer_hash
9
9
  attr_accessor :published, :file_format
10
10
  attr_reader :matter
11
-
11
+
12
12
  def initialize(question_hash, publish)
13
13
  @title = question_hash[:title]
14
14
  @tags = question_hash[:tags]
@@ -20,7 +20,7 @@ module Mkmatter
20
20
  @published = publish
21
21
  @file_format = question_hash[:file_format]
22
22
  @matter = {
23
- layout: @layout,
23
+ layout: question_hash[:layout],
24
24
  title: @title,
25
25
  categories: @categories,
26
26
  tags: @tags,
@@ -28,18 +28,18 @@ module Mkmatter
28
28
  }
29
29
  @matter[:published] = @published if publish
30
30
  end
31
-
31
+
32
32
  # @return [Hash] returns attribute `.matter`
33
33
  def to_h
34
34
  @matter
35
35
  end
36
-
36
+
37
37
  # @param [Hash] hash other hash
38
38
  # @return [nil] merges hash into attribute `.matter`
39
39
  def to_h=(hash)
40
40
  @matter.merge!(hash)
41
41
  end
42
-
42
+
43
43
  alias_method :inspect, :to_h
44
44
  #
45
45
  # Dumps all file applicable metadata to a provided output.
@@ -31,15 +31,15 @@ module Mkmatter
31
31
  def __debug
32
32
  report = YAML.safe_load(OS.report)
33
33
  rows = {
34
- 'mkmatter_version' => Mkmatter::VERSION,
35
- 'ruby_version' => RbConfig::CONFIG['RUBY_PROGRAM_VERSION'],
34
+ :mkmatter_version => Mkmatter::VERSION,
35
+ :ruby_version => RbConfig::CONFIG['RUBY_PROGRAM_VERSION'],
36
36
  }
37
37
  rows.merge! report
38
38
  rows.merge!({
39
- 'ruby_bin' => OS.ruby_bin,
40
- 'windows' => OS.windows?,
41
- 'posix' => OS.posix?,
42
- 'mac' => OS.mac?,
39
+ 'ruby bin' => OS.ruby_bin,
40
+ :windows => OS.windows?,
41
+ :posix => OS.posix?,
42
+ :mac => OS.mac?,
43
43
  'under windows' => OS::Underlying.windows?,
44
44
  'under bsd' => OS::Underlying.bsd?,
45
45
  })
@@ -1,38 +1,30 @@
1
1
  require 'highline'
2
+ require 'paint'
2
3
  HighLine.colorize_strings
3
4
 
4
5
  module Mkmatter
5
6
  module App
6
7
  module Descriptions
7
8
  module New
8
- PAGE = ERB.new(<<-PAGEDOC.strip_heredoc
9
- `mkmatter new page` will run you through making a jekyll page.
9
+ PAGE = ERB.new(<<-PAGE
10
+ --`mkmatter new page` will run you through making a jekyll page.
11
+ --Given the above options/flags you can modify how the script
12
+ --outputs your front matter, or whether to mark it as published.
13
+ --<%= Paint['OPTIONS', 'green', :bold] %>:
10
14
 
11
- Given the above options/flags you can modify how the script
12
-
13
- outputs your front matter, or whether to mark it as published.
14
-
15
- PAGEDOC
15
+ PAGE
16
16
  ).result
17
17
 
18
- POST = ERB.new(<<-POSTDOC.strip_heredoc
19
- `mkmatter new post` will run you through making a jekyll post.
20
-
21
- Given the above options/flags you can modify how the script
22
-
23
- outputs your front matter, and whether to mark it as published,
24
-
25
- or as a draft and move it into `_drafts`.
26
-
27
- NOTES:
28
-
29
-
30
- By default Jekyll will publish a post if `published` is omitted in
31
-
32
- the front matter. So if you omit `--publish` you will publish,
33
-
34
- so you have to explicitly use --no-publish to set `<%= HighLine.color('published', :yellow) %>:
35
- <%= HighLine.color('false', :yellow, :bold) %>`
18
+ POST = ERB.new(<<-POSTDOC
19
+ --`mkmatter new post` will run you through making a jekyll post.
20
+ --Given the above options/flags you can modify how the script
21
+ --outputs your front matter, and whether to mark it as published,
22
+ --or as a draft and move it into `_drafts`.
23
+ --<%= Paint['NOTES', 'green', :bold] %>:
24
+ ----By default Jekyll will publish a post if `published` is omitted in
25
+ ----the front matter. So if you omit `--publish` you will publish,
26
+ ----so you have to explicitly use --no-publish to set
27
+ ----`<%= HighLine.color('published', :yellow) %>: <%= HighLine.color('false', :yellow, :bold) %>`
36
28
 
37
29
  POSTDOC
38
30
  ).result
@@ -1,6 +1,5 @@
1
1
  require 'highline'
2
2
  require 'thor'
3
-
4
3
  require 'mkmatter/cli/descriptions'
5
4
  require 'mkmatter/cli/methods'
6
5
  require 'mkmatter/questions'
@@ -13,10 +12,11 @@ module Mkmatter
13
12
  include Thor::Actions
14
13
  HILINE = HighLine.new($stdin, $stderr, 40)
15
14
  option :publish, :type => :boolean
16
- option :file, :type => :boolean
15
+ option :file, :type => :boolean, :default => nil
16
+ method_options %w( template -t ) => :boolean
17
17
  desc 'page [options]', 'make front matter (and possibly content) for a jekyll page'
18
18
  long_desc Mkmatter::App::Descriptions::New::PAGE
19
-
19
+
20
20
  def page
21
21
  if options[:file]
22
22
  if Mkmatter::Methods.check_if_jekyll
@@ -37,19 +37,19 @@ module Mkmatter
37
37
  begin
38
38
  FileUtils.mkdir_p(File.join(Mkmatter::Methods.get_jekyll_root, folder))
39
39
  rescue Errno::EEXIST
40
- HILINE.say("<%= color('Error', :red, :bold) %>:Insufficient Permissions")
40
+ HILINE.say("<%= Paint['Error', 'red', :bold] %>: Insufficient Permissions")
41
41
  exit 1
42
42
  end
43
43
  path = Pathname(folder).realdirpath.join(filename)
44
44
  end
45
45
  File.open(path.to_path, 'a') do |fd|
46
- answers.to_h = {'layout' => 'page'}
46
+ answers.to_h = {:layout => 'page'}
47
47
  fd.puts answers.to_h.stringify_keys.to_yaml(indentation: 2)
48
48
  fd.puts '---'
49
49
  end
50
50
  Mkmatter::Methods.launch_editor(options[:editor], path)
51
51
  else
52
- puts "Not in a Jekyll directory. (no '_config.yml' in any parent directory)"
52
+ $stderr.puts "Not in a Jekyll directory. (no '_config.yml' in any parent directory)"
53
53
  exit 1
54
54
  end
55
55
  else
@@ -60,29 +60,27 @@ module Mkmatter
60
60
  puts '---'
61
61
  end
62
62
  end
63
-
64
-
63
+
64
+
65
65
  option :publish, :type => :boolean
66
- option :file, :type => :boolean
67
- option :draft, :type => :boolean
66
+ option :file, :type => :boolean, :default => nil
67
+ option :draft, :type => :boolean, :default => nil
68
68
  desc 'post [options]', 'make front matter (and possibly content) for a jekyll post'
69
69
  long_desc Mkmatter::App::Descriptions::New::POST
70
-
70
+
71
71
  def post
72
-
73
72
  if options[:draft] and options[:file]
74
-
75
73
  if Mkmatter::Methods.check_if_jekyll
76
74
  @questions = Mkmatter::Questions::Post.new(HILINE).ask
77
75
  answers = Mkmatter::Answers.new(@questions, options[:publish])
78
76
  file_folder = '_drafts'
79
77
  filename = [].concat([answers.slug_date, '-', answers.title.to_slug, '.', answers.file_format.downcase]).join
80
-
78
+
81
79
  path = Pathname("./#{file_folder}/#{filename}").realdirpath
82
80
  if HILINE.agree('Would you like to put this page into a subdirectory?', true)
83
81
  HILINE.say("What path? (directories will be created if they don't exist)")
84
82
  HILINE.say("Don't use a path starting with a slash, just put a relative path.")
85
- HILINE.say('<%= color(\'Good\', :green, :bold) %>: path/to/dir ‖ <%= color(\'Bad\', :red, :bold) %>: /root/paths/are/bad/mmkay')
83
+ HILINE.say("<% Paint['Good', 'green', :bold] %>: path/to/dir ‖ <%= color('Bad', 'red', :bold) %>: /root/paths/are/bad/mmkay")
86
84
  folder = HILINE.ask('? ') do |q|
87
85
  q.confirm = true
88
86
  q.default = '.'
@@ -92,13 +90,13 @@ module Mkmatter
92
90
  begin
93
91
  FileUtils.mkdir_p(File.join(Mkmatter::Methods.get_jekyll_root, folder))
94
92
  rescue Errno::EEXIST
95
- HILINE.say("<%= color('Error', :red, :bold) %>:Insufficient Permissions")
93
+ HILINE.say("<% Paint['Error', 'red', :bold] %>:Insufficient Permissions")
96
94
  exit 1
97
95
  end
98
96
  path = Pathname(folder).realdirpath.join(filename)
99
97
  end
100
98
  File.open(path.to_path, 'a') do |fd|
101
- answers.to_h = {'layout' => 'post'}
99
+ answers.to_h = {:layout => 'post'}
102
100
  fd.puts answers.to_h.stringify_keys.to_yaml(indentation: 2)
103
101
  fd.puts '---'
104
102
  end
@@ -108,7 +106,7 @@ module Mkmatter
108
106
  exit 1
109
107
  end
110
108
  elsif options[:file] and options[:draft].nil? or options[:draft] == false
111
-
109
+
112
110
  if Mkmatter::Methods.check_if_jekyll
113
111
  @questions = Mkmatter::Questions::Post.new(HILINE).ask
114
112
  answers = Mkmatter::Answers.new(@questions, options[:publish])
@@ -120,7 +118,7 @@ module Mkmatter
120
118
  HILINE.say('----------------')
121
119
  HILINE.say("Don't use a path starting with a slash, just put a relative path.")
122
120
  HILINE.say("If you enter a path you don't like, you will have manually remove it if you confirm it.")
123
- HILINE.say('<%= color(\'Good\', :green, :bold) %>: path/to/dir ‖ <%= color(\'Bad\', :red, :bold) %>: /root/paths/are/bad/mmkay')
121
+ HILINE.say("<% Paint['Good', 'green', :bold] %>: path/to/dir ‖ <% Paint['Bad', :red, :bold] %>: /root/paths/are/bad/mmkay")
124
122
  folder = HILINE.ask('? ') do |q|
125
123
  q.confirm = true
126
124
  q.default = '.'
@@ -130,17 +128,17 @@ module Mkmatter
130
128
  begin
131
129
  FileUtils.mkdir_p(File.join(Mkmatter::Methods.get_jekyll_root, folder))
132
130
  rescue Errno::EEXIST
133
- HILINE.say("<%= color('Error', :red, :bold) %>:Insufficient Permissions")
131
+ HILINE.say("<% Paint['Error', 'red', :bold] %>:Insufficient Permissions")
134
132
  exit 1
135
133
  end
136
134
  path = Pathname(folder).realdirpath.join(filename)
137
135
  end
138
136
  File.open(path.to_path, 'a') do |fd|
139
- answers.to_h = {'layout' => 'post'}
137
+ answers.to_h = {:layout => 'post'}
140
138
  fd.puts answers.to_h.stringify_keys.to_yaml(indentation: 2)
141
139
  fd.puts '---'
142
140
  end
143
-
141
+
144
142
  Mkmatter::Methods.launch_editor(options[:editor], path)
145
143
  else
146
144
  puts "Not in a Jekyll directory. (no '_config.yml' in any parent directory)"
@@ -152,10 +150,10 @@ module Mkmatter
152
150
  puts ''
153
151
  puts answers.to_h.stringify_keys.to_yaml(indentation: 2)
154
152
  puts '---'
155
-
153
+
156
154
  end
157
155
  end
158
156
  end
159
157
  end
160
158
  end
161
- end
159
+ end
@@ -1,5 +1,5 @@
1
1
  require 'thor'
2
- require 'highline'
2
+ require 'paint'
3
3
  require 'mkmatter/cli/methods'
4
4
  require 'mkmatter/cli/tags'
5
5
  module Mkmatter
@@ -7,16 +7,14 @@ module Mkmatter
7
7
  module Classes
8
8
  class Tags < Thor
9
9
  include Thor::Actions
10
- HILINE = HighLine.new($stdin, $stderr, 80)
11
-
12
10
  desc 'find [options] TYPE', 'find content of type TYPE'
13
11
  # @param [String] type Type of content
14
12
  def find(type)
15
13
  if Mkmatter::Methods.check_if_jekyll
16
14
  table = Terminal::Table.new
17
- table.title = 'Tags'
15
+ table.title = type.capitalize
18
16
  table.style.all_separators = true
19
- table.headings = ["#{HILINE.color('Path from Jekyll Root', :bold)}", "#{HILINE.color('Tags', :bold)}"]
17
+ table.headings = ["#{Paint['Path from Jekyll Root', 'white', :bold]}", "#{Paint['Tags', 'white', :bold]}"]
20
18
 
21
19
  front_matter = Mkmatter::Methods.find_front_matter(type, 'tags')
22
20
  front_matter.each do |path, tags|
@@ -26,7 +24,7 @@ module Mkmatter
26
24
  table.align_column(1, :right)
27
25
  puts table
28
26
  else
29
- $stderr.puts "#{HILINE.color('Error', :red, :bold)}: Not a Jekyll source directory (no '_config.yml' found in any parent directory)"
27
+ $stderr.puts "#{Paint['Error', :red, :bold]}: Not a Jekyll source directory (no '_config.yml' found in any parent directory)"
30
28
  end
31
29
  end
32
30
 
@@ -36,7 +34,7 @@ module Mkmatter
36
34
  if Mkmatter::Methods.check_if_jekyll
37
35
 
38
36
  else
39
- $stderr.puts "#{HILINE.color('Error', :red, :bold)}: Not a Jekyll source directory (no '_config.yml' found in any parent directory)"
37
+ $stderr.puts "#{Paint['Error', :red, :bold]}: Not a Jekyll source directory (no '_config.yml' found in any parent directory)"
40
38
  end
41
39
  end
42
40
 
@@ -55,7 +53,7 @@ module Mkmatter
55
53
  all_tags = tags.flatten.sort.uniq
56
54
  Mkmatter::Tags.dry_gen all_tags
57
55
  else
58
- HILINE.say "<% color('Error', :red, :bold) %>: No tag folder"
56
+ $stderr.puts "#{Paint['Error', :red, :bold]}: No tag folder"
59
57
  end
60
58
  else
61
59
  if Mkmatter::Tags.has_tag_folder?
@@ -67,10 +65,9 @@ module Mkmatter
67
65
  all_tags = tags.flatten.sort.uniq
68
66
  Mkmatter::Tags.gen_post_tags all_tags
69
67
  else
70
- $stderr.puts "#{HILINE.color('Error', :red, :bold)}: Not a Jekyll source directory (no '_config.yml' found in any parent directory)"
68
+ $stderr.puts "#{Paint['Error', :red, :bold]}: Not a Jekyll source directory (no '_config.yml' found in any parent directory)"
71
69
  end
72
70
  end
73
-
74
71
  end
75
72
  end
76
73
  end
@@ -6,7 +6,7 @@ module Mkmatter
6
6
  attr_accessor :time_zone
7
7
  # @param [HighLine] hl A highline context
8
8
  # @return [String]
9
- def get_title(hl)
9
+ def get_001_title(hl)
10
10
  title = hl.ask 'Title: '
11
11
  if hl.agree("Would you like it 'titleized' (Title instead of title)? ", true)
12
12
  title.titleize
@@ -14,22 +14,22 @@ module Mkmatter
14
14
  title
15
15
  end
16
16
  end
17
-
17
+
18
18
  # @param [HighLine] hl A highline context
19
19
  # @return [String]
20
- def get_tags(hl)
20
+ def get_002_tags(hl)
21
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
- def get_categories(hl)
26
+ def get_003_categories(hl)
27
27
  hl.ask 'Categories? (space separated list) ', -> (str) {str.split(' ')}
28
28
  end
29
-
29
+
30
30
  # @param [HighLine] hl A highline context
31
31
  # @return [String]
32
- def get_time_zone(hl)
32
+ def get_004_time_zone(hl)
33
33
  custom = nil
34
34
  timezone = hl.choose do |m|
35
35
  m.header = 'Time Zone? (select by number)'
@@ -59,14 +59,18 @@ module Mkmatter
59
59
  custom
60
60
  end
61
61
  end
62
-
62
+
63
63
  # @param [HighLine] hl A highline context
64
64
  # @return [String]
65
- def get_file_format(hl)
65
+ def get_005_file_format(hl)
66
66
  hl.choose do |menu|
67
- menu.header = 'Choose whether you want HTML or Markdown (md)'
68
- menu.choice 'html'
69
- menu.choice 'md'
67
+ menu.header = 'Choose whether you want HTML or Markdown'
68
+ menu.choice 'html' do
69
+ return 'html'
70
+ end
71
+ menu.choice 'md' do
72
+ return 'md'
73
+ end
70
74
  menu.prompt = '? '
71
75
  end
72
76
  end
@@ -9,21 +9,22 @@ module Mkmatter
9
9
 
10
10
  attr :answers
11
11
  attr :highline_context
12
-
12
+
13
13
  # @!visibility private
14
14
  # @param [HighLine] highline_context a highline context
15
15
  def initialize(highline_context)
16
16
  @highline_context = highline_context
17
17
  @answers = OpenStruct.new
18
- @answers[:layout] = 'post'
19
-
18
+
19
+
20
20
  end
21
21
 
22
22
  # @return [OpenStruct]
23
23
  def ask
24
- known_questions = self.methods.delete_if { |m| m.to_s !~ /^get_.*$/ }
24
+ known_questions = self.methods.sort.delete_if { |m| m.to_s !~ /^get_.*$/ }
25
25
  known_questions.each do |m|
26
- @answers[m.to_s.gsub(/^get_/, '')] = self.method(m).call(@highline_context)
26
+ @answers[:layout] = 'post'
27
+ @answers[m.to_s.gsub(/^get_[0-9]{3}_/, '')] = self.method(m).call(@highline_context)
27
28
  end
28
29
  @answers
29
30
  end
@@ -33,20 +34,21 @@ module Mkmatter
33
34
  include Mkmatter::Common
34
35
  attr :answers
35
36
  attr :highline_context
36
-
37
-
37
+
38
+
38
39
  # @!visibility private
39
40
  def initialize(highline_context)
40
41
  @answers = OpenStruct.new
41
- @answers[:layout] = 'page'
42
+
42
43
  @highline_context = highline_context
43
44
  end
44
-
45
+
45
46
  # @return [OpenStruct]
46
47
  def ask
47
- known_questions = self.methods.delete_if { |m| m.to_s !~ /^get_.*$/ }
48
+ known_questions = self.methods.sort.delete_if { |m| m.to_s !~ /^get_.*$/ }
48
49
  known_questions.each do |m|
49
- @answers[m.to_s.gsub(/^get_/, '')] = self.method(m).call(@highline_context)
50
+ @answers[:layout] = 'page'
51
+ @answers[m.to_s.gsub(/^get_[0-9]{3}_/, '')] = self.method(m).call(@highline_context)
50
52
  end
51
53
  @answers
52
54
  end
@@ -1,3 +1,3 @@
1
1
  module Mkmatter
2
- VERSION = '3.0.45'
2
+ VERSION = '3.1.3'
3
3
  end
@@ -43,6 +43,7 @@ Gem::Specification.new do |spec|
43
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 'paint', '~> 2.0'
46
47
  spec.add_runtime_dependency 'front_matter_parser', '~> 0.1'
47
48
  spec.add_runtime_dependency 'rake', '~> 10.0'
48
49
  spec.add_runtime_dependency 'micro_install', '~> 0.1.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mkmatter
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.45
4
+ version: 3.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ken Spencer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-03 00:00:00.000000000 Z
11
+ date: 2018-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: highline
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: '1.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: paint
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '2.0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '2.0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: front_matter_parser
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -204,7 +218,6 @@ files:
204
218
  - ".gitlab-ci.yml"
205
219
  - ".travis.yml"
206
220
  - Gemfile
207
- - Gemfile.lock
208
221
  - LICENSE
209
222
  - LICENSE.txt
210
223
  - README.md
@@ -259,7 +272,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
259
272
  version: '0'
260
273
  requirements: []
261
274
  rubyforge_project:
262
- rubygems_version: 2.5.2.1
275
+ rubygems_version: 2.7.6
263
276
  signing_key:
264
277
  specification_version: 4
265
278
  summary: Script facilitating easy content creation and generation for Jekyll Sites
@@ -1,76 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- mkmatter (3.0.44)
5
- activesupport (~> 5.1)
6
- front_matter_parser (~> 0.1)
7
- git (~> 1.3)
8
- highline (~> 1.7)
9
- micro_install (~> 0.1.0)
10
- os (~> 1.0)
11
- rake (~> 10.0)
12
- slugity (~> 1.1)
13
- terminal-table (~> 1.8)
14
- thor (~> 0.20)
15
-
16
- GEM
17
- remote: https://rubygems.org/
18
- specs:
19
- activesupport (5.1.5)
20
- concurrent-ruby (~> 1.0, >= 1.0.2)
21
- i18n (~> 0.7)
22
- minitest (~> 5.1)
23
- tzinfo (~> 1.1)
24
- addressable (2.3.8)
25
- ansi (1.5.0)
26
- builder (3.2.3)
27
- concurrent-ruby (1.0.5)
28
- front_matter_parser (0.1.1)
29
- git (1.3.0)
30
- highline (1.7.10)
31
- i18n (0.9.5)
32
- concurrent-ruby (~> 1.0)
33
- json (1.8.6)
34
- micro_install (0.1.0)
35
- highline (~> 1.7)
36
- os (~> 1.0)
37
- paint (~> 2.0.1)
38
- thor (~> 0.20)
39
- unirest (~> 1.1)
40
- mime-types (1.25.1)
41
- minitest (5.11.3)
42
- minitest-reporters (1.1.19)
43
- ansi
44
- builder
45
- minitest (>= 5.0)
46
- ruby-progressbar
47
- os (1.0.0)
48
- paint (2.0.1)
49
- rake (10.5.0)
50
- rest-client (1.6.9)
51
- mime-types (~> 1.16)
52
- ruby-progressbar (1.9.0)
53
- slugity (1.1.0)
54
- terminal-table (1.8.0)
55
- unicode-display_width (~> 1.1, >= 1.1.1)
56
- thor (0.20.0)
57
- thread_safe (0.3.6)
58
- tzinfo (1.2.5)
59
- thread_safe (~> 0.1)
60
- unicode-display_width (1.3.0)
61
- unirest (1.1.2)
62
- addressable (~> 2.3.5)
63
- json (~> 1.8.1)
64
- rest-client (~> 1.6.7)
65
-
66
- PLATFORMS
67
- ruby
68
-
69
- DEPENDENCIES
70
- bundler (~> 1.16)
71
- minitest (~> 5)
72
- minitest-reporters (~> 1.1)
73
- mkmatter!
74
-
75
- BUNDLED WITH
76
- 1.16.1