cuba-bin 0.1.0 → 0.1.1

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: 0748a709675c11899697d2ccbfb487bfcea32e24
4
- data.tar.gz: db50c77a2ff5f2e5cc499f6da9af06ebe1e3a03b
3
+ metadata.gz: d1626abc9ea3d27fadf54ac21bb2b94043bd9d18
4
+ data.tar.gz: d68bc5330a8670fcaa788117eee8d4e85fa13909
5
5
  SHA512:
6
- metadata.gz: bb1efff48edfa493dad4a1cab94ae2a867126ed4dd4f71fe5a67ee4b68fa022c7932e0a6fe279e3f4df57a88018d6c1861b9aaf0cc46c72460ad101d4b21c0b6
7
- data.tar.gz: d066bcb58a4f532f48b4abcf5f27fbe7e02577d013caa47b9cfd77d6eb4a96445474a049548c893b3266672505858d3b3fd062e6bcb2eff91354010b23c42ad8
6
+ metadata.gz: 634b934289fcc14feba6b8045530298dab0b16cc0d91687e3cdb2b5e1672a803dd1190a00b35568bdd34868c805962941e34da163006bf6cc9445ad09974fa6e
7
+ data.tar.gz: c7c2f14d49e3f5e3abc38e63676826cbef5f6a80404e53fb6471c2898f2229b419a5180cf121cc36b472f5e0f29f1230eca8aa5de97b08b3146e6f4d5b2105e9
data/cuba-bin.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'cuba/bin/version'
4
+ require 'cuba/bin'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "cuba-bin"
@@ -18,6 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
+ spec.add_dependency "cuba"
21
22
  spec.add_dependency "clap"
22
23
  spec.add_dependency "puma"
23
24
  spec.add_dependency "listen"
data/lib/cuba/bin.rb CHANGED
@@ -1,31 +1,33 @@
1
- require "cuba/bin/version"
1
+ require "cuba"
2
2
  require "cuba/bin/daemon"
3
3
 
4
- module Cuba
5
- module Bin
6
- extend self
4
+ module Cuba::Bin
5
+ unless defined? VERSION
6
+ VERSION = '0.1.1'
7
+ end
7
8
 
8
- def server
9
- Daemon.new(argv).run
10
- end
9
+ extend self
11
10
 
12
- private
11
+ def server
12
+ Daemon.new(argv).run
13
+ end
13
14
 
14
- def argv
15
- @args ||= begin
16
- ARGV.shift
17
- ARGV
18
- end
15
+ private
19
16
 
20
- @args.each_with_index do |arg, i|
21
- if arg[/\s/]
22
- @args[i] = "\"#{arg}\""
23
- else
24
- @args[i] = arg
25
- end
26
- end
17
+ def argv
18
+ @args ||= begin
19
+ ARGV.shift
20
+ ARGV
21
+ end
27
22
 
28
- @args
23
+ @args.each_with_index do |arg, i|
24
+ if arg[/\s/]
25
+ @args[i] = "\"#{arg}\""
26
+ else
27
+ @args[i] = arg
28
+ end
29
29
  end
30
+
31
+ @args
30
32
  end
31
33
  end
@@ -1,118 +1,116 @@
1
1
  require 'listen'
2
2
 
3
- module Cuba
4
- module Bin
5
- class Daemon
6
- extensions = %w(
7
- builder coffee creole css slim erb erubis jbuilder
8
- slim mote haml html js styl dom
9
- less liquid mab markdown md mdown mediawiki mkd mw
10
- nokogiri radius rb rdoc rhtml ru
11
- sass scss str textile txt wiki yajl yml
12
- env.*
13
- ).sort
14
-
15
- DEFAULT_RELOAD_PATTERN = %r(\.(?:builder #{extensions.join('|')})$)
16
-
17
- DEFAULT_FULL_RELOAD_PATTERN = /^Gemfile(?:\.lock)?$/
18
-
19
- # todo> make configurable
20
- IGNORE_PATTERNS = [/\.direnv/, /\.sass-cache/, /^tmp/]
21
-
22
- attr_accessor :options, :puma_args
23
- attr_accessor :puma_pid
24
-
25
- def initialize(puma_args)
26
- puma_args.concat ['-w', '1'] unless puma_args.include? '-w'
27
-
28
- @puma_args = puma_args
29
- # @options, @puma_args = options, puma_args
30
- @options = {}
31
- options[:pattern] ||= DEFAULT_RELOAD_PATTERN
32
- options[:full] ||= DEFAULT_FULL_RELOAD_PATTERN
33
- options[:force_polling] ||= false
34
- self
35
- end
3
+ module Cuba::Bin
4
+ class Daemon
5
+ extensions = %w(
6
+ builder coffee creole css slim erb erubis jbuilder
7
+ slim mote haml html js styl dom
8
+ less liquid mab markdown md mdown mediawiki mkd mw
9
+ nokogiri radius rb rdoc rhtml ru
10
+ sass scss str textile txt wiki yajl yml
11
+ env.*
12
+ ).sort
13
+
14
+ DEFAULT_RELOAD_PATTERN = %r(\.(?:builder #{extensions.join('|')})$)
15
+
16
+ DEFAULT_FULL_RELOAD_PATTERN = /^Gemfile(?:\.lock)?$/
17
+
18
+ # todo> make configurable
19
+ IGNORE_PATTERNS = [/\.direnv/, /\.sass-cache/, /^tmp/]
20
+
21
+ attr_accessor :options, :puma_args
22
+ attr_accessor :puma_pid
23
+
24
+ def initialize(puma_args)
25
+ puma_args.concat ['-w', '1'] unless puma_args.include? '-w'
26
+
27
+ @puma_args = puma_args
28
+ # @options, @puma_args = options, puma_args
29
+ @options = {}
30
+ options[:pattern] ||= DEFAULT_RELOAD_PATTERN
31
+ options[:full] ||= DEFAULT_FULL_RELOAD_PATTERN
32
+ options[:force_polling] ||= false
33
+ self
34
+ end
36
35
 
37
36
 
38
- def log(msg)
39
- $stderr.puts msg
40
- end
37
+ def log(msg)
38
+ $stderr.puts msg
39
+ end
41
40
 
42
- def start_puma
43
- ENV['RACK_ENV'] ||= 'development'
41
+ def start_puma
42
+ ENV['RACK_ENV'] ||= 'development'
44
43
 
45
- envs = {}
46
- env = '.env'
47
- rack_env = "#{env}.#{ENV['RACK_ENV']}"
44
+ envs = {}
45
+ env = '.env'
46
+ rack_env = "#{env}.#{ENV['RACK_ENV']}"
48
47
 
49
- if File.file? rack_env
50
- env = rack_env
51
- elsif !File.file? env
52
- env = false
53
- end
48
+ if File.file? rack_env
49
+ env = rack_env
50
+ elsif !File.file? env
51
+ env = false
52
+ end
54
53
 
55
- if env
56
- File.foreach env do |line|
57
- key, value = line.split "="
58
- envs[key] = value.gsub('\n', '').strip
59
- end
54
+ if env
55
+ File.foreach env do |line|
56
+ key, value = line.split "="
57
+ envs[key] = value.gsub('\n', '').strip
60
58
  end
61
-
62
- @puma_pid = Kernel.spawn(envs, 'puma', *puma_args)
63
59
  end
64
60
 
65
- # TODO maybe consider doing like: http://puma.bogomips.org/SIGNALS.html
66
- def reload_everything
67
- Process.kill(:QUIT, puma_pid)
68
- Process.wait(puma_pid)
69
- start_puma
70
- end
61
+ @puma_pid = Kernel.spawn(envs, 'puma', *puma_args)
62
+ end
71
63
 
72
- def shutdown
73
- listener.stop
74
- Process.kill(:TERM, puma_pid)
75
- Process.wait(puma_pid)
76
- exit
77
- end
64
+ # TODO maybe consider doing like: http://puma.bogomips.org/SIGNALS.html
65
+ def reload_everything
66
+ Process.kill(:QUIT, puma_pid)
67
+ Process.wait(puma_pid)
68
+ start_puma
69
+ end
78
70
 
79
- # tell puma to gracefully shut down workers
80
- def graceful_restart
81
- Process.kill(:SIGUSR1, puma_pid)
82
- end
71
+ def shutdown
72
+ listener.stop
73
+ Process.kill(:TERM, puma_pid)
74
+ Process.wait(puma_pid)
75
+ exit
76
+ end
83
77
 
84
- def handle_change(modified, added, removed)
85
- log "File change event detected: #{{modified: modified, added: added, removed: removed}.inspect}"
78
+ # tell puma to gracefully shut down workers
79
+ def graceful_restart
80
+ Process.kill(:SIGUSR1, puma_pid)
81
+ end
86
82
 
87
- if (modified + added + removed).index {|f| f =~ options[:full]}
88
- reload_everything
89
- else
90
- graceful_restart
91
- end
92
- end
83
+ def handle_change(modified, added, removed)
84
+ log "File change event detected: #{{modified: modified, added: added, removed: removed}.inspect}"
93
85
 
94
- def listener
95
- @listener ||= begin
96
- x = Listen.to(Dir.pwd, :relative_paths=>true, :force_polling=> options[:force_polling]) do |modified, added, removed|
97
- handle_change(modified, added, removed)
98
- end
86
+ if (modified + added + removed).index {|f| f =~ options[:full]}
87
+ reload_everything
88
+ else
89
+ graceful_restart
90
+ end
91
+ end
99
92
 
100
- x.only([ options[:pattern], options[:full] ])
101
- IGNORE_PATTERNS.map{|ptrn| x.ignore(ptrn) }
102
- x
93
+ def listener
94
+ @listener ||= begin
95
+ x = Listen.to(Dir.pwd, :relative_paths=>true, :force_polling=> options[:force_polling]) do |modified, added, removed|
96
+ handle_change(modified, added, removed)
103
97
  end
98
+
99
+ x.only([ options[:pattern], options[:full] ])
100
+ IGNORE_PATTERNS.map{|ptrn| x.ignore(ptrn) }
101
+ x
104
102
  end
103
+ end
105
104
 
106
- def run
107
- that = self
108
- Signal.trap("INT") { |signo| that.shutdown }
109
- Signal.trap("EXIT") { |signo| that.shutdown }
110
- listener.start
111
- start_puma
105
+ def run
106
+ that = self
107
+ Signal.trap("INT") { |signo| that.shutdown }
108
+ Signal.trap("EXIT") { |signo| that.shutdown }
109
+ listener.start
110
+ start_puma
112
111
 
113
- # And now we just want to keep the thread alive--we're just waiting around to get interrupted at this point.
114
- sleep(99999) while true
115
- end
112
+ # And now we just want to keep the thread alive--we're just waiting around to get interrupted at this point.
113
+ sleep(99999) while true
116
114
  end
117
115
  end
118
116
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cuba-bin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - cj
@@ -10,6 +10,20 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2014-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: cuba
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: clap
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -97,7 +111,6 @@ files:
97
111
  - cuba-bin.gemspec
98
112
  - lib/cuba/bin.rb
99
113
  - lib/cuba/bin/daemon.rb
100
- - lib/cuba/bin/version.rb
101
114
  homepage: ''
102
115
  licenses:
103
116
  - MIT
@@ -1,5 +0,0 @@
1
- module Cuba
2
- module Bin
3
- VERSION = "0.1.0"
4
- end
5
- end