neruda 0.0.8 → 0.0.9

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: 04121554db1e0ac41a7f46fbd6637965b4a8f34f
4
- data.tar.gz: bc2068179eb7bf37a015a582192cb0ece626d534
3
+ metadata.gz: e3101ba04a16de9562d4834ebde5c9034103d14d
4
+ data.tar.gz: f50ebe738e0771b75ed532319e84cfe1027bea25
5
5
  SHA512:
6
- metadata.gz: 18d435f12eb453b83a03406f38db204396a795520f8d44fdbb65f32b3ad4d8b45fb8ac136139441dff6bc6a849a3eb7c04ab52722a5cf51148854a731553bcb1
7
- data.tar.gz: 10edec1726e5d3e6862be6eeec73b4ac33826b93cd8da20f6dd88160fdac3bf377422da29e94e17a57189b38c44ebd183696852a7b859dc37b6fb385ecaa88a8
6
+ metadata.gz: c3ca902065a455800fdd16b9b9ee0d81921b7971d4a25b9aa8e5bf0327ab05f97ddd39b7d710ab7937cee1b11a1b61e33b51ee04a140d31ad0418584de15c95d
7
+ data.tar.gz: 011f3df145a513b3b780fbf543db6eb5a76cd6c89acb8342428799bd32b3bfef21a38efc5019de9b686f4517bc642649fadbbd99864eb015b14e4bb957549a10
data/bin/pablo CHANGED
@@ -20,8 +20,9 @@ module BundlerHelper
20
20
  def rake_or_bundle_run(cmd, use_system = false)
21
21
  cmd.insert(1, '-s') unless @options[:verbose]
22
22
  cmd = ['bundle', 'exec'] + cmd if bundler_is_present?
23
- puts Rainbow(cmd.join(' ')).blue if @options[:verbose]
24
- return cmd.join(' ') if use_system
23
+ joined_cmd = cmd.join(' ')
24
+ puts Rainbow(joined_cmd).blue if @options[:verbose]
25
+ return system(joined_cmd) if use_system
25
26
  exec(*cmd)
26
27
  end
27
28
 
@@ -32,11 +33,11 @@ module BundlerHelper
32
33
  end
33
34
 
34
35
  capfile = File.new('Capfile', 'a')
35
- capfile.write <<~EOF
36
- neruda_spec = Gem::Specification.find_by_name 'neruda'
37
- Dir.glob("\#{neruda_spec.gem_dir}/lib/tasks/*.rake").each { |r| import r }
38
- Dir.glob("\#{neruda_spec.gem_dir}/lib/tasks/capistrano/*.rake").each { |r| import r }
39
- EOF
36
+ capfile.write <<~CAPFILE
37
+ neruda_spec = Gem::Specification.find_by_name 'neruda'
38
+ Dir.glob("\#{neruda_spec.gem_dir}/lib/tasks/*.rake").each { |r| import r }
39
+ Dir.glob("\#{neruda_spec.gem_dir}/lib/tasks/capistrano/*.rake").each { |r| import r }
40
+ CAPFILE
40
41
  end
41
42
  end
42
43
 
@@ -93,13 +94,12 @@ module PabloInit
93
94
  end
94
95
 
95
96
  return if File.exist? 'config.ru'
96
- rackup_conf = <<~EOF
97
- # frozen_string_literal: true
97
+ IO.write 'config.ru', <<~CONFIG
98
+ # frozen_string_literal: true
98
99
 
99
- require 'neruda'
100
- run Neruda::App
101
- EOF
102
- IO.write('config.ru', rackup_conf)
100
+ require 'neruda'
101
+ run Neruda::App
102
+ CONFIG
103
103
  end
104
104
 
105
105
  def init_bundler
@@ -119,22 +119,21 @@ module PabloInit
119
119
  # end
120
120
  markup_gem = 'gem \'org-ruby\''
121
121
 
122
- gemfile = <<~EOF
123
- # frozen_string_literal: true
122
+ IO.write 'Gemfile', <<~GEMFILE
123
+ # frozen_string_literal: true
124
124
 
125
- source 'https://rubygems.org'
125
+ source 'https://rubygems.org'
126
126
 
127
- gem 'neruda'
128
- #{markup_gem}
127
+ gem 'neruda'
128
+ #{markup_gem}
129
129
 
130
- group :development do
131
- gem 'capistrano'
132
- gem 'capistrano-bundler'
133
- gem 'capistrano-rvm'
134
- gem 'rubocop'
135
- end
136
- EOF
137
- IO.write('Gemfile', gemfile)
130
+ group :development do
131
+ gem 'capistrano'
132
+ gem 'capistrano-bundler'
133
+ gem 'capistrano-rvm'
134
+ gem 'rubocop'
135
+ end
136
+ GEMFILE
138
137
  puts ''
