tcepsni 0.3.0 → 0.3.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
  SHA256:
3
- metadata.gz: 3c7e2dad3ee934784b32e2263cfd23a6a478ec4d648b7e02f1a02267238296e5
4
- data.tar.gz: 5db7c50e53eea93481004efd7d2f359db19fe8099356bfd980564f3b861d52d1
3
+ metadata.gz: 40d96c10a7e7729b0c37648bedd7b693dff04602d9bc3ef9794e695d48986864
4
+ data.tar.gz: f6316e6ceba71e2a7cee7d99140357a08e52c598e31324016159d301ffb791e5
5
5
  SHA512:
6
- metadata.gz: fc943477c66e694f76a6711ec01a2f82893c756fe7e30b1f00e8ef82d04c63699899b28252e2d046d148af68195a049bf2ca79b8b90bde359474ac610d9d3804
7
- data.tar.gz: 8daf45aa53eb860b306357831c0c86a17d0e847fba6cfa8a051fe932a6d355ccfee936aee3ef48949b05a418013b7e140ce37ff57108ae653f768c97359c2f94
6
+ metadata.gz: e3235426ddaeed30dd132dfc2f904259abe5da867aa4e17aa683d43d42112d8ded52575e4cb3e218c39fcc0f4f1a84175594279f5e07e221da08a5d03afe79f7
7
+ data.tar.gz: 3e79b0c3e3f29d5044cdc7051e980db49d1a49fd54a7fa8299386056f38864887fe04238319177d5fa9f0bbe4bd07c773a9c4fe279b2875b80fdf7e9f5bcbac8
data/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.3.1 - 2024-07-21
6
+
7
+ Update gemspec fields etc.
8
+ There should be no API changes.
9
+
5
10
  ## 0.3.0 - 2023-11-18
6
11
 
7
12
  ### Changed
data/README.md CHANGED
@@ -15,7 +15,7 @@ Tcepsni has a parsing method `Tcepsni.parse(str)`, which returns a parsed Ruby o
15
15
  ## Development
16
16
 
17
17
  After checking out the repo, run `bin/setup` to install dependencies.
18
- Then, run `rake test-unit` to run the tests.
18
+ Then, run `rake test` to run the tests.
19
19
  You can also run `bin/console` for an interactive prompt that will allow you to experiment.
20
20
 
21
21
  To install this gem onto your local machine, run `bundle exec rake install`.
@@ -27,7 +27,7 @@ Bug reports and pull requests are welcome.
27
27
 
28
28
  ## License
29
29
 
30
- Copyright 2023 gemmaro.
30
+ Copyright 2023, 2024 gemmaro.
31
31
 
32
32
  Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
33
33
  You may obtain a copy of the License at [Apache Software Foundation - Apache License, Version 2.0][asl].
@@ -27,31 +27,27 @@ module Tcepsni
27
27
  elsif @scanner.skip('#<')
28
28
  pos = @scanner.pos
29
29
  @vendors.select { |vendor| vendor.object? }.each do |vendor|
30
- begin
31
- @scanner.pos = pos
32
- return vendor.parse(self)
33
- rescue Error
34
- next
35
- end
30
+ @scanner.pos = pos
31
+ return vendor.parse(self)
32
+ rescue Error
33
+ next
36
34
  end
37
35
  @scanner.pos = pos
38
36
  parse_object
39
- else
40
- if (digits = @scanner.scan(/\d+/))
41
- int = Integer(digits)
42
- if @scanner.skip('.')
43
- int2 = parse_integer
44
- Float("#{int}.#{int2}")
45
- elsif digits.size == 4 && @scanner.skip(/-(?<month>[01]\d)-(?<day>\d\d) (?<hour>[012]\d):(?<minute>[0-5]\d):(?<second>[0-5]\d) (?<zone>[+-]\d\d\d\d)/)
46
- Time.new(Integer(int), @scanner[:month], @scanner[:day],
47
- @scanner[:hour], @scanner[:minute], @scanner[:second],
48
- @scanner[:zone])
49
- else
50
- int
51
- end
37
+ elsif (digits = @scanner.scan(/\d+/))
38
+ int = Integer(digits)
39
+ if @scanner.skip('.')
40
+ int2 = parse_integer
41
+ Float("#{int}.#{int2}")
42
+ elsif digits.size == 4 && @scanner.skip(/-(?<month>[01]\d)-(?<day>\d\d) (?<hour>[012]\d):(?<minute>[0-5]\d):(?<second>[0-5]\d) (?<zone>[+-]\d\d\d\d)/)
43
+ Time.new(Integer(int), @scanner[:month], @scanner[:day],
44
+ @scanner[:hour], @scanner[:minute], @scanner[:second],
45
+ @scanner[:zone])
52
46
  else
53
- parse_class
47
+ int
54
48
  end
49
+ else
50
+ parse_class
55
51
  end
56
52
  end
57
53
 
@@ -84,7 +80,11 @@ module Tcepsni
84
80
  def parse_array
85
81
  result = []
86
82
  until @scanner.eos?
87
- result << parse_expression rescue break
83
+ begin
84
+ result << parse_expression
85
+ rescue StandardError
86
+ break
87
+ end
88
88
  @scanner.skip(', ') or break
89
89
  end
90
90
  @scanner.skip(']') or raise Error, "no array closer: #{@scanner.inspect}"
@@ -94,7 +94,11 @@ module Tcepsni
94
94
  def parse_hash
95
95
  result = {}
96
96
  until @scanner.eos?
97
- key = parse_expression rescue break
97
+ key = begin
98
+ parse_expression
99
+ rescue StandardError
100
+ break
101
+ end
98
102
  @scanner.skip('=>') or raise Error, 'no hash arrow'
