neruda 0.0.5 → 0.0.6

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
2
  SHA1:
3
- metadata.gz: d27ec419fef855a84bea4e91b9330fbbe659e97c
4
- data.tar.gz: 7a996318f08fdb881e941c321b67a958ddeaa845
3
+ metadata.gz: 4c8fbbf1db41f23369213ab8927398003b6a7d44
4
+ data.tar.gz: c1d8aa69a1c92389b20aef6f7e4f5a892dc3fe9f
5
5
  SHA512:
6
- metadata.gz: 98b930b09fcb112273e61df48f5d39795b914c93ac1a1f69de41aa1097ac7cdb523944d4d31d21c77ec8caed9fb6086d8cfc7464ff73b20cb7a925cf3cc3abd5
7
- data.tar.gz: 209f225bc0ccd7f5dfb949d49ddbbfbbd496136a0bbbc481e307564a6543eb7ffbe8462774037016bddaf480671c9ceb4aa1ef73257423a2a4bea6a9dd6bd8b9
6
+ metadata.gz: 5138eb7b6480997fb98bbc68dda232c5d9e5d9f59c5d8b86f1497f34173d191e8ab80440e676c616473aff485771b9ce97b87b005df321a97d6c84da8749965c
7
+ data.tar.gz: 331d2694272ae5d17859c27ed90579286b1bbcbb180fbd3615d94f91716f9fa5e27e1f8aa980ce1dfafa893f95e9e3355afde6190ad32d727beff7b43e44bd14
data/bin/pablo CHANGED
@@ -24,6 +24,20 @@ module BundlerHelper
24
24
  return cmd.join(' ') if use_system
25
25
  exec(*cmd)
26
26
  end
27
+
28
+ def capify
29
+ unless File.exist? 'Capfile'
30
+ STDERR.puts Rainbow('ERROR: Capfile does not exist.').red
31
+ exit 1
32
+ end
33
+
34
+ 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
40
+ end
27
41
  end
28
42
 
29
43
  # Methods used with pablo init method
@@ -125,6 +139,20 @@ module PabloInit
125
139
  puts 'To complete this installation, you must now run: ' +
126
140
  Rainbow('bundle install').yellow
127
141
  end
142
+
143
+ def pablo_init
144
+ puts Rainbow('Creating main folders…').blue
145
+ init_path
146
+ puts Rainbow('Populating config file…').blue
147
+ init_config
148
+ puts Rainbow('Copying template files…').blue
149
+ init_assets
150
+ puts Rainbow('Installing rake files…').blue
151
+ init_rackup
152
+ puts ''
153
+ puts Rainbow('Neruda has been successfully installed.').green
154
+ init_bundler if bundler_is_present?
155
+ end
128
156
  end
129
157
 
130
158
  # Main pablo class
@@ -135,35 +163,35 @@ class Pablo
135
163
  }
136
164
 
137
165
  parse_options
166
+ route_command
167
+ end
138
168
 
139
- if ARGV[0] == 'init'
169
+ def route_command
170
+ case ARGV[0]
171
+ when 'init'
140
172
  pablo_init
141
173
 
142
- elsif ARGV[0] == 'capify'
174
+ when 'capify'
143
175
  capify
144
176
 
145
- elsif ['start', 'run'].include?(ARGV[0])
177
+ when 'start', 'run'
146
178
  start
147
179
 
148
- elsif ARGV[0] == 'stop'
180
+ when 'stop'
149
181
  rake_or_bundle_run ['rake', 'sinatra:stop']
150
182
 
151
- elsif ARGV[0] == 'compile'
183
+ when 'compile'
152
184
  rake_or_bundle_run ['rake', 'chapters:build_epubs'], true
153
185
  rake_or_bundle_run ['rake', 'book:make']
154
186
 
155
- elsif ARGV[0] == 'new'
187
+ when 'new'
156
188
  new_chapter
157
189
 
158
- elsif ARGV[0] == 'list'
190
+ when 'list'
159
191
  list
160
192
 
161
- elsif ARGV[0] == 'board'
162
- tiddly_file = 'private/notes/tiddly.html'
163
- unless File.exist? tiddly_file
164
- FileUtils.copy File.join(__dir__, '../lib/tiddly.html'), tiddly_file
165
- end
166
- exec 'gio', 'open', tiddly_file
193
+ when 'board'
194
+ board
167
195
  end
