pry-doc 0.13.0pre8 → 0.13.0pre9

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: 4f18f3949c483ac69e2b6b7786a72b176e9d7212
4
- data.tar.gz: e6a1bbc5787add79d0d3ed0b75aba42f39545136
3
+ metadata.gz: bc2cce15654d5274eafc32d64f55017731f9c886
4
+ data.tar.gz: ab085546cca4977bd51a7d4be0c80804cd12af9c
5
5
  SHA512:
6
- metadata.gz: 870ceb665ca6397cfcdf4995879f44a1f45972f05b3f259651d4f01a22983538c2e138b0dc424a06ab559d64d55b58fdb9ad536ffaed02461955811b79723bc0
7
- data.tar.gz: e0c1d2da207f8a96bfcfceb71f8f243c81873dc13c00d2accc6d00e428b2dc636a26e44b43b70ac95dbc267c9779f370cb263b7ab6d7f67fad8c0c2201ecc3a0
6
+ metadata.gz: 7b0811fb74814d2f15f0c0ef562231ef7690eb889e1bcd9aff49babb8238eb6ee2fbd6f358149937194baf3c45bfdce6d05ba3e716322925a483e681a565700d
7
+ data.tar.gz: 6f21469f06a59961638c6db297b3fe2dc14a055946d18751a2c93423221acfb88bd4721dbbcd87a875086ba7d47a95b4a330110640b3a51dadeefb34d82a91f4
data/Rakefile CHANGED
@@ -2,6 +2,7 @@ require 'rspec/core/rake_task'
2
2
  RSpec::Core::RakeTask.new(:spec)
3
3
 
4
4
  task default: :spec
5
+ task test: :spec
5
6
 
6
7
  dlext = RbConfig::CONFIG['DLEXT']
7
8
  direc = File.dirname(__FILE__)
@@ -4,14 +4,16 @@ module Pry::CInternals
4
4
  class ShowSourceWithCInternals < Pry::Command::ShowSource
5
5
  def options(opt)
6
6
  super(opt)
7
- opt.on :c, "c-source", "Show source of a C symbol in MRI"
7
+ opt.on :c, "c-source", "Show source of a C identifier in MRI (rather than Ruby method of same name)"
8
8
  end
9
9
 
10
10
  def show_c_source
11
11
  if opts.present?(:all)
12
- result, file = CodeFetcher.new(line_number_style).fetch_all_definitions(obj_name)
12
+ result, file = CodeFetcher.new(line_number_style: line_number_style)
13
+ .fetch_all_definitions(obj_name)
13
14
  else
14
- result, file = CodeFetcher.new(line_number_style).fetch_first_definition(obj_name)
15
+ result, file = CodeFetcher.new(line_number_style: line_number_style)
16
+ .fetch_first_definition(obj_name)
15
17
  end
16
18
  if result
17
19
  set_file_and_dir_locals(file)
@@ -22,14 +24,14 @@ module Pry::CInternals
22
24
  end
23
25
 
24
26
  def process
25
- if opts.present?(:c) && !Pry.config.skip_mri_source
27
+ if opts.present?(:c) && !Pry.config.skip_cruby_source
26
28
  show_c_source
27
29
  return
28
30
  else
29
31
  super
30
32
  end
31
33
  rescue Pry::CommandError
32
- raise if Pry.config.skip_mri_source
34
+ raise if Pry.config.skip_cruby_source
33
35
  show_c_source
34
36
  end
35
37
 
@@ -38,15 +40,13 @@ module Pry::CInternals
38
40
  # We can number lines with their actual line numbers
39
41
  # or starting with 1 (base-one)
40
42
  def line_number_style
41
- style = if opts.present?(:'base-one')
42
- :'base-one'
43
- elsif opts.present?(:'line-numbers')
44
- :'line-numbers'
45
- else
46
- nil
47
- end
48
-
49
- { line_number_style: style }
43
+ if opts.present?(:'base-one')
44
+ :'base-one'
45
+ elsif opts.present?(:'line-numbers')
46
+ :'line-numbers'
47
+ else
48
+ nil
49
+ end
50
50
  end