99
103
  value = parse_expression
100
104
  result[key] = value
@@ -112,7 +116,7 @@ module Tcepsni
112
116
  namespaces << parse_capitalized_identifier
113
117
  end
114
118
  *namespaces, name = namespaces
115
- Tcepsni::Class.new(name: name, namespaces: namespaces)
119
+ Tcepsni::Class.new(name:, namespaces:)
116
120
  end
117
121
 
118
122
  def parse_capitalized_identifier
@@ -129,7 +133,7 @@ module Tcepsni
129
133
  else
130
134
  memory_reference = parse_memory_reference
131
135
  attributes = parse_attributes
132
- Tcepsni::Object.new(klass: klass, memory_reference: memory_reference, attributes: attributes)
136
+ Tcepsni::Object.new(klass:, memory_reference:, attributes:)
133
137
  end
134
138
  end
135
139
 
@@ -15,11 +15,11 @@ module Tcepsni
15
15
  def self.parse(parser)
16
16
  parser.skip('Rails::Paths::Root') or raise Error, 'this is not Rails::Paths::Root'
17
17
  memory_reference = parser.parse_memory_reference
18
- if parser.skip(' ...>')
19
- attributes = {}
20
- else
21
- attributes = parser.parse_attributes
22
- end
18
+ attributes = if parser.skip(' ...>')
19
+ {}
20
+ else
21
+ parser.parse_attributes
22
+ end
23
23
  Tcepsni::Vendor::Rails::Paths::Root.new(memory_reference, attributes)
24
24
  end
25
25
 
@@ -20,7 +20,7 @@ module Tcepsni
20
20
  parser.skip(' @ "') or raise Error, "no string scanner mark in string: #{parser.scanner.inspect}"
21
21
  rest = parser.parse_string
22
22
  parser.skip('>') or raise Error, 'no string scanner closer'
23
- Tcepsni::Vendor::StringScanner.new(pos: pos, total: total, scanned: scanned, rest: rest)
23
+ Tcepsni::Vendor::StringScanner.new(pos:, total:, scanned:, rest:)
24
24
  end
25
25
 
26
26
  def self.dependencies
@@ -1,3 +1,3 @@
1
1
  module Tcepsni
2
- VERSION = '0.3.0'
2
+ VERSION = '0.3.1'
3
3
  end
data/lib/tcepsni.rb CHANGED
@@ -2,10 +2,10 @@ require_relative 'tcepsni/version'
2
2
  require_relative 'tcepsni/parser'
3
3
 
4
4
  module Tcepsni
5
- class Error < StandardError; end
5
+ Error = Class.new(StandardError)
6
6
 
7
7
  def self.parse(str, vendors: [])
8
- Parser.new(str, vendors: vendors).parse
8
+ Parser.new(str, vendors:).parse
9
9
  end
10
10
 
11
11
  class Class
data/tcepsni.gemspec CHANGED
@@ -9,10 +9,22 @@ Gem::Specification.new do |spec|
9
9
  spec.summary = 'inspected Ruby objects parser'
10
10
  spec.description = 'Tcepsni gem is a parser library for inspected strings of Ruby objects.'
11
11
  spec.license = 'Apache-2.0'
12
+
13
+ spec.homepage = 'https://codeberg.org/gemmaro/tcepsni'
14
+
12
15
  spec.required_ruby_version = '>= 3.1.0'
13
16
 
14
17
  spec.files = Dir['lib/**/*.rb'] + Dir['sig/**/*.rbs'] +
15
18
  ['CHANGELOG.md', 'tcepsni.gemspec', 'README.md', 'LICENSE.txt']
16
19
  spec.require_paths = ['lib']
17
- spec.metadata['rubygems_mfa_required'] = 'true'
20
+
21
+ spec.metadata = {
22
+ 'rubygems_mfa_required' => 'true',
23
+ 'bug_tracker_uri' => 'https://codeberg.org/gemmaro/tcepsni/issues',
24
+ 'changelog_uri' => 'https://codeberg.org/gemmaro/tcepsni/src/branch/main/CHANGELOG.md',
25
+ 'documentation_uri' => 'https://www.rubydoc.info/gems/tcepsni',
26
+ 'homepage_uri' => spec.homepage,
27
+ 'source_code_uri' => spec.homepage,
28
+ 'wiki_uri' => 'https://codeberg.org/gemmaro/tcepsni/wiki'
29
+ }
18
30
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tcepsni
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - gemmaro
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-18 00:00:00.000000000 Z
11
+ date: 2024-07-21 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Tcepsni gem is a parser library for inspected strings of Ruby objects.
14
14
  email:
@@ -31,11 +31,17 @@ files:
31
31
  - sig/tcepsni.gen.rbs
32
32
  - sig/tcepsni.rbs
33
33
  - tcepsni.gemspec
34
- homepage:
34
+ homepage: https://codeberg.org/gemmaro/tcepsni
35
35
  licenses:
36
36
  - Apache-2.0
37
37
  metadata:
38
38
  rubygems_mfa_required: 'true'
39
+ bug_tracker_uri: https://codeberg.org/gemmaro/tcepsni/issues
40
+ changelog_uri: https://codeberg.org/gemmaro/tcepsni/src/branch/main/CHANGELOG.md
41
+ documentation_uri: https://www.rubydoc.info/gems/tcepsni
42
+ homepage_uri: https://codeberg.org/gemmaro/tcepsni
43
+ source_code_uri: https://codeberg.org/gemmaro/tcepsni
44
+ wiki_uri: https://codeberg.org/gemmaro/tcepsni/wiki
39
45
  post_install_message:
40
46
  rdoc_options: []
41
47
  require_paths: