devcenter 1.1.0 → 1.1.1

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
  !binary "U0hBMQ==":
3
- metadata.gz: d352eb839a6897d9f77d7a6c92e087226d4ebf52
4
- data.tar.gz: e422574c967cb28606b259c0c0f279b0d4af6da4
3
+ metadata.gz: 7a1de6c52f42b4388b5cc465df6e2125d5979299
4
+ data.tar.gz: 93ea202ebe6e5542b6915c3652f055792c5a019f
5
5
  !binary "U0hBNTEy":
6
- metadata.gz: 8364d4972ab68c3391e8fded0f65d240af897d61e274aeb4443c1a4de8f31a9ccdfc29a47fc7cf1693d8ccdf3ef0a67d403bcae418f7f3f60cc1e4fb9d8b15e4
7
- data.tar.gz: 33ebc9d225132cdcfbc795f28f26c136b15a0c79c8d70b4c36bd243d0c7a7adb4d91603b1731a7b5d1b3ea61dc9104f1c31e39898c6a4da554697b6bed024bce
6
+ metadata.gz: 3a080acfe9a2fdc6fbc5697f4c260011feee27b5508afb1b2b800a67c7eaf7d33f3a30e509795b68446620bdf49f51af433f3767445f7b5bfe183071b2f58384
7
+ data.tar.gz: da72b5fac7361fde1ac96b761a9d1bcfd930197d8803915ee5e6fac644192526ec6ea6921e3b95e4a89ca2d1aa4633acc9efeb7771cee5c08dfb096e14dae080
@@ -16,7 +16,7 @@ Gem::Specification.new do |gem|
16
16
  gem.executables = %w{ devcenter }
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = %w{ lib }
19
- gem.add_runtime_dependency('listen', '~> 0.7.2')
19
+ gem.add_runtime_dependency('listen', '~> 1.3.1')
20
20
  gem.add_runtime_dependency('commander', '~> 4.1.3')
21
21
  gem.add_runtime_dependency('json', '~>1.7.6')
22
22
  gem.add_runtime_dependency('excon', '~>0.15.4')
@@ -4,33 +4,69 @@ require_relative 'previewer/web_server'
4
4
  require_relative 'previewer/file_listener'
5
5
 
6
6
  module Devcenter::Previewer
7
-
8
7
  extend self
9
8
 
10
9
  def preview(slug, md_path, host, port)
11
- server = WebServer.new(host, port, WebApp)
12
- file_listener_callback = Proc.new do |modified, added, removed|
13
- modified.each{ |f| Devcenter::Logger.log "File modified: #{f}" }
14
- WebApp.send_server_event
10
+ Runner.new(slug, md_path, host, port).run
11
+ end
12
+
13
+ class Runner
14
+ attr_reader :slug, :md_path, :host, :port, :url
15
+
16
+ def initialize(slug, md_path, host, port)
17
+ @slug = slug
18
+ @md_path = md_path
19
+ @host = host
20
+ @port = port
21
+ @url = "http://#{@host}:#{@port}/#{@slug}"
22
+ @listener = init_listener
23
+ @server = init_server
24
+ end
25
+
26
+ def run
27
+ start
28
+ @running = true
29
+ [:INT, :TERM].each do |signal|
30
+ trap(signal) do
31
+ stop
32
+ exit
33
+ end
34
+ end
35
+ sleep 1 while running?
36
+ end
37
+
38
+ private
39
+
40
+ def running?
41
+ @running
15
42
  end
16
43
 
17
- listener = FileListener.new(md_path, file_listener_callback)
44
+ def init_server
45
+ WebServer.new(host, port, WebApp)
46
+ end
18
47
 
19
- [:INT, :TERM].each do |signal|
20
- trap(signal) do
21
- listener.stop
22
- server.stop
23
- say "\nPreview finished."
24
- exit
48
+ def init_listener
49
+ file_listener_callback = Proc.new do |modified, added, removed|
50
+ modified.each{ |f| Devcenter::Logger.log "File modified: #{f}" }
51
+ WebApp.send_server_event
25
52
  end
53
+ FileListener.new(md_path, file_listener_callback)
26
54
  end
27
- listener.start
28
- url = "http://#{host}:#{port}/#{slug}"
29
- say "\nLive preview for #{slug} available in #{url}"
30
- say "It will refresh when you save #{md_path}"
31
- say "Press Ctrl+C to exit...\n"
32
- Launchy.open(url)
33
- server.start
34
- end
35
55
 
56
+ def start
57
+ @server.start
58
+ @listener.start
59
+ say "\nLive preview for #{slug} available in #{url}"
60
+ say "It will refresh when you save #{md_path}"
61
+ say "Press Ctrl+C to exit...\n"
62
+ Launchy.open(url)
63
+ end
64
+
65
+ def stop
66
+ @server.stop
67
+ @listener.stop
68
+ say "\nPreview finished."
69
+ @running = false
70
+ end
71
+ end
36
72
  end
@@ -6,7 +6,7 @@ module Devcenter::Previewer
6
6
  def initialize(file_path, callback)
7
7
  dir = File.dirname(file_path)
8
8
  basename = File.basename(file_path)
9
- @listener = Listen.to(dir, force_polling: true)
9
+ @listener = Listen.to(dir)
10
10
  @listener.filter(%r{#{basename}})
11
11
  @listener.change(&callback)
12
12
  end
@@ -16,7 +16,7 @@ module Devcenter::Previewer
16
16
  end
17
17
 
18
18
  def stop
19
- @listener.stop
19
+ @listener.stop rescue ThreadError
20
20
  Thread.kill(@thread)
21
21
  end
22
22
  end
@@ -10,11 +10,12 @@ module Devcenter::Previewer
10
10
  end
11
11
 
12
12
  def start
13
- @server.start
13
+ @thread = Thread.new { @server.start }
14
14
  end
15
15
 
16
16
  def stop
17
17
  @server.stop
18
+ Thread.kill(@thread)
18
19
  end
19
20
  end
20
21
 
@@ -1,3 +1,3 @@
1
1
  module Devcenter
2
- VERSION = "1.1.0"
2
+ VERSION = "1.1.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devcenter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Raul Murciano
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-01-25 00:00:00.000000000 Z
12
+ date: 2014-01-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: listen
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - ~>
19
19
  - !ruby/object:Gem::Version
20
- version: 0.7.2
20
+ version: 1.3.1
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ~>
26
26
  - !ruby/object:Gem::Version
27
- version: 0.7.2
27
+ version: 1.3.1
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: commander
30
30
  requirement: !ruby/object:Gem::Requirement