http-2 0.11.0 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -2
  3. data/lib/http/2/buffer.rb +6 -4
  4. data/lib/http/2/client.rb +5 -1
  5. data/lib/http/2/compressor.rb +42 -34
  6. data/lib/http/2/connection.rb +72 -86
  7. data/lib/http/2/emitter.rb +4 -1
  8. data/lib/http/2/error.rb +2 -0
  9. data/lib/http/2/flow_buffer.rb +8 -3
  10. data/lib/http/2/framer.rb +83 -94
  11. data/lib/http/2/huffman.rb +19 -17
  12. data/lib/http/2/server.rb +9 -7
  13. data/lib/http/2/stream.rb +48 -48
  14. data/lib/http/2/version.rb +3 -1
  15. data/lib/http/2.rb +2 -0
  16. metadata +7 -60
  17. data/.autotest +0 -20
  18. data/.coveralls.yml +0 -1
  19. data/.gitignore +0 -20
  20. data/.gitmodules +0 -3
  21. data/.rspec +0 -5
  22. data/.rubocop.yml +0 -93
  23. data/.rubocop_todo.yml +0 -131
  24. data/.travis.yml +0 -17
  25. data/Gemfile +0 -16
  26. data/Guardfile +0 -18
  27. data/Guardfile.h2spec +0 -12
  28. data/Rakefile +0 -49
  29. data/example/Gemfile +0 -3
  30. data/example/README.md +0 -44
  31. data/example/client.rb +0 -122
  32. data/example/helper.rb +0 -19
  33. data/example/keys/server.crt +0 -20
  34. data/example/keys/server.key +0 -27
  35. data/example/server.rb +0 -139
  36. data/example/upgrade_client.rb +0 -153
  37. data/example/upgrade_server.rb +0 -203
  38. data/http-2.gemspec +0 -22
  39. data/lib/tasks/generate_huffman_table.rb +0 -166
  40. data/spec/buffer_spec.rb +0 -28
  41. data/spec/client_spec.rb +0 -188
  42. data/spec/compressor_spec.rb +0 -666
  43. data/spec/connection_spec.rb +0 -681
  44. data/spec/emitter_spec.rb +0 -54
  45. data/spec/framer_spec.rb +0 -487
  46. data/spec/h2spec/h2spec.darwin +0 -0
  47. data/spec/h2spec/output/non_secure.txt +0 -317
  48. data/spec/helper.rb +0 -147
  49. data/spec/hpack_test_spec.rb +0 -84
  50. data/spec/huffman_spec.rb +0 -68
  51. data/spec/server_spec.rb +0 -52
  52. data/spec/stream_spec.rb +0 -878
  53. data/spec/support/deep_dup.rb +0 -55
  54. data/spec/support/duplicable.rb +0 -98
data/lib/http/2/stream.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module HTTP2
2
4
  # A single HTTP 2.0 connection can multiplex multiple streams in parallel:
3
5
  # multiple requests and responses can be in flight simultaneously and stream
@@ -49,11 +51,10 @@ module HTTP2
49
51
 
50
52
  # Stream priority as set by initiator.
51
53
  attr_reader :weight
52
- attr_reader :dependency
54
+ attr_reader :dependency, :remote_window
53
55
 
54
56
  # Size of current stream flow control window.
55
57
  attr_reader :local_window
56
- attr_reader :remote_window
57
58
  alias window local_window
58
59
 
59
60
  # Reason why connection was closed.
@@ -120,9 +121,7 @@ module HTTP2
120
121
  # An ALTSVC frame on a
121
122
  # stream other than stream 0 containing non-empty "Origin" information
122
123
  # is invalid and MUST be ignored.
123
- if !frame[:origin] || frame[:origin].empty?
124
- emit(frame[:type], frame)
125
- end
124
+ emit(frame[:type], frame) if !frame[:origin] || frame[:origin].empty?
126
125
  when :blocked
127
126
  emit(frame[:type], frame)
128
127
  end
@@ -170,7 +169,7 @@ module HTTP2
170
169
  end
171
170
 
172
171
  def promise(headers, end_headers: true, &block)
173
- fail ArgumentError, 'must provide callback' unless block_given?
172
+ raise ArgumentError, 'must provide callback' unless block_given?
174
173
 
175
174
  flags = end_headers ? [:end_headers] : []
176
175
  emit(:promise, self, headers, flags, &block)
@@ -243,6 +242,7 @@ module HTTP2
243
242
  def window_update(increment)
244
243
  # emit stream-level WINDOW_UPDATE unless stream is closed
245
244
  return if @state == :closed || @state == :remote_closed
245
+
246
246
  send(type: :window_update, increment: increment)
247
247
  end
248
248
 
@@ -345,18 +345,18 @@ module HTTP2
345
345
  # connection error (Section 5.4.1) of type PROTOCOL_ERROR.
346
346
  when :reserved_local
347
347
  @state = if sending
348
- case frame[:type]
349
- when :headers then event(:half_closed_remote)
350
- when :rst_stream then event(:local_rst)
351
- else stream_error
352
- end
353
- else
354
- case frame[:type]
355
- when :rst_stream then event(:remote_rst)
356
- when :priority, :window_update then @state
357
- else stream_error
358
- end
359
- end
348
+ case frame[:type]
349
+ when :headers then event(:half_closed_remote)
350
+ when :rst_stream then event(:local_rst)
351
+ else stream_error
352
+ end
353
+ else
354
+ case frame[:type]
355
+ when :rst_stream then event(:remote_rst)
356
+ when :priority, :window_update then @state
357
+ else stream_error
358
+ end
359
+ end
360
360
 
361
361
  # A stream in the "reserved (remote)" state has been reserved by a
362
362
  # remote peer.
@@ -374,18 +374,18 @@ module HTTP2
374
374
  # error (Section 5.4.1) of type PROTOCOL_ERROR.
375
375
  when :reserved_remote
376
376
  @state = if sending
377
- case frame[:type]
378
- when :rst_stream then event(:local_rst)
379
- when :priority, :window_update then @state
380
- else stream_error
381
- end
382
- else
383
- case frame[:type]
384
- when :headers then event(:half_closed_local)
385
- when :rst_stream then event(:remote_rst)
386
- else stream_error
387
- end
388
- end
377
+ case frame[:type]
378
+ when :rst_stream then event(:local_rst)
379
+ when :priority, :window_update then @state
380
+ else stream_error
381
+ end
382
+ else
383
+ case frame[:type]
384
+ when :headers then event(:half_closed_local)
385
+ when :rst_stream then event(:remote_rst)
386
+ else stream_error
387
+ end
388
+ end
389
389
 
390
390
  # A stream in the "open" state may be used by both peers to send
391
391
  # frames of any type. In this state, sending peers observe
@@ -523,26 +523,24 @@ module HTTP2
523
523
  when :closed
524
524
  if sending
525
525
  case frame[:type]
526
- when :rst_stream then # ignore
527
- when :priority then
526
+ when :rst_stream # ignore
527
+ when :priority
528
528
  process_priority(frame)
529
529
  else
530
- stream_error(:stream_closed) unless (frame[:type] == :rst_stream)
530
+ stream_error(:stream_closed) unless frame[:type] == :rst_stream
531
531
  end
532
+ elsif frame[:type] == :priority
533
+ process_priority(frame)
532
534
  else
533
- if frame[:type] == :priority
534
- process_priority(frame)
535
- else
536
- case @closed
537
- when :remote_rst, :remote_closed
538
- case frame[:type]
539
- when :rst_stream, :window_update # nop here
540
- else
541
- stream_error(:stream_closed)
542
- end
543
- when :local_rst, :local_closed
544
- frame[:ignore] = true if frame[:type] != :window_update
535
+ case @closed
536
+ when :remote_rst, :remote_closed
537
+ case frame[:type]
538
+ when :rst_stream, :window_update # nop here
539
+ else
540
+ stream_error(:stream_closed)
545
541
  end
542
+ when :local_rst, :local_closed
543
+ frame[:ignore] = true if frame[:type] != :window_update
546
544
  end
547
545
  end
548
546
  end
@@ -587,9 +585,9 @@ module HTTP2
587
585
  @dependency = frame[:stream_dependency]
588
586
  emit(
589
587
  :priority,
590
- weight: frame[:weight],
588
+ weight: frame[:weight],
591
589
  dependency: frame[:stream_dependency],
592
- exclusive: frame[:exclusive],
590
+ exclusive: frame[:exclusive]
593
591
  )
594
592
  # TODO: implement dependency tree housekeeping
595
593
  # Latest draft defines a fairly complex priority control.
@@ -601,6 +599,8 @@ module HTTP2
601
599
  def end_stream?(frame)
602
600
  case frame[:type]
603
601
  when :data, :headers, :continuation
602
+ return false unless frame[:flags]
603
+
604
604
  frame[:flags].include?(:end_stream)
605
605
  else false
606
606
  end
@@ -611,7 +611,7 @@ module HTTP2
611
611
  close(error) if @state != :closed
612
612
 
613
613
  klass = error.to_s.split('_').map(&:capitalize).join
614
- fail Error.const_get(klass), msg
614
+ raise Error.const_get(klass), msg
615
615
  end
616
616
  alias error stream_error
617
617
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module HTTP2
2
- VERSION = '0.11.0'.freeze
4
+ VERSION = '0.12.0'
3
5
  end
data/lib/http/2.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'http/2/version'
2
4
  require 'http/2/error'
3
5
  require 'http/2/emitter'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: http-2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ilya Grigorik
@@ -9,16 +9,16 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-01-06 00:00:00.000000000 Z
12
+ date: 2024-06-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: bundler
15
+ name: base64
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
20
  version: '0'
21
- type: :development
21
+ type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
@@ -32,30 +32,8 @@ executables: []
32
32
  extensions: []
33
33
  extra_rdoc_files: []
34
34
  files:
35
- - ".autotest"
36
- - ".coveralls.yml"
37
- - ".gitignore"
38
- - ".gitmodules"
39
- - ".rspec"
40
- - ".rubocop.yml"
41
- - ".rubocop_todo.yml"
42
- - ".travis.yml"
43
- - Gemfile
44
- - Guardfile
45
- - Guardfile.h2spec
46
35
  - LICENSE
47
36
  - README.md
48
- - Rakefile
49
- - example/Gemfile
50
- - example/README.md
51
- - example/client.rb
52
- - example/helper.rb
53
- - example/keys/server.crt
54
- - example/keys/server.key
55
- - example/server.rb
56
- - example/upgrade_client.rb
57
- - example/upgrade_server.rb
58
- - http-2.gemspec
59
37
  - lib/http/2.rb
60
38
  - lib/http/2/buffer.rb
61
39
  - lib/http/2/client.rb
@@ -70,22 +48,6 @@ files:
70
48
  - lib/http/2/server.rb
71
49
  - lib/http/2/stream.rb
72
50
  - lib/http/2/version.rb
73
- - lib/tasks/generate_huffman_table.rb
74
- - spec/buffer_spec.rb
75
- - spec/client_spec.rb
76
- - spec/compressor_spec.rb
77
- - spec/connection_spec.rb
78
- - spec/emitter_spec.rb
79
- - spec/framer_spec.rb
80
- - spec/h2spec/h2spec.darwin
81
- - spec/h2spec/output/non_secure.txt
82
- - spec/helper.rb
83
- - spec/hpack_test_spec.rb
84
- - spec/huffman_spec.rb
85
- - spec/server_spec.rb
86
- - spec/stream_spec.rb
87
- - spec/support/deep_dup.rb
88
- - spec/support/duplicable.rb
89
51
  homepage: https://github.com/igrigorik/http-2
90
52
  licenses:
91
53
  - MIT
@@ -98,30 +60,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
98
60
  requirements:
99
61
  - - ">="
100
62
  - !ruby/object:Gem::Version
101
- version: 2.1.0
63
+ version: '2.5'
102
64
  required_rubygems_version: !ruby/object:Gem::Requirement
103
65
  requirements:
104
66
  - - ">="
105
67
  - !ruby/object:Gem::Version
106
68
  version: '0'
107
69
  requirements: []
108
- rubygems_version: 3.0.3
70
+ rubygems_version: 3.3.26
109
71
  signing_key:
110
72
  specification_version: 4
111
73
  summary: Pure-ruby HTTP 2.0 protocol implementation
112
- test_files:
113
- - spec/buffer_spec.rb
114
- - spec/client_spec.rb
115
- - spec/compressor_spec.rb
116
- - spec/connection_spec.rb
117
- - spec/emitter_spec.rb
118
- - spec/framer_spec.rb
119
- - spec/h2spec/h2spec.darwin
120
- - spec/h2spec/output/non_secure.txt
121
- - spec/helper.rb
122
- - spec/hpack_test_spec.rb
123
- - spec/huffman_spec.rb
124
- - spec/server_spec.rb
125
- - spec/stream_spec.rb
126
- - spec/support/deep_dup.rb
127
- - spec/support/duplicable.rb
74
+ test_files: []
data/.autotest DELETED
@@ -1,20 +0,0 @@
1
- require 'autotest/growl'
2
-
3
- Autotest.add_hook(:initialize) {|at|
4
- at.add_exception %r{^\.git|\.yardoc}
5
- at.add_exception %r{^./tmp}
6
- at.add_exception %r{coverage}
7
-
8
- at.clear_mappings
9
-
10
- at.add_mapping(%r%^spec/.*_spec\.rb$%) { |filename, _|
11
- filename
12
- }
13
- at.add_mapping(%r%^lib/(.*)\.rb$%) { |_, m|
14
- ["spec/#{m[1].split('/').last}_spec.rb"]
15
- }
16
- at.add_mapping(%r%^spec/(spec_helper|shared/.*)\.rb$%) {
17
- files_matching %r%^spec/.*_spec\.rb$%
18
- }
19
- nil
20
- }
data/.coveralls.yml DELETED
@@ -1 +0,0 @@
1
- service_name: travis-ci
data/.gitignore DELETED
@@ -1,20 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- .DS_Store
7
- .idea
8
- Gemfile.lock
9
- InstalledFiles
10
- _yardoc
11
- coverage
12
- doc/
13
- vendor/
14
- lib/bundler/man
15
- pkg
16
- rdoc
17
- spec/reports
18
- test/tmp
19
- test/version_tmp
20
- tmp
data/.gitmodules DELETED
@@ -1,3 +0,0 @@
1
- [submodule "spec/hpack-test-case"]
2
- path = spec/hpack-test-case
3
- url = https://github.com/http2jp/hpack-test-case
data/.rspec DELETED
@@ -1,5 +0,0 @@
1
- autotest
2
- --color
3
- --format documentation
4
- --order rand
5
- --warnings
data/.rubocop.yml DELETED
@@ -1,93 +0,0 @@
1
- inherit_from: .rubocop_todo.yml
2
-
3
- AllCops:
4
- TargetRubyVersion: 2.1
5
- DisplayCopNames: true
6
- Exclude:
7
- - 'bin/**'
8
- - 'vendor/**/*'
9
- - '**/huffman_statemachine.rb'
10
-
11
- Layout/IndentHeredoc:
12
- Exclude:
13
- - 'lib/tasks/generate_huffman_table.rb'
14
- - 'example/*'
15
-
16
- Metrics/LineLength:
17
- Max: 120
18
-
19
- Metrics/BlockLength:
20
- Max: 700
21
-
22
- Layout/EndAlignment:
23
- EnforcedStyleAlignWith: variable
24
-
25
- Layout/CaseIndentation:
26
- EnforcedStyle: end
27
-
28
- Layout/IndentHash:
29
- EnforcedStyle: consistent
30
-
31
- Style/TrailingCommaInArrayLiteral:
32
- EnforcedStyleForMultiline: comma
33
-
34
- Style/TrailingCommaInHashLiteral:
35
- EnforcedStyleForMultiline: comma
36
-
37
- Layout/SpaceAroundOperators:
38
- Enabled: false
39
-
40
- Layout/ExtraSpacing:
41
- Enabled: false
42
-
43
- Layout/EmptyLinesAroundExceptionHandlingKeywords:
44
- Enabled: false
45
-
46
- Naming/UncommunicativeMethodParamName:
47
- Enabled: false
48
-
49
- Style/SignalException:
50
- Enabled: false
51
-
52
- Style/FrozenStringLiteralComment:
53
- Enabled: false
54
-
55
- Style/ParallelAssignment:
56
- Enabled: false
57
-
58
- Style/ParenthesesAroundCondition:
59
- Enabled: false
60
-
61
- Style/IfInsideElse:
62
- Enabled: false
63
-
64
- Style/IfUnlessModifier:
65
- Enabled: false
66
-
67
- Style/MultilineIfModifier:
68
- Enabled: false
69
-
70
- Lint/EmptyWhen:
71
- Enabled: false
72
-
73
- Style/TrailingCommaInArguments:
74
- Enabled: false
75
-
76
- Style/TrailingUnderscoreVariable:
77
- Enabled: false
78
-
79
- Style/SymbolArray:
80
- Enabled: false
81
-
82
- Style/CommentedKeyword:
83
- Enabled: false
84
-
85
- Style/PercentLiteralDelimiters:
86
- Enabled: false
87
-
88
- Performance/TimesMap:
89
- Enabled: false
90
-
91
- Performance/RedundantBlockCall:
92
- Enabled: false
93
-
data/.rubocop_todo.yml DELETED
@@ -1,131 +0,0 @@
1
- # This configuration was generated by
2
- # `rubocop --auto-gen-config`
3
- # on 2016-06-09 10:57:54 -0400 using RuboCop version 0.40.0.
4
- # The point is for the user to remove these configuration records
5
- # one by one as the offenses are removed from the code base.
6
- # Note that changes in the inspected code, or installation of new
7
- # versions of RuboCop, may require this file to be generated again.
8
-
9
- # Offense count: 24
10
- Metrics/AbcSize:
11
- Max: 185
12
-
13
- # Offense count: 16
14
- Metrics/BlockNesting:
15
- Max: 5
16
-
17
- # Offense count: 5
18
- # Configuration parameters: CountComments.
19
- Metrics/ClassLength:
20
- Max: 325
21
-
22
- Metrics/ModuleLength:
23
- Max: 120
24
-
25
- # Offense count: 12
26
- Metrics/CyclomaticComplexity:
27
- Max: 60
28
-
29
- # Offense count: 9
30
- # Configuration parameters: AllowHeredoc, AllowURI, URISchemes.
31
- # URISchemes: http, https
32
- Metrics/LineLength:
33
- Max: 108
34
-
35
- # Offense count: 29
36
- # Configuration parameters: CountComments.
37
- Metrics/MethodLength:
38
- Max: 134
39
-
40
- # Offense count: 1
41
- # Configuration parameters: CountKeywordArgs.
42
- Metrics/ParameterLists:
43
- Max: 7
44
-
45
- # Offense count: 10
46
- Metrics/PerceivedComplexity:
47
- Max: 46
48
-
49
- # Offense count: 1
50
- # Cop supports --auto-correct.
51
- # Configuration parameters: MaxKeyValuePairs.
52
- Performance/RedundantMerge:
53
- Exclude:
54
- - 'lib/http/2/server.rb'
55
-
56
- # Offense count: 4
57
- Style/Documentation:
58
- Exclude:
59
- - 'spec/**/*'
60
- - 'test/**/*'
61
- - 'example/helper.rb'
62
- - 'example/upgrade_server.rb'
63
- - 'lib/tasks/generate_huffman_table.rb'
64
-
65
- # Offense count: 3
66
- # Cop supports --auto-correct.
67
- # Configuration parameters: EnforcedStyle.
68
- # SupportedStyles: braces, no_braces, context_dependent
69
- Style/BracesAroundHashParameters:
70
- Exclude:
71
- - 'spec/connection_spec.rb'
72
- - 'spec/server_spec.rb'
73
-
74
- # Offense count: 1
75
- # Cop supports --auto-correct.
76
- Style/EmptyCaseCondition:
77
- Exclude:
78
- - 'example/upgrade_server.rb'
79
-
80
- # Offense count: 1
81
- # Configuration parameters: MinBodyLength.
82
- Style/GuardClause:
83
- Exclude:
84
- - 'lib/http/2/connection.rb'
85
-
86
- # Offense count: 2
87
- # Cop supports --auto-correct.
88
- # Configuration parameters: SupportedStyles, IndentationWidth.
89
- # SupportedStyles: special_inside_parentheses, consistent, align_brackets
90
- Layout/IndentArray:
91
- EnforcedStyle: consistent
92
-
93
- # Offense count: 1
94
- # Cop supports --auto-correct.
95
- # Configuration parameters: EnforcedStyle, SupportedStyles.
96
- # SupportedStyles: symmetrical, new_line, same_line
97
- Layout/MultilineArrayBraceLayout:
98
- Exclude:
99
- - 'spec/compressor_spec.rb'
100
-
101
- # Offense count: 16
102
- # Cop supports --auto-correct.
103
- # Configuration parameters: EnforcedStyle, SupportedStyles.
104
- # SupportedStyles: symmetrical, new_line, same_line
105
- Layout/MultilineHashBraceLayout:
106
- Exclude:
107
- - 'spec/compressor_spec.rb'
108
-
109
- # Offense count: 1
110
- # Cop supports --auto-correct.
111
- Style/MutableConstant:
112
- Exclude:
113
- - 'example/upgrade_server.rb'
114
-
115
- # Offense count: 1
116
- # Cop supports --auto-correct.
117
- Style/RedundantSelf:
118
- Exclude:
119
- - 'lib/http/2/connection.rb'
120
-
121
- # Offense count: 1
122
- # Cop supports --auto-correct.
123
- Style/UnneededInterpolation:
124
- Exclude:
125
- - 'spec/compressor_spec.rb'
126
-
127
- # Offense count: 1
128
- # Cop supports --auto-correct.
129
- Style/ZeroLengthPredicate:
130
- Exclude:
131
- - 'lib/http/2/framer.rb'
data/.travis.yml DELETED
@@ -1,17 +0,0 @@
1
- language: ruby
2
- cache: bundler
3
- rvm:
4
- - 2.1
5
- - 2.2
6
- - 2.3
7
- - 2.4
8
- - 2.5
9
- - 2.6
10
- - 2.7
11
- - jruby-9.2.0.0 # latest stable
12
- - jruby-head
13
- - rbx-2
14
- matrix:
15
- allow_failures:
16
- - rvm: jruby-head
17
- - rvm: rbx-2
data/Gemfile DELETED
@@ -1,16 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'rake'
4
- gem 'yard'
5
-
6
- group :test do
7
- gem 'autotest-standalone'
8
- gem 'coveralls', require: false
9
- gem 'pry'
10
- gem 'pry-byebug', platform: :mri
11
- gem 'rspec', '~> 3.4.0'
12
- gem 'rspec-autotest'
13
- gem 'rubocop', '0.57.2'
14
- end
15
-
16
- gemspec
data/Guardfile DELETED
@@ -1,18 +0,0 @@
1
- guard :process, name: 'HTTP/2 Server', command: 'ruby example/server.rb', stop_signal: 'TERM' do
2
- watch(%r{^example/(.+)\.rb$})
3
- watch(%r{^lib/http/2/(.+)\.rb$})
4
-
5
- watch('Gemfile.lock')
6
- end
7
-
8
- def h2spec
9
- puts 'Starting H2 Spec'
10
- sleep 0.7
11
- system '~/go-workspace/bin/h2spec -p 8080 -o 1 -s 4.2'
12
- puts "\n"
13
- end
14
-
15
- guard :shell, name: 'H2 Spec' do
16
- watch(%r{^example/(.+)\.rb$}) { h2spec }
17
- watch(%r{^lib/http/2/(.+)\.rb$}) { h2spec }
18
- end
data/Guardfile.h2spec DELETED
@@ -1,12 +0,0 @@
1
- def h2spec
2
- puts "Starting H2 Spec"
3
- sleep 0.7
4
- system '~/go-workspace/bin/h2spec -p 8080 -o 1 -s 5.1'
5
- puts "\n"
6
- end
7
-
8
- guard :shell, name:'H2 Spec' do
9
- watch(%r{^example/(.+)\.rb$}) { h2spec }
10
- watch(%r{^lib/http/2/(.+)\.rb$}) { h2spec }
11
- end
12
-