168
196
  end
169
197
 
@@ -173,8 +201,8 @@ class Pablo
173
201
  optparse = OptionParser.new do |opts|
174
202
  opts.banner = <<~EOF
175
203
  Usage:
176
- pablo init
177
- pablo [options] #{pablo_banner} [params]
204
+ pablo -h
205
+ pablo [ -v ] command
178
206
 
179
207
  EOF
180
208
  opts.on('-v', '--verbose', 'Output more information') do
@@ -182,21 +210,7 @@ class Pablo
182
210
  end
183
211
  opts.on('-h', '--help', 'Display this screen') do
184
212
  STDERR.puts opts
185
- STDERR.puts <<~EOF
186
-
187
- Commands:
188
- init : Initialize your Neruda instance
189
- start : Start the rack web server (default is thin)
190
- stop : Stop the web server
191
- compile: Generate the epubs files
192
- list : List various book elements (chapters, characters, notes, sceneries)
193
- board : Open your TiddlyWiki file located at ./private/notes/tiddly.html
194
-
195
- Chapters related commands:
196
- new [title] : Create a new chapter
197
-
198
- EOF
199
- exit
213
+ pablo_help
200
214
  end
201
215
  end
202
216
 
@@ -211,39 +225,24 @@ class Pablo
211
225
  include BundlerHelper
212
226
  include PabloInit
213
227
 
214
- def pablo_banner
215
- options = ['start', 'stop', 'new', 'compile', 'list']
216
- options << 'capify' if File.exist? 'Capfile'
217
-
218
- "[ #{options.join(' | ')} ]"
219
- end
220
-
221
- def pablo_init
222
- puts Rainbow('Creating main folders…').blue
223
- init_path
224
- puts Rainbow('Populating config file…').blue
225
- init_config
226
- puts Rainbow('Copying template files…').blue
227
- init_assets
228
- puts Rainbow('Installing rake files…').blue
229
- init_rackup
230
- puts ''
231
- puts Rainbow('Neruda has been successfully installed.').green
232
- init_bundler if bundler_is_present?
233
- end
234
-
235
- def capify
236
- unless File.exist? 'Capfile'
237
- STDERR.puts Rainbow('ERROR: Capfile does not exist.').red
238
- exit 1
239
- end
240
-
241
- capfile = File.new('Capfile', 'a')
242
- capfile.write <<~EOF
243
- neruda_spec = Gem::Specification.find_by_name 'neruda'
244
- Dir.glob("\#{neruda_spec.gem_dir}/lib/tasks/*.rake").each { |r| import r }
245
- Dir.glob("\#{neruda_spec.gem_dir}/lib/tasks/capistrano/*.rake").each { |r| import r }
246
- EOF
228
+ def pablo_help
229
+ STDERR.puts <<~EOF
230
+
231
+ Book Commands:
232
+ new [title] Begin to write a new chapter
233
+ compile Generate the epubs files
234
+ list [elements] List various book elements
235
+ (chapters, characters, notes, sceneries)
236
+ board Open your TiddlyWiki file located
237
+ at ./private/notes/tiddly.html
238
+
239
+ System Commands
240
+ init Initialize your Neruda instance
241
+ (you just need to do it once).
242
+ start Start a test web server
243
+ stop Stop the web server
244
+ EOF
245
+ exit
247
246
  end
248
247
 
249
248
  def start
@@ -268,12 +267,16 @@ class Pablo
268
267
  end
269
268
 
270
269
  def list
271
- if ARGV[1].nil?
272
- STDERR.puts Rainbow('ERROR: No list type given.').red
273
- STDERR.puts 'Enter one of [chapters, characters, notes, sceneries].'
274
- exit 1
270
+ list_type = ARGV[1] || 'chapters'
271
+ rake_or_bundle_run ['rake', "book:list[#{list_type}]"]
272
+ end
273
+
274
+ def board
275
+ tiddly_file = 'private/notes/tiddly.html'
276
+ unless File.exist? tiddly_file
277
+ FileUtils.copy File.join(__dir__, '../lib/tiddly.html'), tiddly_file
275
278
  end