139
138
  puts 'To complete this installation, you must now run: ' +
140
139
  Rainbow('bundle install').yellow
@@ -161,42 +160,41 @@ class Pablo
161
160
  @options = {
162
161
  verbose: false
163
162
  }
164
- @available_commands = ['capify', 'list', 'start', 'new_chapter',
163
+ @available_commands = ['capify', 'list', 'start', 'edit',
165
164
  'setup', 'stop', 'compile']
166
165
 
167
166
  parse_options
167
+ # Be sure required directories are always there
168
+ init_path unless @arg == 'setup'
168
169
  route_command
169
170
  end
170
171
 
171
172
  def route_command
172
- case @arg
173
- when 'capify', 'list', 'start', 'new_chapter', 'setup'
174
- send @arg
175
-
176
- when 'stop'
173
+ if @arg == 'stop'
177
174
  rake_or_bundle_run ['rake', 'sinatra:stop']
178
-
179
- when 'compile'
180
- rake_or_bundle_run ['rake', 'chapters:build_epubs'], true
181
- rake_or_bundle_run ['rake', 'book:make']
175
+ return
182
176
  end
177
+
178
+ ARGV.shift
179
+ send @arg
183
180
  end
184
181
 
185
182
  private
186
183
 
187
184
  def parse_options
188
185
  optparse = OptionParser.new do |opts|
189
- opts.banner = <<~EOF
186
+ opts.banner = <<~HELP
190
187
  Usage:
191
188
  pablo -h
192
189
  pablo [ -v ] command
193
190
 
194
- EOF
191
+ HELP
195
192
  opts.on('-v', '--verbose', 'Output more information') do
196
193
  @options[:verbose] = true
197
194
  end
198
195
  opts.on('-h', '--help', 'Display this screen') do
199
196
  STDERR.puts opts
197
+ STDERR.puts
200
198
  pablo_help
201
199
  end
202
200
  end
@@ -205,11 +203,17 @@ class Pablo
205
203
 
206
204
  @arg = ARGV[0]
207
205
  if @arg == 'new'
208
- @arg = 'new_chapter'
206
+ @arg = 'edit'
209
207
  elsif @arg == 'run'
210
208
  @arg = 'start'
209
+ elsif @arg == 'init'
210
+ @arg = 'setup'
211
211
  end
212
212
 
213
+ if !File.exist?('config/config.yml') && @arg != 'setup'
214
+ STDERR.puts Rainbow('ERROR: please run pablo setup before all').red
215
+ exit 1
216
+ end
213
217
  return if @available_commands.include?(@arg)
214
218
  STDERR.puts Rainbow('ERROR: no or unknown command given.').red
215
219
  STDERR.puts Rainbow('Run pablo -h for options and available ' \
@@ -221,10 +225,10 @@ class Pablo
221
225
  include PabloInit
222
226
 
223
227
  def pablo_help
224
- STDERR.puts <<~EOF
225
-
228
+ STDERR.puts <<~HELP
226
229
  Book Commands:
227
- new [title] Begin to write a new chapter
230
+ new [title] Begin to write a new chapter
231
+ edit [title] Continue the writing of a chapter
228
232
  compile Generate the epubs files
229
233
  list [elements] List various book elements
230
234
  (chapters, characters, notes, sceneries)
@@ -234,11 +238,18 @@ class Pablo
234
238
  (you just need to do it once).
235
239
  start Start a test web server
236
240
  stop Stop the web server
237
- EOF
241
+ HELP
238
242
  exit
239
243
  end
240
244
 
245
+ def compile
246
+ rake_or_bundle_run ['rake', 'chapters:build_epubs'], true
247
+ rake_or_bundle_run ['rake', 'book:make'], true
248
+ end
249
+
241
250
  def start
251
+ compile
252
+
242
253
  loc_env = ENV['APP_ENV'] || 'development'
243
254
  if loc_env != 'production'
244
255
  puts Rainbow("Neruda is run in #{loc_env} environment").green
@@ -249,18 +260,18 @@ class Pablo
249
260
  rake_or_bundle_run ['rake', 'sinatra:start']
250
261
  end
251
262
 
252
- def new_chapter
253
- if ARGV[1].nil?
263
+ def edit
264
+ if ARGV[0].nil?
254
265
  print 'Title: '
255
266
  title = STDIN.gets.strip
256
267
  else
257
- title = ARGV[1]
268
+ title = ARGV.join(' ')
258
269
  end
259
- rake_or_bundle_run ['rake', "chapters:new[#{title}]"]
270
+ rake_or_bundle_run ['rake', "chapters:create_or_edit[#{title}]"]
260
271
  end
261
272
 
262
273
  def list
263
- list_type = ARGV[1] || 'chapters'
274
+ list_type = ARGV[0] || 'chapters'
264
275
  rake_or_bundle_run ['rake', "book:list[#{list_type}]"]
265
276
  end
266
277
  end
data/lib/tasks/book.rake CHANGED
@@ -53,7 +53,7 @@ namespace :book do
53
53
  end
54
54
  org_file.close
55
55
 
56
- IO.write('tmp/org_to_convert.yml', [final_org].to_yaml)
56
+ IO.write 'tmp/org_to_convert.yml', [final_org].to_yaml
57
57
  end
58
58
 
59
59
  task make: ['book:prepare', 'chapters:convert_org']
@@ -16,7 +16,7 @@ namespace :chapters do
16
16
  end
17
17
  next if org_to_convert.empty?
18
18
  Dir.mkdir 'tmp' unless Dir.exist? 'tmp'
19
- IO.write('tmp/org_to_convert.yml', org_to_convert.to_yaml)
19
+ IO.write 'tmp/org_to_convert.yml', org_to_convert.to_yaml
20
20
  end
21
21
 
22
22
  desc 'Identify orphan (without epubs) org files'
@@ -31,7 +31,7 @@ namespace :chapters do
31
31
  org_to_convert << filename unless File.exist? epub_file
32
32
  end
33
33
  next if org_to_convert.empty?
34
- IO.write('tmp/org_to_convert.yml', org_to_convert.to_yaml)
34
+ IO.write 'tmp/org_to_convert.yml', org_to_convert.to_yaml
35
35
  end
36
36
 
37
37
  desc 'Convert org files from tmp/org_to_convert.yml to epubs'
@@ -45,10 +45,11 @@ namespace :chapters do
45
45
  file_radix = File.basename(filename, '.org')
46
46
  epub_file = "private/epubs/#{file_radix}.epub"
47
47
  epub_to_upload << epub_file
48
+ puts "Converting #{filename} to #{epub_file}"
48
49
  sh 'pandoc', '-S', "--output=#{epub_file}", filename
49
50
  end
50
51
  next if epub_to_upload.empty?
51
- IO.write('tmp/epub_to_upload.yml', epub_to_upload.to_yaml)
52
+ IO.write 'tmp/epub_to_upload.yml', epub_to_upload.to_yaml
52
53
  end
53
54
 
54
55
  desc 'Build missing epubs'
@@ -93,11 +94,11 @@ namespace :chapters do
93
94
  title = f.in_buffer_settings['TITLE']
94
95
  chapters << { slug: file_radix, title: title } unless title.nil?
95
96
  end
96
- IO.write('config/chapters.yml', chapters.to_yaml)
97
+ IO.write 'config/chapters.yml', chapters.to_yaml
97
98
  end
98
99
 
99
100
  desc 'Open an editor to create a new chapter'
100
- task :new, :title do |_, args|
101
+ task :create_or_edit, :title do |_, args|
101
102
  if args[:title] == ''
102
103
  filename = 'new'
103
104
  else
@@ -108,20 +109,24 @@ namespace :chapters do
108
109
 
109
110
  unless File.exist? filename
110
111
  config = YAML.load_file('config/config.yml')
111
- IO.write filename, <<~EOF
112
+ filecontent = <<~ORG
112
113
  #+title: #{args[:title]}
113
114
  #+date: <#{Date.today.strftime('%Y-%m-%d %a.')}>
114
115
  #+author: #{config['author']}
115
116
 
116
-
117
- EOF
117
+ ORG
118
+ IO.write filename, filecontent
118
119
  end
119
120
 
120
121
  editor = ENV['EDITOR'] || ENV['VISUAL'] || 'emacs'
122
+
123
+ puts Rainbow(args[:title]).blue
124
+ puts "Opening #{filename} with #{editor}"
125
+
121
126
  if editor.match?(/^emacs/)
122
- sh editor, '+5', filename
127
+ sh [editor, '+5', filename].join(' ')
123
128
  else
124
- sh editor, filename
129
+ sh [editor, filename].join(' ')
125
130
  end
126
131
  end
127
132
  end
@@ -6,7 +6,7 @@ namespace :sinatra do
6
6
  desc 'Stop the underlaying sinatra application'
7
7
  task :stop do
8
8
  unless File.exist? 'tmp/pids/neruda.pid'
9
- STDERR.puts 'No pid file found'
9
+ STDERR.puts Rainbow('No pid file found').red
10
10
  exit 1
11
11
  end
12
12
  pid = IO.read('tmp/pids/neruda.pid').strip.to_i
@@ -27,7 +27,7 @@ namespace :sinatra do
27
27
  sh(*cmd)
28
28
  end
29
29
  rescue Interrupt
30
- puts Rainbow(' Kthxbye').blue
30
+ puts Rainbow('Kthxbye').blue
31
31
  end
32
32
  end
33
33
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neruda
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Étienne Deparis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-30 00:00:00.000000000 Z
11
+ date: 2017-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rainbow