51
51
 
52
52
  Pry::Commands.add_command(ShowSourceWithCInternals)
@@ -9,37 +9,56 @@
9
9
  # Following lines are the symbols followed by line number with char 127 as separator.
10
10
  module Pry::CInternals
11
11
  class CFile
12
- SourceLocation = Struct.new(:file, :line, :original_symbol)
12
+ SourceLocation = Struct.new(:file, :line, :symbol_type)
13
13
 
14
14
  # Used to separate symbol from line number
15
15
  SYMBOL_SEPARATOR = "\x7f"
16
16
 
17
17
  attr_accessor :symbols, :file_name
18
+ attr_reader :ruby_source_folder
18
19
 
19
- def self.from_str(str)
20
- new(str).tap(&:process_symbols)
21
- end
22
-
23
- def initialize(str)
20
+ def initialize(str, ruby_source_folder: nil)
21
+ @ruby_source_folder = ruby_source_folder
24
22
  @lines = str.lines
25
23
  @file_name = @lines.shift.split(",").first
26
24
  end
27
25
 
28
26
  def process_symbols
29
- array = @lines.map do |v|
27
+ @symbols = @lines.each_with_object({}) do |v, h|
30
28
  symbol, line_number = v.split(SYMBOL_SEPARATOR)
31
- [cleanup_symbol(symbol),
32
- [SourceLocation.new(@file_name, cleanup_linenumber(line_number), symbol.strip)]]
29
+ next if symbol.strip =~ /^\w+$/ # these symbols are usually errors in etags
30
+ h[cleanup_symbol(symbol)] = [source_location_for(symbol, line_number)]
33
31
  end
34
-
35
- @symbols = Hash[array]
36
32
  end
37
33
 
38
34
  private
39
35
 
36
+ def source_location_for(symbol, line_number)
37
+ SourceLocation.new(File.join(ruby_source_folder, @file_name),
38
+ cleanup_linenumber(line_number), symbol_type_for(symbol.strip))
39
+ end
40
+
41
+ def symbol_type_for(symbol)
42
+ if symbol.start_with?("#define")
43
+ :macro
44
+ elsif symbol =~ /\bstruct\b/
45
+ :struct
46
+ elsif symbol =~ /\benum\b/
47
+ :enum
48
+ elsif symbol.start_with?("}")
49
+ :typedef_struct
50
+ elsif symbol =~/^typedef.*;$/
51
+ :typedef_oneliner
52
+ elsif symbol =~ /\($/
53
+ :function
54
+ else
55
+ :unknown
56
+ end
57
+ end
58
+
40
59
  def cleanup_symbol(symbol)
41
60
  symbol = symbol.split.last
42
- symbol.chomp("(").chomp("*").chomp(";")
61
+ symbol.gsub(/\W/, '')
43
62
  end
44
63
 
45
64
  def cleanup_linenumber(line_number)
@@ -10,8 +10,15 @@ module Pry::CInternals
10
10
  attr_accessor :ruby_source_folder
11
11
  end
12
12
 
13
- # normalized
14
- def self.ruby_version() RUBY_VERSION.tr(".", "_") end
13
+ # The Ruby version that corresponds to a downloadable release
14
+ # Note that after Ruby 2.1.0 they exclude the patchlevel from the release name
15
+ def self.ruby_version
16
+ if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.1.0")
17
+ RUBY_VERSION.tr(".", "_")
18
+ else
19
+ RUBY_VERSION.tr(".", "_") + "_#{RUBY_PATCHLEVEL}"
20
+ end
21
+ end
15
22
 
16
23
  self.ruby_source_folder = File.join(File.expand_path("~/.pry.d"), "ruby-#{ruby_version}")
17
24
 
@@ -27,13 +34,12 @@ module Pry::CInternals
27
34
  infos = self.class.symbol_map[symbol]
28
35
  return unless infos
29
36
 
30
- "".tap do |result|
31
- infos.count.times do |index|
32
- result << fetch_first_definition(symbol, index).first << "\n"
33
- end
34
-
35
- return [result, full_path_for(infos.first.file)]
37
+ result = ""
38
+ infos.count.times do |index|
39
+ result << fetch_first_definition(symbol, index).first << "\n"
36
40
  end
41
+
42
+ return [result, infos.first.file]
37
43
  end
38
44
 
39
45
  def fetch_first_definition(symbol, index=nil)
@@ -43,33 +49,25 @@ module Pry::CInternals
43
49
  info = infos[index || 0]
44
50
  code = symbol_extractor.extract(info)
45
51
 
46
- "".tap do |result|
47
- result << "\n#{bold('From: ')}#{info.file} @ line #{info.line}:\n"
48
- result << "#{bold('Number of implementations:')} #{infos.count}\n" unless index
49
- result << "#{bold('Number of lines: ')} #{code.lines.count}\n\n"
50
- result << Pry::Code.new(code, start_line_for(info.line), :c).
51
- with_line_numbers(use_line_numbers?).highlighted
52
+ result = ""
53
+ result << "\n#{bold('From: ')}#{info.file} @ line #{info.line}:\n"
54
+ result << "#{bold('Number of implementations:')} #{infos.count}\n" unless index
55
+ result << "#{bold('Number of lines: ')} #{code.lines.count}\n\n"
56
+ result << Pry::Code.new(code, start_line_for(info.line), :c).
57
+ with_line_numbers(use_line_numbers?).highlighted
58
+
59
+ return [result, info.file]
52
60
 
53
- return [result, full_path_for(info.file)]
54
- end
55
61
  end
56
62
 
57
63
  private
58
64
 
59
- def full_path_for(file)
60
- File.join(self.class.ruby_source_folder, file)
61
- end
62
-
63
65
  def use_line_numbers?
64
66
  !!line_number_style
65
67
  end
66
68
 
67
69
  def start_line_for(line)
68
- if line_number_style == :'base-one'
69
- 1
70
- else
71
- line || 1
72
- end
70
+ line_number_style == :'base-one' ? 1 : line || 1
73
71
  end
74
72
 
75
73
  def self.symbol_map
@@ -81,7 +79,7 @@ module Pry::CInternals
81
79
 
82
80
  def self.parse_tagfile
83
81
  @c_files ||= tagfile.split("\f\n")[1..-1].map do |v|
84
- CFile.from_str(v)
82
+ CFile.new(v, ruby_source_folder: ruby_source_folder).tap(&:process_symbols)
85
83
  end
86
84
  end
87
85
 
@@ -92,34 +90,47 @@ module Pry::CInternals
92
90
  @tagfile ||= File.read(tags)
93
91
  end
94
92
 
95
- def self.check_for_error(message)
96
- raise Pry::CommandError, message if $?.to_i != 0
93
+ # @param [String] message Message to display on error
94
+ # @param [&Block] block Optional assertion
95
+ def self.check_for_error(message, &block)
96
+ raise Pry::CommandError, message if $?.to_i != 0 || block && !block.call
97
97
  end
98
98
 
99
99
  def self.ask_for_install
100
- puts "Method/class Not found - do you want to install MRI sources to attempt to resolve the lookup there? (This allows the lookup of C internals) Y/N"
100
+ print "Identifier not found - do you want to install CRuby sources to attempt to resolve the identifier there?\n(This allows the lookup of C internals) Y/N "
101
101
 
102
102
  if $stdin.gets !~ /^y/i
103
- puts "MRI sources not installed. To prevent being asked again, add `Pry.config.skip_mri_source = true` to your ~/.pryrc"
103
+ puts "CRuby sources not installed. To prevent being asked again, add `Pry.config.skip_cruby_source = true` to your ~/.pryrc"
104
104
  raise Pry::CommandError, "No definition found."
105
105
  end
106
106
  end
107
107
 
108
108
  def self.install_and_setup_ruby_source
109
109
  ask_for_install
110
- puts "Downloading and setting up Ruby #{ruby_version} source in attempt to resolve symbol..."
110
+ puts "Downloading and setting up Ruby #{ruby_version} source..."
111
+ download_ruby
112
+ generate_tagfile
113
+ puts "...Finished!"
114
+ end
115
+
116
+ def self.download_ruby
117
+ curl_cmd = "curl --show-error --fail-early --fail -L https://github.com/ruby/ruby/archive/v#{ruby_version}.tar.gz | tar xzvf - 2> /dev/null"
118
+
111
119
  FileUtils.mkdir_p(ruby_source_folder)
112
120
  FileUtils.cd(File.dirname(ruby_source_folder)) do
113
- %x{ curl -L https://github.com/ruby/ruby/archive/v#{ruby_version}.tar.gz | tar xzvf - > /dev/null 2>&1 }
114
- check_for_error("curl")
121
+ %x{ #{curl_cmd} }
122
+ check_for_error(curl_cmd) { Dir.entries(ruby_source_folder).count > 5 }
115
123
  end
124
+ end
125
+
126
+ def self.generate_tagfile
127
+ find_cmd = "find . -type f -name '*.[chy]' | etags - --no-members -o tags"
116
128
 
117
129
  FileUtils.cd(ruby_source_folder) do
118
130
  puts "Generating tagfile!"
119
- %x{ find . -type f -name "*.[chy]" | etags - --no-members -o tags }
120
- check_for_error("find | etags")
131
+ %x{ #{find_cmd} }
132
+ check_for_error(find_cmd) { File.size(File.join(ruby_source_folder, "tags")) > 500 }
121
133
  end
122
- puts "...Finished!"
123
134
  end
124
135
  end
125
136
  end
@@ -10,16 +10,20 @@ module Pry::CInternals
10
10
  end
11
11
 
12
12
  def extract(info)
13
- if info.original_symbol.start_with?("#define")
13
+ case info.symbol_type
14
+ when :macro
14
15
  extract_macro(info)
15
- elsif info.original_symbol =~ /\s+(struct|enum)\s+/
16
+ when :struct, :enum
16
17
  extract_struct(info)
17
- elsif info.original_symbol.start_with?("}")
18
+ when :typedef_struct
18
19
  extract_typedef_struct(info)
19
- elsif info.original_symbol =~/^typedef.*;$/
20
- extract_typedef_oneliner(info)
21
- else
20
+ when :typedef_oneliner
21
+ extract_oneliner(info)
22
+ when :function
22
23
  extract_function(info)
24
+ else
25
+ # if we dont know what it is, just extract out a single line
26
+ extract_oneliner(info)
23
27
  end
24
28
  end
25
29
 
@@ -43,7 +47,7 @@ module Pry::CInternals
43
47
  end
44
48
  end
45
49
 
46
- def extract_typedef_oneliner(info)
50
+ def extract_oneliner(info)
47
51
  source_file = source_from_file(info.file)
48
52
  return source_file[info.line]
49
53
  end
@@ -57,7 +61,13 @@ module Pry::CInternals
57
61
  offset += 1
58
62
  end
59
63
 
60
- offset += 1 if !source_file[info.line].strip.end_with?("{")
64
+ (0..4).each do |v|
65
+ line = source_file[info.line + v]
66
+ if line && line.strip.end_with?("{")
67
+ offset += v
68
+ break
69
+ end
70
+ end
61
71
 
62
72
  extract_code(info, offset: offset, start_line: start_line) do |code|
63
73
  return code if balanced?(code)
@@ -81,35 +91,21 @@ module Pry::CInternals
81
91
  end
82
92
 
83
93
  def function_return_type?(str)
84
- str.strip =~ /[\w\*]$/
94
+ str.strip =~ /\w\s*\*?$/
85
95
  end
86
96
 
87
97
  def balanced?(str)
88
98
  tokens = CodeRay.scan(str, :c).tokens.each_slice(2)
89
- token_count(tokens, /{/) == token_count(tokens, /}/)
99
+ token_count(tokens, '{') == token_count(tokens, '}')
90
100
  end
91
101
 
92
102
  def token_count(tokens, token)
93
- tokens.count { |v| v.first =~ token && v.last == :operator }
103
+ tokens.count { |v| v.first.to_s.include?(token) && v.last == :operator }
94
104
  end
95
105
 
96
106
  def source_from_file(file)
97
- file_cache = self.class.file_cache
98
- if file_cache.key?(file)
99
- file_cache[file]
100
- else
101
- # inject a "\n" as first element to align array index and line number
102
- file_cache[file] = ["\n", *File.read(full_path_for(file)).lines]
103
- end
104
- end
105
-
106
- def full_path_for(file)
107
- File.join(@ruby_source_folder, file)
108
- end
109
-
110
- # normalized
111
- def ruby_version
112
- RUBY_VERSION.tr(".", "_")
107
+ # inject a leading "\n" to align array index and line number
108
+ self.class.file_cache[file] ||= ["\n", *File.read(file).lines]
113
109
  end
114
110
  end
115
111
  end
@@ -1,3 +1,3 @@
1
1
  module PryDoc
2
- VERSION = '0.13.0pre8'
2
+ VERSION = '0.13.0pre9'
3
3
  end
@@ -23,7 +23,7 @@ DESCR
23
23
  s.required_ruby_version = '>= 2.0'
24
24
 
25
25
  s.add_dependency 'yard', "~> 0.9.11"
26
- s.add_dependency 'pry', ">= 0.11.3"
26
+ s.add_dependency 'pry', "~> 0.11.3"
27
27
  s.add_development_dependency 'latest_ruby', '~> 0.0'
28
28
  s.add_development_dependency 'rspec', '~> 3.5'
29
29
  s.add_development_dependency 'rake', "~> 10.0"
@@ -47,8 +47,14 @@ RSpec.describe PryDoc do
47
47
  end
48
48
 
49
49
  describe "#fetch_all_definitions" do
50
+ it "returns both code and file name" do
51
+ file_ = described_class.symbol_map["foo"].first.file
52
+ _, file = described_class.new.fetch_all_definitions("foo")
53
+ expect(file).to eq file_
54
+ end
55
+
50
56
  it "returns the code for all symbols" do
51
- code, = described_class.new(line_number_style: nil).fetch_all_definitions("foo")
57
+ code, = described_class.new.fetch_all_definitions("foo")
52
58
  expect(decolor code).to include <<EOF
53
59
  int
54
60
  foo(void) {
@@ -65,6 +71,12 @@ EOF
65
71
  end
66
72
 
67
73
  describe "#fetch_first_definition" do
74
+ it "returns both code and file name" do
75
+ code, file = described_class.new.fetch_first_definition("wassup")
76
+ expect(decolor code).to include "typedef int wassup;"
77
+ expect(file).to eq File.join(__dir__, "fixtures/c_source/hello.c")
78
+ end
79
+
68
80
  context "with line numbers" do
69
81
  context "normal style (actual line numbers)" do
70
82
  it "displays actual line numbers" do
@@ -94,7 +106,7 @@ EOF
94
106
  end
95
107
 
96
108
  it "returns the code for a function" do
97
- code, = described_class.new(line_number_style: nil).fetch_first_definition("foo")
109
+ code, = described_class.new.fetch_first_definition("foo")
98
110
  expect(decolor code).to include(<<EOF
99
111
  int
100
112
  foo(void) {
@@ -109,7 +121,7 @@ EOF
109
121
  end
110
122
 
111
123
  it "returns the code for an enum" do
112
- code, = described_class.new(line_number_style: nil).fetch_first_definition("bar")
124
+ code, = described_class.new.fetch_first_definition("bar")
113
125
  expect(decolor code).to include <<EOF
114
126
  enum bar {
115
127
  alpha,
@@ -120,19 +132,19 @@ EOF
120
132
  end
121
133
 
122
134
  it "returns the code for a macro" do
123
- code, = described_class.new(line_number_style: nil).fetch_first_definition("baby")
135
+ code, = described_class.new.fetch_first_definition("baby")
124
136
  expect(decolor code).to include('#define baby do {')
125
137
  expect(decolor code).to include('printf("baby");')
126
138
  expect(decolor code).to include('while(0)')
127
139
  end
128
140
 
129
141
  it "returns the code for a typedef" do
130
- code, = described_class.new(line_number_style: nil).fetch_first_definition("wassup")
142
+ code, = described_class.new.fetch_first_definition("wassup")
131
143
  expect(decolor code).to include('typedef int wassup;')
132
144
  end
133
145
 
134
146
  it "returns the code for a struct" do
135
- code, = described_class.new(line_number_style: nil).fetch_first_definition("baz")
147
+ code, = described_class.new.fetch_first_definition("baz")
136
148
  expect(decolor code).to include <<EOF
137
149
  struct baz {
138
150
  int x;
@@ -142,7 +154,7 @@ EOF
142
154
  end
143
155
 
144
156
  it "returns the code for a typedef'd struct" do
145
- code, = described_class.new(line_number_style: nil).fetch_first_definition("cutie_pie")
157
+ code, = described_class.new.fetch_first_definition("cutie_pie")
146
158
  expect(decolor code).to include <<EOF
147
159
  typedef struct {
148
160
  int lovely;
@@ -152,7 +164,7 @@ EOF
152
164
  end
153
165
 
154
166
  it "returns the code for a typedef'd enum" do
155
- code, = described_class.new(line_number_style: nil).fetch_first_definition("baby_enum")
167
+ code, = described_class.new.fetch_first_definition("baby_enum")
156
168
  expect(decolor code).to include <<EOF
157
169
  typedef enum cute_enum_e {
158
170
  lillybing,
@@ -165,7 +177,7 @@ EOF
165
177
  context "function definitions" do
166
178
  context "return type is on same line" do
167
179
  subject do
168
- decolor described_class.new(line_number_style: nil)
180
+ decolor described_class.new
169
181
  .fetch_first_definition("tinkywinky")
170
182
  .first
171
183
  end
@@ -177,9 +189,9 @@ EOF
177
189
  end
178
190
  end
179
191
 
180
- context "curl brackets on subsequent line" do
192
+ context "curly brackets on subsequent line" do
181
193
  subject do
182
- decolor described_class.new(line_number_style: nil)
194
+ decolor described_class.new
183
195
  .fetch_first_definition("lala")
184
196
  .first
185
197
  end
@@ -194,7 +206,7 @@ EOF
194
206
 
195
207
  context "return type on prior line and curly brackets on subsequent" do
196
208
  subject do
197
- decolor described_class.new(line_number_style: nil)
209
+ decolor described_class.new
198
210
  .fetch_first_definition("po")
199
211
  .first
200
212
  end
metadata CHANGED
@@ -1,83 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pry-doc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0pre8
4
+ version: 0.13.0pre9
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Mair (banisterfiend)
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-08 00:00:00.000000000 Z
11
+ date: 2018-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: yard
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.9.11
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.9.11
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pry
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: 0.11.3
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.11.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: latest_ruby
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '3.5'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.5'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ~>
74
74
  - !ruby/object:Gem::Version
75
75
  version: '10.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ~>
81
81
  - !ruby/object:Gem::Version
82
82
  version: '10.0'
83
83
  description: |
@@ -92,9 +92,9 @@ executables: []
92
92
  extensions: []
93
93
  extra_rdoc_files: []
94
94
  files:
95
- - ".gitignore"
96
- - ".travis.yml"
97
- - ".yardopts"
95
+ - .gitignore
96
+ - .travis.yml
97
+ - .yardopts
98
98
  - CHANGELOG.md
99
99
  - Gemfile
100
100
  - LICENSE
@@ -153,17 +153,17 @@ require_paths:
153
153
  - lib
154
154
  required_ruby_version: !ruby/object:Gem::Requirement
155
155
  requirements:
156
- - - ">="
156
+ - - '>='
157
157
  - !ruby/object:Gem::Version
158
158
  version: '2.0'
159
159
  required_rubygems_version: !ruby/object:Gem::Requirement
160
160
  requirements:
161
- - - ">"
161
+ - - '>'
162
162
  - !ruby/object:Gem::Version
163
163
  version: 1.3.1
164
164
  requirements: []
165
165
  rubyforge_project:
166
- rubygems_version: 2.6.11
166
+ rubygems_version: 2.0.14
167
167
  signing_key:
168
168
  specification_version: 4
169
169
  summary: Provides YARD and extended documentation support for Pry