276
- rake_or_bundle_run ['rake', "book:list[#{ARGV[1]}]"]
279
+ exec 'gio', 'open', tiddly_file
277
280
  end
278
281
  end
279
282
 
data/lib/neruda.rb CHANGED
@@ -27,22 +27,29 @@ class Neruda::App < Sinatra::Base
27
27
  include Neruda::Url
28
28
  include Neruda::Chapter
29
29
 
30
+ def chdir
31
+ Dir.chdir settings.root if ENV['APP_ENV'] == 'production'
32
+ end
33
+
30
34
  def find_slug
31
35
  @slug = params[:chapter]
32
36
  halt 404 if @slug.nil?
33
37
  end
34
38
 
35
39
  def find_file(kind = 'org')
36
- f = File.join('private', "#{kind}s", "#{@slug}.#{kind}")
40
+ if kind == 'epub'
41
+ f = File.join('private', 'epubs', "#{@slug}.epub")
42
+ elsif kind == 'chapters'
43
+ f = File.join('private', 'chapters', "#{@slug}.org")
44
+ else
45
+ f = File.join('private', "#{@slug}.#{kind}")
46
+ end
37
47
  halt 404 unless File.exist? f
38
48
  f
39
49
  end
40
50
 
41
- def find_chapter
42
- @org_file = find_file
43
- end
44
-
45
51
  get '/epub/:chapter' do
52
+ chdir
46
53
  find_slug
47
54
  if @slug == 'all' && !Neruda::CONFIG['book_filename'].nil?
48
55
  @slug = Neruda::CONFIG['book_filename']
@@ -54,8 +61,9 @@ class Neruda::App < Sinatra::Base
54
61
  end
55
62
 
56
63
  get '/chapter/:chapter' do
64
+ chdir
57
65
  find_slug
58
- find_chapter
66
+ @org_file = find_file('chapters')
59
67
  @content = Orgmode::Parser.load @org_file
60
68
  title # Force the early removal of the title
61
69
  slim :chapter
@@ -70,11 +78,13 @@ class Neruda::App < Sinatra::Base
70
78
  end
71
79
 
72
80
  get '/' do
81
+ chdir
73
82
  @slug = 'index'
74
83
  text_content = ''
75
84
  if File.exist? File.join('private', 'index.org')
76
- find_chapter
85
+ @org_file = find_file
77
86
  @content = Orgmode::Parser.load @org_file
87
+ title
78
88
  text_content = @content.to_html
79
89
  end
80
90
 
data/lib/tasks/book.rake CHANGED
@@ -7,8 +7,12 @@ namespace :book do
7
7
  desc 'List various book elements'
8
8
  task :list, :list_type do |_, args|
9
9
  list_type = args[:list_type]
10
- next unless ['chapters', 'characters',
11
- 'notes', 'sceneries'].include?(list_type)
10
+ unless ['chapters', 'characters',
11
+ 'notes', 'sceneries'].include?(list_type)
12
+ STDERR.puts Rainbow("ERROR: #{list_type} is not a valid list type.").red
13
+ STDERR.puts 'Enter one of [chapters, characters, notes, sceneries].'
14
+ next
15
+ end
12
16
  Dir.glob("private/#{list_type}/*.org") do |filename|
13
17
  file_radix = File.basename(filename, '.org')
14
18
  title = file_radix.split('_').map(&:capitalize).join(' ')
@@ -21,7 +21,11 @@ namespace :sinatra do
21
21
  cmd = ['rackup', "-E #{loc_env}", '-P', 'tmp/pids/neruda.pid']
22
22
  cmd << '-D' if loc_env == 'production'
23
23
  begin
24
- sh(*cmd)
24
+ if ENV['APP_ENV'].nil?
25
+ system({ 'APP_ENV' => loc_env }, cmd.join(' '))
26
+ else
27
+ sh(*cmd)
28
+ end
25
29
  rescue Interrupt
26
30
  puts Rainbow(' Kthxbye').blue
27
31
  end
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.5
4
+ version: 0.0.6
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-08 00:00:00.000000000 Z
11
+ date: 2017-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rainbow