ruby-kafka 0.5.2.beta3 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.readygo +1 -0
- data/CHANGELOG.md +3 -0
- data/benchmarks/message_encoding.rb +21 -0
- data/lib/kafka/consumer.rb +1 -0
- data/lib/kafka/datadog.rb +4 -0
- data/lib/kafka/fetch_operation.rb +1 -4
- data/lib/kafka/fetched_message.rb +21 -17
- data/lib/kafka/version.rb +1 -1
- data/ruby-kafka.gemspec +2 -1
- metadata +20 -17
- data/vendor/bundle/bin/bundler +0 -17
- data/vendor/bundle/bin/coderay +0 -17
- data/vendor/bundle/bin/dotenv +0 -17
- data/vendor/bundle/bin/htmldiff +0 -17
- data/vendor/bundle/bin/ldiff +0 -17
- data/vendor/bundle/bin/pry +0 -17
- data/vendor/bundle/bin/rake +0 -17
- data/vendor/bundle/bin/rspec +0 -17
- data/vendor/bundle/bin/rubocop +0 -17
- data/vendor/bundle/bin/ruby-parse +0 -17
- data/vendor/bundle/bin/ruby-prof +0 -17
- data/vendor/bundle/bin/ruby-prof-check-trace +0 -17
- data/vendor/bundle/bin/ruby-rewrite +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 045d5a61276b8499bdb55c05602625a44f558b38
|
4
|
+
data.tar.gz: 5192d0caa0e53cb995ff315aedbb35de61b214f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bfa82cc9074c2e8c3e8e82cd1dfe288fae912fc02a96d355ebcf69d0106746749c00b5120b6a7a151b5c8191ed499d52c1ee0543675772f7792d38d83d2b0ced
|
7
|
+
data.tar.gz: b03a4e3b7b50c6a0ec879c23a29059ced2f242ae8c5e6e6239afc9e9e083fcc0960b07b03b7ed9cd47c7a3f3c7855fc856448974b9ef5757f6500d741821edba
|
data/.readygo
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"readygo_file_format_version":1,"benchmark_results":[["message serialization decoding",[0.00777734375,0.007609375,0.00721875,0.00836328125,0.007546875,0.0088046875,0.0069414062500000005,0.007550781249999999,0.0072734374999999995,0.009625,0.007867187500000001,0.01226953125,0.0073984375,0.007292968750000001,0.00937890625,0.0073750000000000005]]]}
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,8 @@ Changes and additions to the library will be listed here.
|
|
4
4
|
|
5
5
|
## Unreleased
|
6
6
|
|
7
|
+
## v0.5.2
|
8
|
+
|
7
9
|
- Instrument the start of message/batch processing (#496).
|
8
10
|
- Mark `Client#fetch_messages` as stable.
|
9
11
|
- Fix the list topics API (#508).
|
@@ -12,6 +14,7 @@ Changes and additions to the library will be listed here.
|
|
12
14
|
- Fix compressed message set offset bug (#506).
|
13
15
|
- Test against multiple versions of Kafka.
|
14
16
|
- Fix double-processing of messages after a consumer exception (#518).
|
17
|
+
- Track consumer offsets in Datadog.
|
15
18
|
|
16
19
|
## v0.5.1
|
17
20
|
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require "kafka"
|
2
|
+
|
3
|
+
ready "message serialization" do
|
4
|
+
before do
|
5
|
+
message = Kafka::Protocol::Message.new(
|
6
|
+
value: "hello",
|
7
|
+
key: "world",
|
8
|
+
)
|
9
|
+
|
10
|
+
@io = StringIO.new
|
11
|
+
encoder = Kafka::Protocol::Encoder.new(@io)
|
12
|
+
message.encode(encoder)
|
13
|
+
|
14
|
+
@decoder = Kafka::Protocol::Decoder.new(@io)
|
15
|
+
end
|
16
|
+
|
17
|
+
go "decoding" do
|
18
|
+
@io.rewind
|
19
|
+
Kafka::Protocol::Message.decode(@decoder)
|
20
|
+
end
|
21
|
+
end
|
data/lib/kafka/consumer.rb
CHANGED
@@ -294,6 +294,7 @@ module Kafka
|
|
294
294
|
notification = {
|
295
295
|
topic: batch.topic,
|
296
296
|
partition: batch.partition,
|
297
|
+
last_offset: batch.last_offset,
|
297
298
|
offset_lag: batch.offset_lag,
|
298
299
|
highwater_mark_offset: batch.highwater_mark_offset,
|
299
300
|
message_count: batch.messages.count,
|
data/lib/kafka/datadog.rb
CHANGED
@@ -122,6 +122,7 @@ module Kafka
|
|
122
122
|
|
123
123
|
class ConsumerSubscriber < StatsdSubscriber
|
124
124
|
def process_message(event)
|
125
|
+
offset = event.payload.fetch(:offset)
|
125
126
|
offset_lag = event.payload.fetch(:offset_lag)
|
126
127
|
create_time = event.payload.fetch(:create_time)
|
127
128
|
time_lag = create_time && ((Time.now - create_time) * 1000).to_i
|
@@ -140,6 +141,7 @@ module Kafka
|
|
140
141
|
increment("consumer.messages", tags: tags)
|
141
142
|
end
|
142
143
|
|
144
|
+
gauge("consumer.offset", offset, tags: tags)
|
143
145
|
gauge("consumer.lag", offset_lag, tags: tags)
|
144
146
|
|
145
147
|
# Not all messages have timestamps.
|
@@ -149,6 +151,7 @@ module Kafka
|
|
149
151
|
end
|
150
152
|
|
151
153
|
def process_batch(event)
|
154
|
+
offset = event.payload.fetch(:last_offset)
|
152
155
|
lag = event.payload.fetch(:offset_lag)
|
153
156
|
messages = event.payload.fetch(:message_count)
|
154
157
|
|
@@ -166,6 +169,7 @@ module Kafka
|
|
166
169
|
count("consumer.messages", messages, tags: tags)
|
167
170
|
end
|
168
171
|
|
172
|
+
gauge("consumer.offset", offset, tags: tags)
|
169
173
|
gauge("consumer.lag", lag, tags: tags)
|
170
174
|
end
|
171
175
|
|
@@ -91,12 +91,9 @@ module Kafka
|
|
91
91
|
|
92
92
|
messages = fetched_partition.messages.map {|message|
|
93
93
|
FetchedMessage.new(
|
94
|
-
|
95
|
-
key: message.key,
|
94
|
+
message: message,
|
96
95
|
topic: fetched_topic.name,
|
97
96
|
partition: fetched_partition.partition,
|
98
|
-
offset: message.offset,
|
99
|
-
create_time: message.create_time,
|
100
97
|
)
|
101
98
|
}
|
102
99
|
|
@@ -1,31 +1,35 @@
|
|
1
1
|
module Kafka
|
2
2
|
class FetchedMessage
|
3
|
-
|
4
|
-
# @return [String] the value of the message.
|
5
|
-
attr_reader :value
|
6
|
-
|
7
|
-
# @return [String] the key of the message.
|
8
|
-
attr_reader :key
|
9
|
-
|
10
3
|
# @return [String] the name of the topic that the message was written to.
|
11
4
|
attr_reader :topic
|
12
5
|
|
13
6
|
# @return [Integer] the partition number that the message was written to.
|
14
7
|
attr_reader :partition
|
15
8
|
|
9
|
+
def initialize(message:, topic:, partition:)
|
10
|
+
@message = message
|
11
|
+
@topic = topic
|
12
|
+
@partition = partition
|
13
|
+
end
|
14
|
+
|
15
|
+
# @return [String] the value of the message.
|
16
|
+
def value
|
17
|
+
@message.value
|
18
|
+
end
|
19
|
+
|
20
|
+
# @return [String] the key of the message.
|
21
|
+
def key
|
22
|
+
@message.key
|
23
|
+
end
|
24
|
+
|
16
25
|
# @return [Integer] the offset of the message in the partition.
|
17
|
-
|
26
|
+
def offset
|
27
|
+
@message.offset
|
28
|
+
end
|
18
29
|
|
19
30
|
# @return [Time] the timestamp of the message.
|
20
|
-
|
21
|
-
|
22
|
-
def initialize(value: nil, key: nil, topic:, partition:, offset:, create_time: nil)
|
23
|
-
@value = value
|
24
|
-
@key = key
|
25
|
-
@topic = topic
|
26
|
-
@partition = partition
|
27
|
-
@offset = offset
|
28
|
-
@create_time = create_time
|
31
|
+
def create_time
|
32
|
+
@message.create_time
|
29
33
|
end
|
30
34
|
end
|
31
35
|
end
|
data/lib/kafka/version.rb
CHANGED
data/ruby-kafka.gemspec
CHANGED
@@ -43,5 +43,6 @@ Gem::Specification.new do |spec|
|
|
43
43
|
spec.add_development_dependency "ruby-prof"
|
44
44
|
spec.add_development_dependency "timecop"
|
45
45
|
spec.add_development_dependency "rubocop", "~> 0.49.1"
|
46
|
-
spec.add_development_dependency "gssapi",
|
46
|
+
spec.add_development_dependency "gssapi", ">= 1.2.0"
|
47
|
+
spec.add_development_dependency "stackprof"
|
47
48
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-kafka
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.2
|
4
|
+
version: 0.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Schierbeck
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-01-
|
11
|
+
date: 2018-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -262,6 +262,20 @@ dependencies:
|
|
262
262
|
- - ">="
|
263
263
|
- !ruby/object:Gem::Version
|
264
264
|
version: 1.2.0
|
265
|
+
- !ruby/object:Gem::Dependency
|
266
|
+
name: stackprof
|
267
|
+
requirement: !ruby/object:Gem::Requirement
|
268
|
+
requirements:
|
269
|
+
- - ">="
|
270
|
+
- !ruby/object:Gem::Version
|
271
|
+
version: '0'
|
272
|
+
type: :development
|
273
|
+
prerelease: false
|
274
|
+
version_requirements: !ruby/object:Gem::Requirement
|
275
|
+
requirements:
|
276
|
+
- - ">="
|
277
|
+
- !ruby/object:Gem::Version
|
278
|
+
version: '0'
|
265
279
|
description: A client library for the Kafka distributed commit log.
|
266
280
|
email:
|
267
281
|
- daniel.schierbeck@gmail.com
|
@@ -271,6 +285,7 @@ extra_rdoc_files: []
|
|
271
285
|
files:
|
272
286
|
- ".circleci/config.yml"
|
273
287
|
- ".gitignore"
|
288
|
+
- ".readygo"
|
274
289
|
- ".rspec"
|
275
290
|
- ".rubocop.yml"
|
276
291
|
- ".yardopts"
|
@@ -281,6 +296,7 @@ files:
|
|
281
296
|
- Procfile
|
282
297
|
- README.md
|
283
298
|
- Rakefile
|
299
|
+
- benchmarks/message_encoding.rb
|
284
300
|
- bin/console
|
285
301
|
- bin/setup
|
286
302
|
- ci/consumer.rb
|
@@ -369,19 +385,6 @@ files:
|
|
369
385
|
- lib/ruby-kafka.rb
|
370
386
|
- performance/profile.rb
|
371
387
|
- ruby-kafka.gemspec
|
372
|
-
- vendor/bundle/bin/bundler
|
373
|
-
- vendor/bundle/bin/coderay
|
374
|
-
- vendor/bundle/bin/dotenv
|
375
|
-
- vendor/bundle/bin/htmldiff
|
376
|
-
- vendor/bundle/bin/ldiff
|
377
|
-
- vendor/bundle/bin/pry
|
378
|
-
- vendor/bundle/bin/rake
|
379
|
-
- vendor/bundle/bin/rspec
|
380
|
-
- vendor/bundle/bin/rubocop
|
381
|
-
- vendor/bundle/bin/ruby-parse
|
382
|
-
- vendor/bundle/bin/ruby-prof
|
383
|
-
- vendor/bundle/bin/ruby-prof-check-trace
|
384
|
-
- vendor/bundle/bin/ruby-rewrite
|
385
388
|
homepage: https://github.com/zendesk/ruby-kafka
|
386
389
|
licenses:
|
387
390
|
- Apache License Version 2.0
|
@@ -397,9 +400,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
397
400
|
version: 2.1.0
|
398
401
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
399
402
|
requirements:
|
400
|
-
- - "
|
403
|
+
- - ">="
|
401
404
|
- !ruby/object:Gem::Version
|
402
|
-
version:
|
405
|
+
version: '0'
|
403
406
|
requirements: []
|
404
407
|
rubyforge_project:
|
405
408
|
rubygems_version: 2.6.13
|
data/vendor/bundle/bin/bundler
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
#
|
4
|
-
# This file was generated by Bundler.
|
5
|
-
#
|
6
|
-
# The application 'bundler' is installed as part of a gem, and
|
7
|
-
# this file is here to facilitate running it.
|
8
|
-
#
|
9
|
-
|
10
|
-
require "pathname"
|
11
|
-
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../../../Gemfile",
|
12
|
-
Pathname.new(__FILE__).realpath)
|
13
|
-
|
14
|
-
require "rubygems"
|
15
|
-
require "bundler/setup"
|
16
|
-
|
17
|
-
load Gem.bin_path("bundler", "bundler")
|
data/vendor/bundle/bin/coderay
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
#
|
4
|
-
# This file was generated by Bundler.
|
5
|
-
#
|
6
|
-
# The application 'coderay' is installed as part of a gem, and
|
7
|
-
# this file is here to facilitate running it.
|
8
|
-
#
|
9
|
-
|
10
|
-
require "pathname"
|
11
|
-
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../../../Gemfile",
|
12
|
-
Pathname.new(__FILE__).realpath)
|
13
|
-
|
14
|
-
require "rubygems"
|
15
|
-
require "bundler/setup"
|
16
|
-
|
17
|
-
load Gem.bin_path("coderay", "coderay")
|
data/vendor/bundle/bin/dotenv
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
#
|
4
|
-
# This file was generated by Bundler.
|
5
|
-
#
|
6
|
-
# The application 'dotenv' is installed as part of a gem, and
|
7
|
-
# this file is here to facilitate running it.
|
8
|
-
#
|
9
|
-
|
10
|
-
require "pathname"
|
11
|
-
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../../../Gemfile",
|
12
|
-
Pathname.new(__FILE__).realpath)
|
13
|
-
|
14
|
-
require "rubygems"
|
15
|
-
require "bundler/setup"
|
16
|
-
|
17
|
-
load Gem.bin_path("dotenv", "dotenv")
|
data/vendor/bundle/bin/htmldiff
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
#
|
4
|
-
# This file was generated by Bundler.
|
5
|
-
#
|
6
|
-
# The application 'htmldiff' is installed as part of a gem, and
|
7
|
-
# this file is here to facilitate running it.
|
8
|
-
#
|
9
|
-
|
10
|
-
require "pathname"
|
11
|
-
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../../../Gemfile",
|
12
|
-
Pathname.new(__FILE__).realpath)
|
13
|
-
|
14
|
-
require "rubygems"
|
15
|
-
require "bundler/setup"
|
16
|
-
|
17
|
-
load Gem.bin_path("diff-lcs", "htmldiff")
|
data/vendor/bundle/bin/ldiff
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
#
|
4
|
-
# This file was generated by Bundler.
|
5
|
-
#
|
6
|
-
# The application 'ldiff' is installed as part of a gem, and
|
7
|
-
# this file is here to facilitate running it.
|
8
|
-
#
|
9
|
-
|
10
|
-
require "pathname"
|
11
|
-
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../../../Gemfile",
|
12
|
-
Pathname.new(__FILE__).realpath)
|
13
|
-
|
14
|
-
require "rubygems"
|
15
|
-
require "bundler/setup"
|
16
|
-
|
17
|
-
load Gem.bin_path("diff-lcs", "ldiff")
|
data/vendor/bundle/bin/pry
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
#
|
4
|
-
# This file was generated by Bundler.
|
5
|
-
#
|
6
|
-
# The application 'pry' is installed as part of a gem, and
|
7
|
-
# this file is here to facilitate running it.
|
8
|
-
#
|
9
|
-
|
10
|
-
require "pathname"
|
11
|
-
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../../../Gemfile",
|
12
|
-
Pathname.new(__FILE__).realpath)
|
13
|
-
|
14
|
-
require "rubygems"
|
15
|
-
require "bundler/setup"
|
16
|
-
|
17
|
-
load Gem.bin_path("pry", "pry")
|
data/vendor/bundle/bin/rake
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
#
|
4
|
-
# This file was generated by Bundler.
|
5
|
-
#
|
6
|
-
# The application 'rake' is installed as part of a gem, and
|
7
|
-
# this file is here to facilitate running it.
|
8
|
-
#
|
9
|
-
|
10
|
-
require "pathname"
|
11
|
-
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../../../Gemfile",
|
12
|
-
Pathname.new(__FILE__).realpath)
|
13
|
-
|
14
|
-
require "rubygems"
|
15
|
-
require "bundler/setup"
|
16
|
-
|
17
|
-
load Gem.bin_path("rake", "rake")
|
data/vendor/bundle/bin/rspec
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
#
|
4
|
-
# This file was generated by Bundler.
|
5
|
-
#
|
6
|
-
# The application 'rspec' is installed as part of a gem, and
|
7
|
-
# this file is here to facilitate running it.
|
8
|
-
#
|
9
|
-
|
10
|
-
require "pathname"
|
11
|
-
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../../../Gemfile",
|
12
|
-
Pathname.new(__FILE__).realpath)
|
13
|
-
|
14
|
-
require "rubygems"
|
15
|
-
require "bundler/setup"
|
16
|
-
|
17
|
-
load Gem.bin_path("rspec-core", "rspec")
|
data/vendor/bundle/bin/rubocop
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
#
|
4
|
-
# This file was generated by Bundler.
|
5
|
-
#
|
6
|
-
# The application 'rubocop' is installed as part of a gem, and
|
7
|
-
# this file is here to facilitate running it.
|
8
|
-
#
|
9
|
-
|
10
|
-
require "pathname"
|
11
|
-
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../../../Gemfile",
|
12
|
-
Pathname.new(__FILE__).realpath)
|
13
|
-
|
14
|
-
require "rubygems"
|
15
|
-
require "bundler/setup"
|
16
|
-
|
17
|
-
load Gem.bin_path("rubocop", "rubocop")
|
@@ -1,17 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
#
|
4
|
-
# This file was generated by Bundler.
|
5
|
-
#
|
6
|
-
# The application 'ruby-parse' is installed as part of a gem, and
|
7
|
-
# this file is here to facilitate running it.
|
8
|
-
#
|
9
|
-
|
10
|
-
require "pathname"
|
11
|
-
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../../../Gemfile",
|
12
|
-
Pathname.new(__FILE__).realpath)
|
13
|
-
|
14
|
-
require "rubygems"
|
15
|
-
require "bundler/setup"
|
16
|
-
|
17
|
-
load Gem.bin_path("parser", "ruby-parse")
|
data/vendor/bundle/bin/ruby-prof
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
#
|
4
|
-
# This file was generated by Bundler.
|
5
|
-
#
|
6
|
-
# The application 'ruby-prof' is installed as part of a gem, and
|
7
|
-
# this file is here to facilitate running it.
|
8
|
-
#
|
9
|
-
|
10
|
-
require "pathname"
|
11
|
-
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../../../Gemfile",
|
12
|
-
Pathname.new(__FILE__).realpath)
|
13
|
-
|
14
|
-
require "rubygems"
|
15
|
-
require "bundler/setup"
|
16
|
-
|
17
|
-
load Gem.bin_path("ruby-prof", "ruby-prof")
|
@@ -1,17 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
#
|
4
|
-
# This file was generated by Bundler.
|
5
|
-
#
|
6
|
-
# The application 'ruby-prof-check-trace' is installed as part of a gem, and
|
7
|
-
# this file is here to facilitate running it.
|
8
|
-
#
|
9
|
-
|
10
|
-
require "pathname"
|
11
|
-
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../../../Gemfile",
|
12
|
-
Pathname.new(__FILE__).realpath)
|
13
|
-
|
14
|
-
require "rubygems"
|
15
|
-
require "bundler/setup"
|
16
|
-
|
17
|
-
load Gem.bin_path("ruby-prof", "ruby-prof-check-trace")
|
@@ -1,17 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
#
|
4
|
-
# This file was generated by Bundler.
|
5
|
-
#
|
6
|
-
# The application 'ruby-rewrite' is installed as part of a gem, and
|
7
|
-
# this file is here to facilitate running it.
|
8
|
-
#
|
9
|
-
|
10
|
-
require "pathname"
|
11
|
-
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../../../Gemfile",
|
12
|
-
Pathname.new(__FILE__).realpath)
|
13
|
-
|
14
|
-
require "rubygems"
|
15
|
-
require "bundler/setup"
|
16
|
-
|
17
|
-
load Gem.bin_path("parser", "ruby-rewrite")
|