munge 0.15.1 → 0.16.0

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.
@@ -0,0 +1,32 @@
1
+ if Gem.loaded_specs.key?("reel")
2
+ require "celluloid/current"
3
+ require "reel"
4
+
5
+ require "munge/extras/livereload/update_server"
6
+ require "munge/extras/livereload/update_client"
7
+ require "munge/extras/livereload/messaging"
8
+ require "munge/extras/livereload/server"
9
+ end
10
+
11
+ module Munge
12
+ module Extras
13
+ module Livereload
14
+ class Main
15
+ def initialize(activated)
16
+ @activated = activated
17
+
18
+ if @activated
19
+ Server.supervise
20
+ @updater = UpdateServer.new
21
+ end
22
+ end
23
+
24
+ def notify_changes(files:)
25
+ if @activated
26
+ @updater.notify(files)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,19 @@
1
+ module Munge
2
+ module Helpers
3
+ module Livereload
4
+ def livereload_script(force: false)
5
+ should_show = ENV["MUNGE_ENV"] == "development" && Gem.loaded_specs.key?("reel")
6
+
7
+ loading_script =
8
+ %q{document.write('<script src="http://'} +
9
+ %q{ + (location.host || 'localhost').split(':')[0]} +
10
+ %q{ + ':35729/livereload.js?snipver=1"></'} +
11
+ %q{ + 'script>')}
12
+
13
+ if should_show || force
14
+ content_tag(:script, loading_script)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -17,7 +17,12 @@ module Munge
17
17
  content = nil
18
18
  end
19
19
 
