sirop 0.9 → 1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4d475eb4c57f828b193d42ae84700166e27b3a75dea70b45e5db06ed794c0bfc
4
- data.tar.gz: 9e3862c38a622de3b2201793b3ce46926992c6293ccc6d08d06c0e92d86cfa4f
3
+ metadata.gz: 446af1cdbbef6f8200df2e7bcf140d2df0cf756178ac5fdce5d2572ee1245abb
4
+ data.tar.gz: b04ab75762c1ec845c46a8271ad088575b7e6b6a5608b23f5d7cd345bfbe8b61
5
5
  SHA512:
6
- metadata.gz: 9483256cc41c894eb859dabeb48d3156b6b7debb15a24e0179da4c11807910ca474754a58d87270ea862861b7c2e21bf479ff3e591597f78ff6ec47586f8fa5a
7
- data.tar.gz: 31cfc2c1bc8f4159b365479ddb02a92f545d33ffc89b506040c72927bd565326fde580d9fef625c4ab25a5309ba4c09090c5a677ce1ea642200f4f0dcf6bcea9
6
+ metadata.gz: 553ea6a8548d976a1153c4e4f9cc6271c4df857bdcb0ea9aa2343ec9eab1aedef1c1bad09bbdf44456433b6fd0768b6d463061d4f1d70ca27cf1d86cdc8b40a6
7
+ data.tar.gz: b061bc9ac84cb24abffda697f1d31b9ab0ddaa5ed5a3666c2bf668233afa0d1080ebb9af636b07684c7d3b0662224965a4cd561f60063eed4d20090a4f8c9c69
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 1.0 2025-10-08
2
+
3
+ - Add support for getting AST of procs/methods defined in IRB session
4
+
1
5
  # 0.9 2025-08-17
2
6
 
3
7
  - Add advance_to_end option to `Sourcifier#adjust_whitespace`
data/lib/sirop/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Sirop
2
2
  # Sirop version
3
- VERSION = '0.9'
3
+ VERSION = '1.0'
4
4
  end
data/lib/sirop.rb CHANGED
@@ -36,7 +36,7 @@ module Sirop
36
36
 
37
37
  def proc_ast(proc)
38
38
  fn, lineno = proc.source_location
39
- pr = Prism.parse(IO.read(fn), filepath: fn)
39
+ pr = Prism.parse(get_source(fn), filepath: fn)
40
40
  program = pr.value
41
41
 
42
42
  Finder.find(program, proc) do
@@ -62,7 +62,7 @@ module Sirop
62
62
 
63
63
  def method_ast(method)
64
64
  fn, lineno = method.source_location
65
- pr = Prism.parse(IO.read(fn), filepath: fn)
65
+ pr = Prism.parse(get_source(fn), filepath: fn)
66
66
  program = pr.value
67
67
 
68
68
  Finder.find(program, method) do
@@ -72,5 +72,17 @@ module Sirop
72
72
  end
73
73
  end
74
74
  end
75
+
76
+ def get_source(fn)
77
+ return get_irb_source if fn == '(irb)'
78
+
79
+ IO.read(fn)
80
+ end
81
+
82
+ def get_irb_source
83
+ io = IRB.CurrentContext.io
84
+ last_line = io.instance_variable_get(:@line_no)
85
+ (1..last_line).map { io.line(it) }.join
86
+ end
75
87
  end
76
88
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sirop
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.9'
4
+ version: '1.0'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sharon Rosner
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: 1.4.0
18
+ version: 1.5.1
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: 1.4.0
25
+ version: 1.5.1
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: minitest
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -37,6 +37,20 @@ dependencies:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
39
  version: 5.25.5
40
+ - !ruby/object:Gem::Dependency
41
+ name: irb
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 1.15.2
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: 1.15.2
40
54
  email: sharon@noteflakes.com
41
55
  executables: []
42
56
  extensions: []
@@ -76,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
76
90
  - !ruby/object:Gem::Version
77
91
  version: '0'
78
92
  requirements: []
79
- rubygems_version: 3.6.9
93
+ rubygems_version: 3.7.0.dev
80
94
  specification_version: 4
81
95
  summary: 'Sirop: Ruby code rewriter'
82
96
  test_files: []