spring 1.2.0 → 4.7.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.
Files changed (53) hide show
  1. checksums.yaml +5 -5
  2. data/LICENSE.txt +3 -2
  3. data/README.md +148 -42
  4. data/bin/spring +2 -1
  5. data/lib/spring/application/boot.rb +11 -4
  6. data/lib/spring/application.rb +178 -50
  7. data/lib/spring/application_manager.rb +17 -9
  8. data/lib/spring/boot.rb +2 -0
  9. data/lib/spring/client/binstub.rb +44 -45
  10. data/lib/spring/client/help.rb +1 -1
  11. data/lib/spring/client/rails.rb +6 -5
  12. data/lib/spring/client/run.rb +187 -41
  13. data/lib/spring/client/server.rb +18 -0
  14. data/lib/spring/client/status.rb +2 -2
  15. data/lib/spring/client/stop.rb +7 -22
  16. data/lib/spring/client.rb +11 -1
  17. data/lib/spring/command_wrapper.rb +0 -4
  18. data/lib/spring/commands/rails.rb +21 -0
  19. data/lib/spring/commands.rb +11 -4
  20. data/lib/spring/configuration.rb +49 -2
  21. data/lib/spring/env.rb +43 -12
  22. data/lib/spring/errors.rb +1 -1
  23. data/lib/spring/failsafe_thread.rb +14 -0
  24. data/lib/spring/json.rb +30 -33
  25. data/lib/spring/process_title_updater.rb +2 -2
  26. data/lib/spring/server.rb +45 -13
  27. data/lib/spring/version.rb +1 -1
  28. data/lib/spring/watcher/abstract.rb +44 -13
  29. data/lib/spring/watcher/polling.rb +48 -11
  30. data/lib/spring/watcher.rb +1 -1
  31. metadata +14 -71
  32. data/.gitignore +0 -19
  33. data/.travis.yml +0 -11
  34. data/CHANGELOG.md +0 -188
  35. data/CONTRIBUTING.md +0 -52
  36. data/Gemfile +0 -4
  37. data/Rakefile +0 -21
  38. data/lib/spring/sid.rb +0 -42
  39. data/lib/spring/test/acceptance_test.rb +0 -333
  40. data/lib/spring/test/application.rb +0 -217
  41. data/lib/spring/test/application_generator.rb +0 -121
  42. data/lib/spring/test/rails_version.rb +0 -40
  43. data/lib/spring/test/watcher_test.rb +0 -167
  44. data/lib/spring/test.rb +0 -15
  45. data/spring.gemspec +0 -23
  46. data/test/acceptance_test.rb +0 -4
  47. data/test/apps/.gitignore +0 -3
  48. data/test/helper.rb +0 -7
  49. data/test/unit/client/help_test.rb +0 -60
  50. data/test/unit/client/version_test.rb +0 -14
  51. data/test/unit/commands_test.rb +0 -59
  52. data/test/unit/process_title_updater_test.rb +0 -24
  53. data/test/unit/watcher_test.rb +0 -9
data/lib/spring/json.rb CHANGED
@@ -1,4 +1,4 @@
1
- # encoding: UTF-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  # ### WHY SPRING VENDORS A JSON LIBRARY ###
4
4
  #
@@ -13,7 +13,7 @@
13
13
  module Spring
14
14
  module JSON
15
15
  def self.load(string)
16
- string.force_encoding("utf-8")
16
+ string = string.dup.force_encoding("utf-8") unless string.encoding == Encoding::UTF_8
17
17
  OkJson.decode(string)
18
18
  end
19
19
 
@@ -46,11 +46,9 @@ end
46
46
 
47
47
  # See https://github.com/kr/okjson for updates.
48
48
 
49
- require 'stringio'
50
-
51
49
  # Some parts adapted from
52
- # http://golang.org/src/pkg/json/decode.go and
53
- # http://golang.org/src/pkg/utf8/utf8.go
50
+ # https://golang.org/src/pkg/json/decode.go and
51
+ # https://golang.org/src/pkg/utf8/utf8.go
54
52
  module Spring
55
53
  module OkJson
56
54
  Upstream = '43'
@@ -366,7 +364,7 @@ private
366
364
  end
367
365
  end
368
366
  if rubydoesenc?
369
- a[w] = '' << uchar
367
+ a[w] = +'' << uchar
370
368
  w += 1
371
369
  else
372
370
  w += ucharenc(a, w, uchar)
@@ -468,19 +466,18 @@ private
468
466
 
469
467
 
470
468
  def strenc(s)
471
- t = StringIO.new
472
- t.putc(?")
469
+ t = '"'.b
473
470
  r = 0
474
471
 
475
472
  while r < s.length
476
473
  case s[r]
477
- when ?" then t.print('\\"')
478
- when ?\\ then t.print('\\\\')
479
- when ?\b then t.print('\\b')
480
- when ?\f then t.print('\\f')
481
- when ?\n then t.print('\\n')
482
- when ?\r then t.print('\\r')
483
- when ?\t then t.print('\\t')
474
+ when ?" then t << '\\"'
475
+ when ?\\ then t << '\\\\'
476
+ when ?\b then t << '\\b'
477
+ when ?\f then t << '\\f'
478
+ when ?\n then t << '\\n'
479
+ when ?\r then t << '\\r'
480
+ when ?\t then t << '\\t'
484
481
  else
485
482
  c = s[r]
486
483
  # In ruby >= 1.9, s[r] is a codepoint, not a byte.
@@ -490,14 +487,14 @@ private
490
487
  if c.ord < Spc.ord
491
488
  c = "\\u%04x" % [c.ord]
492
489
  end
493
- t.write(c)
490
+ t << c
494
491
  rescue
495
- t.write(Ustrerr)
492
+ t << Ustrerr
496
493
  end
497
494
  elsif c < Spc
498
- t.write("\\u%04x" % c)
495
+ t << "\\u%04x" % c
499
496
  elsif Spc <= c && c <= ?~
500
- t.putc(c)
497
+ t << c
501
498
  else
502
499
  n = ucharcopy(t, s, r) # ensure valid UTF-8 output
503
500
  r += n - 1 # r is incremented below
@@ -505,8 +502,8 @@ private
505
502
  end
506
503
  r += 1
507
504
  end
508
- t.putc(?")
509
- t.string
505
+ t << '"'
506
+ t
510
507
  end
511
508
 
512
509
 
@@ -531,7 +528,7 @@ private
531
528
 
532
529
  # 1-byte, 7-bit sequence?
533
530
  if c0 < Utagx
534
- t.putc(c0)
531
+ t << c0
535
532
  return 1
536
533
  end
537
534
 
@@ -544,8 +541,8 @@ private
544
541
  # 2-byte, 11-bit sequence?
545
542
  if c0 < Utag3
546
543
  raise Utf8Error if ((c0&Umask2)<<6 | (c1&Umaskx)) <= Uchar1max
547
- t.putc(c0)
548
- t.putc(c1)
544
+ t << c0
545
+ t << c1
549
546
  return 2
550
547
  end
551
548
 
@@ -559,9 +556,9 @@ private
559
556
  if c0 < Utag4
560
557
  u = (c0&Umask3)<<12 | (c1&Umaskx)<<6 | (c2&Umaskx)
561
558
  raise Utf8Error if u <= Uchar2max
562
- t.putc(c0)
563
- t.putc(c1)
564
- t.putc(c2)
559
+ t << c0
560
+ t << c1
561
+ t << c2
565
562
  return 3
566
563
  end
567
564
 
@@ -574,16 +571,16 @@ private
574
571
  if c0 < Utag5
575
572
  u = (c0&Umask4)<<18 | (c1&Umaskx)<<12 | (c2&Umaskx)<<6 | (c3&Umaskx)
576
573
  raise Utf8Error if u <= Uchar3max
577
- t.putc(c0)
578
- t.putc(c1)
579
- t.putc(c2)
580
- t.putc(c3)
574
+ t << c0
575
+ t << c1
576
+ t << c2
577
+ t << c3
581
578
  return 4
582
579
  end
583
580
 
584
581
  raise Utf8Error
585
582
  rescue Utf8Error
586
- t.write(Ustrerr)
583
+ t << Ustrerr
587
584
  return 1
588
585
  end
589
586
 
@@ -1,6 +1,6 @@
1
1
  module Spring
2
2
  # Yes, I know this reimplements a bunch of stuff in Active Support, but
3
- # I don't want the spring client to depend on AS, in order to keep its
3
+ # I don't want the Spring client to depend on AS, in order to keep its
4
4
  # load time down.
5
5
  class ProcessTitleUpdater
6
6
  SECOND = 1
@@ -10,7 +10,7 @@ module Spring
10
10
  def self.run(&block)
11
11
  updater = new(&block)
12
12
 
13
- Thread.new {
13
+ Spring.failsafe_thread {
14
14
  $0 = updater.value
15
15
  loop { $0 = updater.next }
16
16
  }
data/lib/spring/server.rb CHANGED
@@ -10,19 +10,26 @@ require "spring/commands"
10
10
 
11
11
  module Spring
12
12
  class Server
13
- def self.boot
14
- new.boot
13
+ def self.boot(options = {})
14
+ new(options).boot
15
15
  end
16
16
 
17
17
  attr_reader :env
18
18
 
19
- def initialize(env = Env.new)
20
- @env = env
21
- @applications = Hash.new { |h, k| h[k] = ApplicationManager.new(k) }
19
+ def initialize(options = {})
20
+ @foreground = options.fetch(:foreground, false)
21
+ @env = options[:env] || default_env
22
+ @applications = Hash.new do |hash, key|
23
+ hash[key] = ApplicationManager.new(*key, env)
24
+ end
22
25
  @pidfile = env.pidfile_path.open('a')
23
26
  @mutex = Mutex.new
24
27
  end
25
28
 
29
+ def foreground?
30
+ @foreground
31
+ end
32
+
26
33
  def log(message)
27
34
  env.log "[server] #{message}"
28
35
  end
@@ -31,8 +38,8 @@ module Spring
31
38
  Spring.verify_environment
32
39
 
33
40
  write_pidfile
34
- set_pgid
35
- ignore_signals
41
+ set_pgid unless foreground?
42
+ ignore_signals unless foreground?
36
43
  set_exit_hook
37
44
  set_process_title
38
45
  start_server
@@ -42,6 +49,7 @@ module Spring
42
49
  server = UNIXServer.open(env.socket_name)
43
50
  log "started on #{env.socket_name}"
44
51
  loop { serve server.accept }
52
+ rescue Interrupt
45
53
  end
46
54
 
47
55
  def serve(client)
@@ -51,31 +59,37 @@ module Spring
51
59
  app_client = client.recv_io
52
60
  command = JSON.load(client.read(client.gets.to_i))
53
61
 
54
- args, default_rails_env = command.values_at('args', 'default_rails_env')
62
+ args, default_rails_env, spawn_env, reset_env = command.values_at('args', 'default_rails_env', 'spawn_env', 'reset_env')
55
63
 
56
64
  if Spring.command?(args.first)
65
+ application = @applications[rails_env_for(args, default_rails_env, spawn_env)]
66
+ reset_if_env_changed(application, reset_env)
67
+
57
68
  log "running command #{args.first}"
58
69
  client.puts
59
- client.puts @applications[rails_env_for(args, default_rails_env)].run(app_client)
70
+ client.puts application.run(app_client)
60
71
  else
61
72
  log "command not found #{args.first}"
62
73
  client.close
63
74
  end
64
75
  rescue SocketError => e
65
76
  raise e unless client.eof?
77
+ rescue Errno::EPIPE => e
78
+ log "client disconnected with error #{e.message}, ignoring command"
66
79
  ensure
67
80
  redirect_output
68
81
  end
69
82
 
70
- def rails_env_for(args, default_rails_env)
71
- Spring.command(args.first).env(args.drop(1)) || default_rails_env
83
+ def rails_env_for(args, default_rails_env, spawn_env)
84
+ [Spring.command(args.first).env(args.drop(1)) || default_rails_env, spawn_env]
72
85
  end
73
86
 
74
87
  # Boot the server into the process group of the current session.
75
88
  # This will cause it to be automatically killed once the session
76
89
  # ends (i.e. when the user closes their terminal).
77
90
  def set_pgid
78
- Process.setpgid(0, SID.pgid)
91
+ pgid = Process.getpgid(Process.getsid)
92
+ Process.setpgid(0, pgid)
79
93
  end
80
94
 
81
95
  # Ignore SIGINT and SIGQUIT otherwise the user typing ^C or ^\ on the command line
@@ -100,7 +114,7 @@ module Spring
100
114
  end
101
115
  end
102
116
 
103
- @applications.values.map { |a| Thread.new { a.stop } }.map(&:join)
117
+ @applications.values.map { |a| Spring.failsafe_thread { a.stop } }.map(&:join)
104
118
  end
105
119
 
106
120
  def write_pidfile
@@ -126,5 +140,23 @@ module Spring
126
140
  "spring server | #{env.app_name} | started #{distance} ago"
127
141
  }
128
142
  end
143
+
144
+ private
145
+
146
+ def reset_if_env_changed(application, reset_env)
147
+ application.stop if ENV.slice(*reset_env.keys) != reset_env
148
+ end
149
+
150
+ def default_env
151
+ Env.new(log_file: default_log_file)
152
+ end
153
+
154
+ def default_log_file
155
+ if foreground? && !ENV["SPRING_LOG"]
156
+ $stdout
157
+ else
158
+ nil
159
+ end
160
+ end
129
161
  end
130
162
  end
@@ -1,3 +1,3 @@
1
1
  module Spring
2
- VERSION = "1.2.0"
2
+ VERSION = "4.7.0"
3
3
  end
@@ -1,6 +1,4 @@
1
- require "set"
2
1
  require "pathname"
3
- require "mutex_m"
4
2
 
5
3
  module Spring
6
4
  module Watcher
@@ -10,22 +8,36 @@ module Spring
10
8
  # IO.select([watcher]) # watcher is running in background
11
9
  # watcher.stale? # => true
12
10
  class Abstract
13
- include Mutex_m
14
-
15
11
  attr_reader :files, :directories, :root, :latency
16
12
 
17
13
  def initialize(root, latency)
18
- super()
19
-
14
+ @mutex = Mutex.new
20
15
  @root = File.realpath(root)
21
16
  @latency = latency
22
- @files = Set.new
23
- @directories = Set.new
17
+ @files = {}
18
+ @directories = {}
24
19
  @stale = false
25
20
  @listeners = []
21
+
22
+ @on_debug = nil
23
+ end
24
+
25
+ def synchronize(&block)
26
+ # Used by some gems.
27
+ @mutex.synchronize(&block)
28
+ end
29
+
30
+ def on_debug(&block)
31
+ @on_debug = block
32
+ end
33
+
34
+ def debug
35
+ @on_debug.call(yield) if @on_debug
26
36
  end
27
37
 
28
38
  def add(*items)
39
+ debug { "watcher: add: #{items.inspect}" }
40
+
29
41
  items = items.flatten.map do |item|
30
42
  item = Pathname.new(item)
31
43
 
@@ -36,19 +48,35 @@ module Spring
36
48
  end
37
49
  end
38
50
 
39
- items = items.select(&:exist?)
51
+ items = items.select do |item|
52
+ if item.symlink?
53
+ item.readlink.exist?.tap do |exists|
54
+ if !exists
55
+ debug { "add: ignoring dangling symlink: #{item.inspect} -> #{item.readlink.inspect}" }
56
+ end
57
+ end
58
+ else
59
+ item.exist?
60
+ end
61
+ end
40
62
 
41
- synchronize {
63
+ @mutex.synchronize do
42
64
  items.each do |item|
43
65
  if item.directory?
44
- directories << item.realpath.to_s
66
+ directories[item.realpath.to_s] = true
45
67
  else
46
- files << item.realpath.to_s
68
+ begin
69
+ files[item.realpath.to_s] = true
70
+ rescue Errno::ENOENT
71
+ # Race condition. Ignore symlinks whose target was removed
72
+ # since the check above, or are deeply chained.
73
+ debug { "add: ignoring now-dangling symlink: #{item.inspect} -> #{item.readlink.inspect}" }
74
+ end
47
75
  end
48
76
  end
49
77
 
50
78
  subjects_changed
51
- }
79
+ end
52
80
  end
53
81
 
54
82
  def stale?
@@ -56,16 +84,19 @@ module Spring
56
84
  end
57
85
 
58
86
  def on_stale(&block)
87
+ debug { "added listener: #{block.inspect}" }
59
88
  @listeners << block
60
89
  end
61
90
 
62
91
  def mark_stale
63
92
  return if stale?
64
93
  @stale = true
94
+ debug { "marked stale, calling listeners: listeners=#{@listeners.inspect}" }
65
95
  @listeners.each(&:call)
66
96
  end
67
97
 
68
98
  def restart
99
+ debug { "restarting" }
69
100
  stop
70
101
  start
71
102
  end
@@ -1,4 +1,4 @@
1
- require "spring/watcher"
1
+ require "spring/watcher/abstract"
2
2
 
3
3
  module Spring
4
4
  module Watcher
@@ -12,7 +12,13 @@ module Spring
12
12
  end
13
13
 
14
14
  def check_stale
15
- synchronize { mark_stale if mtime < compute_mtime }
15
+ @mutex.synchronize do
16
+ computed = compute_mtime
17
+ if mtime < computed
18
+ debug { "check_stale: mtime=#{mtime.inspect} < computed=#{computed.inspect}" }
19
+ mark_stale
20
+ end
21
+ end
16
22
  end
17
23
 
18
24
  def add(*)
@@ -21,40 +27,71 @@ module Spring
21
27
  end
22
28
 
23
29
  def start
30
+ debug { "start: poller=#{@poller.inspect}" }
24
31
  unless @poller
25
32
  @poller = Thread.new {
26
33
  Thread.current.abort_on_exception = true
27
34
 
28
- loop do
29
- Kernel.sleep latency
30
- check_stale
35
+ begin
36
+ until stale?
37
+ Kernel.sleep latency
38
+ check_stale
39
+ end
40
+ rescue Exception => e
41
+ debug do
42
+ "poller: aborted: #{e.class}: #{e}\n #{e.backtrace.join("\n ")}"
43
+ end
44
+ raise
45
+ ensure
46
+ @poller = nil
31
47
  end
32
48
  }
33
49
  end
34
50
  end
35
51
 
36
52
  def stop
53
+ debug { "stopping poller: #{@poller.inspect}" }
37
54
  if @poller
38
55
  @poller.kill
39
56
  @poller = nil
40
57
  end
41
58
  end
42
59
 
60
+ def running?
61
+ @poller && @poller.alive?
62
+ end
63
+
43
64
  def subjects_changed
44
- @mtime = compute_mtime
65
+ computed = compute_mtime
66
+ debug { "subjects_changed: mtime #{@mtime} -> #{computed}" }
67
+ @mtime = computed
45
68
  end
46
69
 
47
70
  private
48
71
 
49
72
  def compute_mtime
50
- expanded_files.map { |f| File.mtime(f).to_f }.max || 0
51
- rescue Errno::ENOENT
52
- # if a file does no longer exist, the watcher is always stale.
53
- Float::MAX
73
+ expanded_files.map do |f|
74
+ # Get the mtime of symlink targets. Ignore dangling symlinks.
75
+ if File.symlink?(f)
76
+ begin
77
+ File.mtime(f)
78
+ rescue Errno::ENOENT
79
+ 0
80
+ end
81
+ # If a file no longer exists, treat it as changed.
82
+ else
83
+ begin
84
+ File.mtime(f)
85
+ rescue Errno::ENOENT
86
+ debug { "compute_mtime: no longer exists: #{f}" }
87
+ Float::MAX
88
+ end
89
+ end.to_f
90
+ end.max || 0
54
91
  end
55
92
 
56
93
  def expanded_files
57
- files + Dir["{#{directories.map { |d| "#{d}/**/*" }.join(",")}}"]
94
+ (files.keys + Dir["{#{directories.keys.map { |d| "#{d}/**/*" }.join(",")}}"]).uniq
58
95
  end
59
96
  end
60
97
  end
@@ -25,6 +25,6 @@ module Spring
25
25
  end
26
26
 
27
27
  def self.watch(*items)
28
- watcher.add *items
28
+ watcher.add(*items)
29
29
  end
30
30
  end
metadata CHANGED
@@ -1,44 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spring
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 4.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Leighton
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2014-11-22 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: activesupport
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- description: Rails application preloader
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies: []
12
+ description: Preloads your application so things like console, rake and tests run
13
+ faster
42
14
  email:
43
15
  - j@jonathanleighton.com
44
16
  executables:
@@ -46,14 +18,8 @@ executables:
46
18
  extensions: []
47
19
  extra_rdoc_files: []
48
20
  files:
49
- - ".gitignore"
50
- - ".travis.yml"
51
- - CHANGELOG.md
52
- - CONTRIBUTING.md
53
- - Gemfile
54
21
  - LICENSE.txt
55
22
  - README.md
56
- - Rakefile
57
23
  - bin/spring
58
24
  - lib/spring/application.rb
59
25
  - lib/spring/application/boot.rb
@@ -66,6 +32,7 @@ files:
66
32
  - lib/spring/client/help.rb
67
33
  - lib/spring/client/rails.rb
68
34
  - lib/spring/client/run.rb
35
+ - lib/spring/client/server.rb
69
36
  - lib/spring/client/status.rb
70
37
  - lib/spring/client/stop.rb
71
38
  - lib/spring/client/version.rb
@@ -76,34 +43,20 @@ files:
76
43
  - lib/spring/configuration.rb
77
44
  - lib/spring/env.rb
78
45
  - lib/spring/errors.rb
46
+ - lib/spring/failsafe_thread.rb
79
47
  - lib/spring/json.rb
80
48
  - lib/spring/process_title_updater.rb
81
49
  - lib/spring/server.rb
82
- - lib/spring/sid.rb
83
- - lib/spring/test.rb
84
- - lib/spring/test/acceptance_test.rb
85
- - lib/spring/test/application.rb
86
- - lib/spring/test/application_generator.rb
87
- - lib/spring/test/rails_version.rb
88
- - lib/spring/test/watcher_test.rb
89
50
  - lib/spring/version.rb
90
51
  - lib/spring/watcher.rb
91
52
  - lib/spring/watcher/abstract.rb
92
53
  - lib/spring/watcher/polling.rb
93
- - spring.gemspec
94
- - test/acceptance_test.rb
95
- - test/apps/.gitignore
96
- - test/helper.rb
97
- - test/unit/client/help_test.rb
98
- - test/unit/client/version_test.rb
99
- - test/unit/commands_test.rb
100
- - test/unit/process_title_updater_test.rb
101
- - test/unit/watcher_test.rb
102
- homepage: http://github.com/rails/spring
54
+ homepage: https://github.com/rails/spring
103
55
  licenses:
104
56
  - MIT
105
- metadata: {}
106
- post_install_message:
57
+ metadata:
58
+ rubygems_mfa_required: 'true'
59
+ changelog_uri: https://github.com/rails/spring/blob/main/CHANGELOG.md
107
60
  rdoc_options: []
108
61
  require_paths:
109
62
  - lib
@@ -111,24 +64,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
111
64
  requirements:
112
65
  - - ">="
113
66
  - !ruby/object:Gem::Version
114
- version: '0'
67
+ version: 3.1.0
115
68
  required_rubygems_version: !ruby/object:Gem::Requirement
116
69
  requirements:
117
70
  - - ">="
118
71
  - !ruby/object:Gem::Version
119
72
  version: '0'
120
73
  requirements: []
121
- rubyforge_project:
122
- rubygems_version: 2.2.2
123
- signing_key:
74
+ rubygems_version: 3.6.7
124
75
  specification_version: 4
125
76
  summary: Rails application preloader
126
- test_files:
127
- - test/acceptance_test.rb
128
- - test/apps/.gitignore
129
- - test/helper.rb
130
- - test/unit/client/help_test.rb
131
- - test/unit/client/version_test.rb
132
- - test/unit/commands_test.rb
133
- - test/unit/process_title_updater_test.rb
134
- - test/unit/watcher_test.rb
77
+ test_files: []
data/.gitignore DELETED
@@ -1,19 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- .rvmrc
7
- Gemfile.lock
8
- InstalledFiles
9
- _yardoc
10
- coverage
11
- doc/
12
- lib/bundler/man
13
- pkg
14
- rdoc
15
- spec/reports
16
- test/tmp
17
- test/version_tmp
18
- tmp
19
- .ruby-version
data/.travis.yml DELETED
@@ -1,11 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 1.9.3
4
- - 2.0.0
5
- - 2.1.2
6
- env:
7
- - RAILS_VERSION="~> 3.2.0"
8
- - RAILS_VERSION="~> 4.0.0"
9
- - RAILS_VERSION="~> 4.1.0"
10
- before_script:
11
- - travis_retry gem install rails --version "$RAILS_VERSION"