20
- options_str = options.map { |k, v| %(#{k}="#{h(v)}") }.join(" ")
20
+ options_str =
21
+ if options.any?
22
+ " " + options.map { |k, v| %(#{k}="#{h(v)}") }.join(" ")
23
+ else
24
+ ""
25
+ end
21
26
 
22
27
  content_str =
23
28
  if content
@@ -28,7 +33,7 @@ module Munge
28
33
  ""
29
34
  end
30
35
 
31
- "<#{name} #{options_str}>#{content_str}</#{name}>"
36
+ "<#{name}#{options_str}>#{content_str}</#{name}>"
32
37
  end
33
38
 
34
39
  def h(string)
data/lib/munge/runner.rb CHANGED
@@ -8,6 +8,7 @@ module Munge
8
8
  @reporter = Munge::Reporter.new(formatter: formatter, verbosity: verbosity)
9
9
  @write_manager = Munge::WriteManager.new(driver: File)
10
10
  @destination = destination
11
+ @written_items = []
11
12
  end
12
13
 
13
14
  def write
@@ -18,6 +19,8 @@ module Munge
18
19
  .each { |item| render_and_write(item) }
19
20
 
20
21
  @reporter.done
22
+
23
+ @written_items
21
24
  end
22
25
 
23
26
  private
@@ -25,6 +28,7 @@ module Munge
25
28
  def render_and_write(item)
26
29
  relpath = @router.filepath(item)
27
30
  abspath = File.join(@destination, relpath)
31
+ route = @router.route(item)
28
32
  content = @processor.transform(item)
29
33
 
30
34
  write_status = @write_manager.status(abspath, content)
@@ -32,6 +36,7 @@ module Munge
32
36
  case write_status
33
37
  when :new, :changed
34
38
  @writer.write(abspath, content)
39
+ @written_items.push(route)
35
40
  when :double_write_error
36
41
  raise Errors::DoubleWriteError, item.route
37
42
  when :identical
@@ -27,7 +27,7 @@ module Munge
27
27
  def self.parse_frontmatter(matchdata)
28
28
  return {} if matchdata.nil?
29
29
 
30
- parsed_frontmatter = YAML.load(matchdata[1])
30
+ parsed_frontmatter = YAML.safe_load(matchdata[1])
31
31
 
32
32
  frontmatter_hash =
33
33
  if parsed_frontmatter.is_a?(Hash)
data/lib/munge/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Munge
2
- VERSION = "0.15.1".freeze
2
+ VERSION = "0.16.0".freeze
3
3
  end
data/lib/munge.rb CHANGED
@@ -48,8 +48,11 @@ require "munge/helpers/find"
48
48
  require "munge/helpers/link"
49
49
  require "munge/helpers/rendering"
50
50
  require "munge/helpers/tag"
51
+ require "munge/helpers/livereload"
51
52
  require "munge/routers/auto_add_extension"
52
53
  require "munge/routers/fingerprint"
53
54
  require "munge/routers/add_directory_index"
54
55
  require "munge/routers/remove_index_basename"
55
56
  require "munge/transformers/tilt_transformer"
57
+
58
+ require "munge/extras/livereload"
data/munge.gemspec CHANGED
@@ -45,6 +45,10 @@ Gem::Specification.new do |spec|
45
45
  spec.add_runtime_dependency "tilt", "~> 2.0"
46
46
  spec.add_runtime_dependency "sass", "~> 3.4"
47
47
 
48
+ if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.2.2")
49
+ spec.add_runtime_dependency "reel", "~> 0.6"
50
+ end
51
+
48
52
  if Gem::Version.new(RUBY_VERSION) < Gem::Version.new("2.3")
49
53
  spec.add_runtime_dependency "rack", ">= 1.0", "< 2.0"
50
54
  end
data/seeds/config.rb CHANGED
@@ -1,4 +1,4 @@
1
- yml = YAML.load(__end__)
1
+ yml = YAML.safe_load(__end__)
2
2
 
3
3
  # Path to content
4
4
  config.source_path = "src"
@@ -6,6 +6,7 @@ tilt_transformer.register(Munge::Helpers::Rendering)
6
6
  tilt_transformer.register(Munge::Helpers::Tag)
7
7
  tilt_transformer.register(Munge::Helpers::AssetPaths)
8
8
  tilt_transformer.register(Munge::Helpers::AssetTags)
9
+ tilt_transformer.register(Munge::Helpers::Livereload)
9
10
  tilt_transformer.register(AssetRoots)
10
11
 
11
12
  system.processor.register(tilt_transformer)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: munge
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.1
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zach Ahn
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-01-14 00:00:00.000000000 Z
11
+ date: 2017-02-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -288,7 +288,21 @@ dependencies:
288
288
  - - "~>"
289
289
  - !ruby/object:Gem::Version
290
290
  version: '3.4'
291
- description: Documentation for this release is located in https://github.com/zachahn/munge/blob/v0.15.1/README.md
291
+ - !ruby/object:Gem::Dependency
292
+ name: reel
293
+ requirement: !ruby/object:Gem::Requirement
294
+ requirements:
295
+ - - "~>"
296
+ - !ruby/object:Gem::Version
297
+ version: '0.6'
298
+ type: :runtime
299
+ prerelease: false
300
+ version_requirements: !ruby/object:Gem::Requirement
301
+ requirements:
302
+ - - "~>"
303
+ - !ruby/object:Gem::Version
304
+ version: '0.6'
305
+ description: Documentation for this release is located in https://github.com/zachahn/munge/blob/v0.16.0/README.md
292
306
  email:
293
307
  - zach.ahn@gmail.com
294
308
  executables:
@@ -312,6 +326,12 @@ files:
312
326
  - lib/munge/cli/dispatch.rb
313
327
  - lib/munge/config.rb
314
328
  - lib/munge/errors.rb
329
+ - lib/munge/extras/livereload.rb
330
+ - lib/munge/extras/livereload/messaging.rb
331
+ - lib/munge/extras/livereload/server.rb
332
+ - lib/munge/extras/livereload/update_client.rb
333
+ - lib/munge/extras/livereload/update_server.rb
334
+ - lib/munge/extras/livereload/vendor/livereload.js
315
335
  - lib/munge/formatters/default.rb
316
336
  - lib/munge/formatters/dots.rb
317
337
  - lib/munge/go/sass.rb
@@ -321,6 +341,7 @@ files:
321
341
  - lib/munge/helpers/capture.rb
322
342
  - lib/munge/helpers/find.rb
323
343
  - lib/munge/helpers/link.rb
344
+ - lib/munge/helpers/livereload.rb
324
345
  - lib/munge/helpers/rendering.rb
325
346
  - lib/munge/helpers/tag.rb
326
347
  - lib/munge/init.rb
@@ -401,4 +422,3 @@ signing_key:
401
422
  specification_version: 4
402
423
  summary: Static site generator aiming to simplify complex build rules
403
424
  test_files: []
404
- has_rdoc: