roast-ai 1.0.2 → 1.2.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.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/.claude/commands/docs/write-comments.md +1 -1
  3. data/.rubocop.yml +12 -1
  4. data/Gemfile +2 -2
  5. data/Gemfile.lock +149 -34
  6. data/README.md +56 -3
  7. data/examples/agent_with_multiple_prompts.rb +27 -0
  8. data/examples/custom_logging.rb +4 -2
  9. data/examples/demo/Gemfile.lock +49 -15
  10. data/examples/plugin-gem-example/Gemfile.lock +19 -15
  11. data/examples/simple_chat.rb +1 -1
  12. data/examples/simple_pi_agent.rb +18 -0
  13. data/internal/rubocop/cop/roast/no_test_class_nesting.rb +126 -0
  14. data/internal/rubocop/rubocop-roast.yml +6 -0
  15. data/internal/workflows/maintenance/branch_docs_impact.rb +97 -0
  16. data/internal/workflows/maintenance/deprecated_models_docs_updater.rb +78 -0
  17. data/lib/roast/cog/config.rb +1 -1
  18. data/lib/roast/cog/output.rb +2 -1
  19. data/lib/roast/cog/registry.rb +3 -3
  20. data/lib/roast/cog_input_manager.rb +28 -7
  21. data/lib/roast/cogs/agent/config.rb +2 -2
  22. data/lib/roast/cogs/agent/input.rb +20 -22
  23. data/lib/roast/cogs/agent/providers/claude/claude_invocation.rb +13 -5
  24. data/lib/roast/cogs/agent/providers/claude/messages/result_message.rb +1 -1
  25. data/lib/roast/cogs/agent/providers/claude/tool_result.rb +344 -4
  26. data/lib/roast/cogs/agent/providers/claude/tool_use.rb +356 -1
  27. data/lib/roast/cogs/agent/providers/claude.rb +16 -3
  28. data/lib/roast/cogs/agent/providers/pi/messages/tool_call_message.rb +60 -0
  29. data/lib/roast/cogs/agent/providers/pi/messages/tool_result_message.rb +57 -0
  30. data/lib/roast/cogs/agent/providers/pi/pi_invocation.rb +352 -0
  31. data/lib/roast/cogs/agent/providers/pi.rb +41 -0
  32. data/lib/roast/cogs/agent/stats.rb +29 -0
  33. data/lib/roast/cogs/agent/usage.rb +22 -0
  34. data/lib/roast/cogs/agent.rb +5 -6
  35. data/lib/roast/cogs/chat/config.rb +28 -2
  36. data/lib/roast/cogs/chat.rb +82 -10
  37. data/lib/roast/event.rb +1 -0
  38. data/lib/roast/event_monitor.rb +35 -3
  39. data/lib/roast/log.rb +21 -0
  40. data/lib/roast/log_formatter.rb +9 -7
  41. data/lib/roast/version.rb +1 -1
  42. data/lib/roast.rb +1 -3
  43. data/roast-ai.gemspec +2 -1
  44. data/sorbet/rbi/gems/activesupport@8.0.2.rbi +549 -383
  45. data/sorbet/rbi/gems/addressable@2.8.7.rbi +46 -44
  46. data/sorbet/rbi/gems/ast@2.4.3.rbi +7 -6
  47. data/sorbet/rbi/gems/async@2.34.0.rbi +21 -3
  48. data/sorbet/rbi/gems/benchmark@0.4.1.rbi +7 -7
  49. data/sorbet/rbi/gems/bigdecimal@3.2.2.rbi +198 -1
  50. data/sorbet/rbi/gems/concurrent-ruby@1.3.5.rbi +405 -328
  51. data/sorbet/rbi/gems/console@1.34.2.rbi +2 -2
  52. data/sorbet/rbi/gems/docile@1.4.1.rbi +30 -30
  53. data/sorbet/rbi/gems/drb@2.2.3.rbi +25 -25
  54. data/sorbet/rbi/gems/erubi@1.13.1.rbi +2 -0
  55. data/sorbet/rbi/gems/faraday-net_http@3.4.2.rbi +2 -77
  56. data/sorbet/rbi/gems/faraday-retry@2.3.2.rbi +2 -57
  57. data/sorbet/rbi/gems/faraday@2.14.1.rbi +382 -75
  58. data/sorbet/rbi/gems/guard-compat@1.2.1.rbi +1 -110
  59. data/sorbet/rbi/gems/guard-minitest@2.4.6.rbi +0 -139
  60. data/sorbet/rbi/gems/guard@2.19.1.rbi +38 -38
  61. data/sorbet/rbi/gems/hashdiff@1.2.0.rbi +3 -3
  62. data/sorbet/rbi/gems/i18n@1.14.7.rbi +53 -29
  63. data/sorbet/rbi/gems/io-event@1.14.0.rbi +67 -10
  64. data/sorbet/rbi/gems/json@2.18.1.rbi +227 -5
  65. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +83 -0
  66. data/sorbet/rbi/gems/listen@3.9.0.rbi +7 -7
  67. data/sorbet/rbi/gems/logger@1.7.0.rbi +3 -3
  68. data/sorbet/rbi/gems/lumberjack@1.2.10.rbi +21 -21
  69. data/sorbet/rbi/gems/marcel@1.1.0.rbi +1 -1
  70. data/sorbet/rbi/gems/minitest-rg@5.3.0.rbi +0 -96
  71. data/sorbet/rbi/gems/minitest@5.25.5.rbi +1 -16
  72. data/sorbet/rbi/gems/net-http@0.9.1.rbi +27 -19
  73. data/sorbet/rbi/gems/netrc@0.11.0.rbi +18 -0
  74. data/sorbet/rbi/gems/notiffany@0.1.3.rbi +20 -20
  75. data/sorbet/rbi/gems/ostruct@0.6.2.rbi +149 -15
  76. data/sorbet/rbi/gems/parser@3.3.8.0.rbi +141 -139
  77. data/sorbet/rbi/gems/prism@1.4.0.rbi +922 -864
  78. data/sorbet/rbi/gems/public_suffix@6.0.2.rbi +56 -35
  79. data/sorbet/rbi/gems/racc@1.8.1.rbi +10 -2
  80. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +12 -12
  81. data/sorbet/rbi/gems/rake@13.3.0.rbi +219 -318
  82. data/sorbet/rbi/gems/{rbi@0.3.6.rbi → rbi@0.3.9.rbi} +612 -2267
  83. data/sorbet/rbi/gems/{rbs@3.9.4.rbi → rbs@4.0.0.dev.5.rbi} +2013 -680
  84. data/sorbet/rbi/gems/regexp_parser@2.10.0.rbi +151 -113
  85. data/sorbet/rbi/gems/require-hooks@0.2.3.rbi +110 -0
  86. data/sorbet/rbi/gems/rexml@3.4.2.rbi +24 -51
  87. data/sorbet/rbi/gems/rubocop-ast@1.45.1.rbi +506 -815
  88. data/sorbet/rbi/gems/rubocop-sorbet@0.10.5.rbi +16 -16
  89. data/sorbet/rbi/gems/rubocop@1.77.0.rbi +2692 -2327
  90. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +8 -8
  91. data/sorbet/rbi/gems/ruby_llm@1.8.2.rbi +38 -23
  92. data/sorbet/rbi/gems/securerandom@0.4.1.rbi +1 -1
  93. data/sorbet/rbi/gems/simplecov-html@0.13.2.rbi +2 -131
  94. data/sorbet/rbi/gems/simplecov@0.22.0.rbi +28 -127
  95. data/sorbet/rbi/gems/{spoom@1.6.3.rbi → spoom@1.7.11.rbi} +1139 -2246
  96. data/sorbet/rbi/gems/sqlite3@2.9.0.rbi +91 -1
  97. data/sorbet/rbi/gems/{tapioca@0.16.11.rbi → tapioca@0.17.10.rbi} +721 -835
  98. data/sorbet/rbi/gems/thor@1.4.0.rbi +53 -53
  99. data/sorbet/rbi/gems/tsort@0.2.0.rbi +393 -0
  100. data/sorbet/rbi/gems/type_toolkit@0.0.5.rbi +49 -0
  101. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +144 -143
  102. data/sorbet/rbi/gems/uri@1.1.1.rbi +7 -7
  103. data/sorbet/rbi/gems/vcr@6.3.1.rbi +53 -36
  104. data/sorbet/rbi/gems/webmock@3.25.1.rbi +38 -13
  105. data/sorbet/rbi/gems/zeitwerk@2.7.3.rbi +39 -272
  106. data/sorbet/rbi/shims/lib/roast/execution_context.rbi +3 -3
  107. data/tutorial/01_your_first_workflow/README.md +9 -5
  108. data/tutorial/01_your_first_workflow/configured_chat.rb +1 -1
  109. data/tutorial/02_chaining_cogs/README.md +2 -2
  110. data/tutorial/02_chaining_cogs/code_review.rb +1 -1
  111. data/tutorial/02_chaining_cogs/session_resumption.rb +1 -1
  112. data/tutorial/03_targets_and_params/README.md +1 -1
  113. data/tutorial/04_configuration_options/README.md +2 -2
  114. data/tutorial/08_iterative_workflows/README.md +1 -1
  115. data/tutorial/README.md +1 -1
  116. metadata +39 -17
  117. data/docs/AGENT_STEPS.md +0 -288
  118. data/docs/INSTRUMENTATION.md +0 -243
  119. data/docs/ITERATION_SYNTAX.md +0 -147
  120. data/docs/VALIDATION.md +0 -178
  121. data/lib/roast/nil_assertions.rb +0 -23
  122. /data/internal/documentation/{architectural-notes.md → comments/architectural-notes.md} +0 -0
  123. /data/internal/documentation/{doc-comments-external.md → comments/doc-comments-external.md} +0 -0
  124. /data/internal/documentation/{doc-comments-internal.md → comments/doc-comments-internal.md} +0 -0
  125. /data/internal/documentation/{doc-comments.md → comments/doc-comments.md} +0 -0
@@ -0,0 +1,110 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `require-hooks` gem.
5
+ # Please instead update this file by running `bin/tapioca gem require-hooks`.
6
+
7
+
8
+ # source://require-hooks//lib/require-hooks/api.rb#3
9
+ module RequireHooks
10
+ class << self
11
+ # Define a block to wrap the code loading.
12
+ # The return value MUST be a result of calling the passed block.
13
+ # For example, you can use such hooks for instrumentation, debugging purposes.
14
+ #
15
+ # RequireHooks.around_load do |path, &block|
16
+ # puts "Loading #{path}"
17
+ # block.call.tap { puts "Loaded #{path}" }
18
+ # end
19
+ #
20
+ # source://require-hooks//lib/require-hooks/api.rb#71
21
+ def around_load(patterns: T.unsafe(nil), exclude_patterns: T.unsafe(nil), &block); end
22
+
23
+ # source://require-hooks//lib/require-hooks/api.rb#107
24
+ def context_for(path); end
25
+
26
+ # This hook should be used to manually compile byte code to be loaded by the VM.
27
+ # The arguments are (path, source = nil), where source is only defined if transformations took place.
28
+ # Otherwise, you MUST read the source code from the file yourself.
29
+ #
30
+ # The return value MUST be either nil (continue to the next hook or default behavior) or a platform-specific bytecode object (e.g., RubyVM::InstructionSequence).
31
+ #
32
+ # RequireHooks.hijack_load do |path, source|
33
+ # source ||= File.read(path)
34
+ # if defined?(RubyVM::InstructionSequence)
35
+ # RubyVM::InstructionSequence.compile(source)
36
+ # elsif defined?(JRUBY_VERSION)
37
+ # JRuby.compile(source)
38
+ # end
39
+ # end
40
+ #
41
+ # source://require-hooks//lib/require-hooks/api.rb#103
42
+ def hijack_load(patterns: T.unsafe(nil), exclude_patterns: T.unsafe(nil), &block); end
43
+
44
+ # Returns the value of attribute print_warnings.
45
+ #
46
+ # source://require-hooks//lib/require-hooks/api.rb#61
47
+ def print_warnings; end
48
+
49
+ # Sets the attribute print_warnings
50
+ #
51
+ # @param value the value to set the attribute print_warnings to.
52
+ #
53
+ # source://require-hooks//lib/require-hooks/api.rb#61
54
+ def print_warnings=(_arg0); end
55
+
56
+ # Define hooks to perform source-to-source transformations.
57
+ # The return value MUST be either String (new source code) or nil (indicating that no transformations were performed).
58
+ #
59
+ # NOTE: The second argument (`source`) MAY be nil, indicating that no transformer tried to transform the source code.
60
+ #
61
+ #
62
+ # RequireHooks.source_transform do |path, source|
63
+ # end
64
+ #
65
+ # source://require-hooks//lib/require-hooks/api.rb#85
66
+ def source_transform(patterns: T.unsafe(nil), exclude_patterns: T.unsafe(nil), &block); end
67
+ end
68
+ end
69
+
70
+ # source://require-hooks//lib/require-hooks/api.rb#8
71
+ class RequireHooks::Context
72
+ # @return [Context] a new instance of Context
73
+ #
74
+ # source://require-hooks//lib/require-hooks/api.rb#9
75
+ def initialize(around_load, source_transform, hijack_load); end
76
+
77
+ # @return [Boolean]
78
+ #
79
+ # source://require-hooks//lib/require-hooks/api.rb#15
80
+ def empty?; end
81
+
82
+ # @return [Boolean]
83
+ #
84
+ # source://require-hooks//lib/require-hooks/api.rb#23
85
+ def hijack?; end
86
+
87
+ # source://require-hooks//lib/require-hooks/api.rb#37
88
+ def perform_source_transform(path); end
89
+
90
+ # source://require-hooks//lib/require-hooks/api.rb#27
91
+ def run_around_load_callbacks(path); end
92
+
93
+ # @return [Boolean]
94
+ #
95
+ # source://require-hooks//lib/require-hooks/api.rb#19
96
+ def source_transform?; end
97
+
98
+ # source://require-hooks//lib/require-hooks/api.rb#49
99
+ def try_hijack_load(path, source); end
100
+ end
101
+
102
+ # source://require-hooks//lib/require-hooks/mode/load_iseq.rb#4
103
+ module RequireHooks::LoadIseq
104
+ # source://require-hooks//lib/require-hooks/mode/load_iseq.rb#5
105
+ def load_iseq(path); end
106
+ end
107
+
108
+ class RubyVM::InstructionSequence
109
+ extend ::RequireHooks::LoadIseq
110
+ end
@@ -274,7 +274,7 @@ class REXML::Attributes < ::Hash
274
274
  # attrs.add(REXML::Attribute.new('baz', '3')) # => baz='3'
275
275
  # attrs.include?('baz') # => true
276
276
  #
277
- # source://rexml//lib/rexml/element.rb#2516
277
+ # source://rexml//lib/rexml/element.rb#2520
278
278
  def <<(attribute); end
279
279
 
280
280
  # :call-seq:
@@ -549,7 +549,7 @@ class REXML::Attributes < ::Hash
549
549
  # ele = d.root.elements['//ele'] # => <a foo:att='1' bar:att='2' att='&lt;'/>
550
550
  # ele.attributes.length # => 3
551
551
  #
552
- # source://rexml//lib/rexml/element.rb#2214
552
+ # source://rexml//lib/rexml/element.rb#2219
553
553
  def size; end
554
554
 
555
555
  # :call-seq:
@@ -660,7 +660,7 @@ class REXML::Child
660
660
  # source://rexml//lib/rexml/child.rb#85
661
661
  def document; end
662
662
 
663
- # source://rexml//lib/rexml/node.rb#11
663
+ # source://rexml//lib/rexml/child.rb#58
664
664
  def next_sibling; end
665
665
 
666
666
  # Sets the next sibling of this child. This can be used to insert a child
@@ -691,7 +691,7 @@ class REXML::Child
691
691
  # source://rexml//lib/rexml/child.rb#52
692
692
  def parent=(other); end
693
693
 
694
- # source://rexml//lib/rexml/node.rb#17
694
+ # source://rexml//lib/rexml/child.rb#59
695
695
  def previous_sibling; end
696
696
 
697
697
  # Sets the previous sibling of this child. This can be used to insert a
@@ -770,7 +770,7 @@ class REXML::Comment < ::REXML::Child
770
770
 
771
771
  # The content text
772
772
  #
773
- # source://rexml//lib/rexml/comment.rb#14
773
+ # source://rexml//lib/rexml/comment.rb#58
774
774
  def to_s; end
775
775
 
776
776
  # == DEPRECATED
@@ -1041,7 +1041,7 @@ class REXML::Document < ::REXML::Element
1041
1041
  # d.add(REXML::Element.new('foo'))
1042
1042
  # d.to_s # => "<foo/>"
1043
1043
  #
1044
- # source://rexml//lib/rexml/document.rb#172
1044
+ # source://rexml//lib/rexml/document.rb#203
1045
1045
  def <<(child); end
1046
1046
 
1047
1047
  # :call-seq:
@@ -1168,7 +1168,7 @@ class REXML::Document < ::REXML::Element
1168
1168
  # d = doc_type
1169
1169
  # d ? d.name : "UNDEFINED"
1170
1170
  #
1171
- # source://rexml//lib/rexml/document.rb#131
1171
+ # source://rexml//lib/rexml/document.rb#136
1172
1172
  def name; end
1173
1173
 
1174
1174
  # :call-seq:
@@ -2789,7 +2789,7 @@ class REXML::Elements
2789
2789
  # element.parent # => <bookstore> ... </>
2790
2790
  # element.context # => {:raw=>:all}
2791
2791
  #
2792
- # source://rexml//lib/rexml/element.rb#1915
2792
+ # source://rexml//lib/rexml/element.rb#1927
2793
2793
  def <<(element = T.unsafe(nil)); end
2794
2794
 
2795
2795
  # :call-seq:
@@ -3756,8 +3756,8 @@ class REXML::Instruction < ::REXML::Child
3756
3756
  # be a Parent if the target argument is a Source. Otherwise, this
3757
3757
  # String is set as the content of this instruction.
3758
3758
  #
3759
- # @param target can be one of a number of things. If String, then
3760
3759
  # @param content Must be either a String, or a Parent. Can only
3760
+ # @param target can be one of a number of things. If String, then
3761
3761
  # @return [Instruction] a new instance of Instruction
3762
3762
  #
3763
3763
  # source://rexml//lib/rexml/instruction.rb#25
@@ -3940,6 +3940,11 @@ module REXML::Namespace
3940
3940
  # source://rexml//lib/rexml/namespace.rb#43
3941
3941
  def has_name?(other, ns = T.unsafe(nil)); end
3942
3942
 
3943
+ # The name of the object, valid if set
3944
+ #
3945
+ # source://rexml//lib/rexml/namespace.rb#53
3946
+ def local_name; end
3947
+
3943
3948
  # The name of the object, valid if set
3944
3949
  #
3945
3950
  # source://rexml//lib/rexml/namespace.rb#9
@@ -4094,7 +4099,7 @@ class REXML::Parent < ::REXML::Child
4094
4099
  # source://rexml//lib/rexml/parent.rb#13
4095
4100
  def initialize(parent = T.unsafe(nil)); end
4096
4101
 
4097
- # source://rexml//lib/rexml/parent.rb#18
4102
+ # source://rexml//lib/rexml/parent.rb#25
4098
4103
  def <<(object); end
4099
4104
 
4100
4105
  # Fetches a child at a given index
@@ -4106,9 +4111,9 @@ class REXML::Parent < ::REXML::Child
4106
4111
 
4107
4112
  # Set an index entry. See Array.[]=
4108
4113
  #
4114
+ # @param child if opt is an Integer, this is the child to set
4109
4115
  # @param index the index of the element to set
4110
4116
  # @param opt either the object to set, or an Integer length
4111
- # @param child if opt is an Integer, this is the child to set
4112
4117
  # @return the parent (self)
4113
4118
  #
4114
4119
  # source://rexml//lib/rexml/parent.rb#70
@@ -4117,7 +4122,7 @@ class REXML::Parent < ::REXML::Child
4117
4122
  # source://rexml//lib/rexml/parent.rb#18
4118
4123
  def add(object); end
4119
4124
 
4120
- # source://rexml//lib/rexml/parent.rb#115
4125
+ # source://rexml//lib/rexml/parent.rb#160
4121
4126
  def children; end
4122
4127
 
4123
4128
  # Deeply clones this object. This creates a complete duplicate of this
@@ -4138,7 +4143,7 @@ class REXML::Parent < ::REXML::Child
4138
4143
  # source://rexml//lib/rexml/parent.rb#39
4139
4144
  def each(&block); end
4140
4145
 
4141
- # source://rexml//lib/rexml/parent.rb#39
4146
+ # source://rexml//lib/rexml/parent.rb#61
4142
4147
  def each_child(&block); end
4143
4148
 
4144
4149
  # source://rexml//lib/rexml/parent.rb#51
@@ -4179,7 +4184,7 @@ class REXML::Parent < ::REXML::Child
4179
4184
 
4180
4185
  # @return the number of children of this parent
4181
4186
  #
4182
- # source://rexml//lib/rexml/parent.rb#130
4187
+ # source://rexml//lib/rexml/parent.rb#134
4183
4188
  def length; end
4184
4189
 
4185
4190
  # @return [Boolean]
@@ -4187,14 +4192,14 @@ class REXML::Parent < ::REXML::Child
4187
4192
  # source://rexml//lib/rexml/parent.rb#162
4188
4193
  def parent?; end
4189
4194
 
4190
- # source://rexml//lib/rexml/parent.rb#18
4195
+ # source://rexml//lib/rexml/parent.rb#24
4191
4196
  def push(object); end
4192
4197
 
4193
4198
  # Replaces one child with another, making sure the nodelist is correct
4194
4199
  # Child)
4195
4200
  #
4196
- # @param to_replace the child to replace (must be a Child)
4197
4201
  # @param replacement the child to insert into the nodelist (must be a
4202
+ # @param to_replace the child to replace (must be a Child)
4198
4203
  #
4199
4204
  # source://rexml//lib/rexml/parent.rb#140
4200
4205
  def replace_child(to_replace, replacement); end
@@ -4548,7 +4553,7 @@ class REXML::Parsers::XPathParser
4548
4553
 
4549
4554
  # For backward compatibility
4550
4555
  #
4551
- # source://rexml//lib/rexml/parsers/xpathparser.rb#174
4556
+ # source://rexml//lib/rexml/parsers/xpathparser.rb#221
4552
4557
  def preciate_to_string(parsed, &block); end
4553
4558
 
4554
4559
  # source://rexml//lib/rexml/parsers/xpathparser.rb#36
@@ -4559,32 +4564,18 @@ class REXML::Parsers::XPathParser
4559
4564
 
4560
4565
  private
4561
4566
 
4562
- # | AdditiveExpr ('+' | '-') MultiplicativeExpr
4563
- # | MultiplicativeExpr
4564
- #
4565
4567
  # source://rexml//lib/rexml/parsers/xpathparser.rb#505
4566
4568
  def AdditiveExpr(path, parsed); end
4567
4569
 
4568
- # | AndExpr S 'and' S EqualityExpr
4569
- # | EqualityExpr
4570
- #
4571
4570
  # source://rexml//lib/rexml/parsers/xpathparser.rb#438
4572
4571
  def AndExpr(path, parsed); end
4573
4572
 
4574
- # | EqualityExpr ('=' | '!=') RelationalExpr
4575
- # | RelationalExpr
4576
- #
4577
4573
  # source://rexml//lib/rexml/parsers/xpathparser.rb#457
4578
4574
  def EqualityExpr(path, parsed); end
4579
4575
 
4580
- # | FilterExpr Predicate
4581
- # | PrimaryExpr
4582
- #
4583
4576
  # source://rexml//lib/rexml/parsers/xpathparser.rb#608
4584
4577
  def FilterExpr(path, parsed); end
4585
4578
 
4586
- # | FUNCTION_NAME '(' ( expr ( ',' expr )* )? ')'
4587
- #
4588
4579
  # source://rexml//lib/rexml/parsers/xpathparser.rb#663
4589
4580
  def FunctionCall(rest, parsed); end
4590
4581
 
@@ -4596,24 +4587,15 @@ class REXML::Parsers::XPathParser
4596
4587
  # source://rexml//lib/rexml/parsers/xpathparser.rb#243
4597
4588
  def LocationPath(path, parsed); end
4598
4589
 
4599
- # | MultiplicativeExpr ('*' | S ('div' | 'mod') S) UnaryExpr
4600
- # | UnaryExpr
4601
- #
4602
4590
  # source://rexml//lib/rexml/parsers/xpathparser.rb#528
4603
4591
  def MultiplicativeExpr(path, parsed); end
4604
4592
 
4605
4593
  # source://rexml//lib/rexml/parsers/xpathparser.rb#343
4606
4594
  def NodeTest(path, parsed); end
4607
4595
 
4608
- # | OrExpr S 'or' S AndExpr
4609
- # | AndExpr
4610
- #
4611
4596
  # source://rexml//lib/rexml/parsers/xpathparser.rb#419
4612
4597
  def OrExpr(path, parsed); end
4613
4598
 
4614
- # | LocationPath
4615
- # | FilterExpr ('/' | '//') RelativeLocationPath
4616
- #
4617
4599
  # source://rexml//lib/rexml/parsers/xpathparser.rb#590
4618
4600
  def PathExpr(path, parsed); end
4619
4601
 
@@ -4625,24 +4607,15 @@ class REXML::Parsers::XPathParser
4625
4607
  # source://rexml//lib/rexml/parsers/xpathparser.rb#626
4626
4608
  def PrimaryExpr(path, parsed); end
4627
4609
 
4628
- # | RelationalExpr ('<' | '>' | '<=' | '>=') AdditiveExpr
4629
- # | AdditiveExpr
4630
- #
4631
4610
  # source://rexml//lib/rexml/parsers/xpathparser.rb#480
4632
4611
  def RelationalExpr(path, parsed); end
4633
4612
 
4634
4613
  # source://rexml//lib/rexml/parsers/xpathparser.rb#267
4635
4614
  def RelativeLocationPath(path, parsed); end
4636
4615
 
4637
- # | '-' UnaryExpr
4638
- # | UnionExpr
4639
- #
4640
4616
  # source://rexml//lib/rexml/parsers/xpathparser.rb#553
4641
4617
  def UnaryExpr(path, parsed); end
4642
4618
 
4643
- # | UnionExpr '|' PathExpr
4644
- # | PathExpr
4645
- #
4646
4619
  # source://rexml//lib/rexml/parsers/xpathparser.rb#571
4647
4620
  def UnionExpr(path, parsed); end
4648
4621
 
@@ -5086,12 +5059,12 @@ class REXML::XMLDecl < ::REXML::Child
5086
5059
  # source://rexml//lib/rexml/xmldecl.rb#98
5087
5060
  def nowrite; end
5088
5061
 
5089
- # source://rexml//lib/rexml/encoding.rb#7
5062
+ # source://rexml//lib/rexml/xmldecl.rb#74
5090
5063
  def old_enc=(encoding); end
5091
5064
 
5092
5065
  # Returns the value of attribute standalone.
5093
5066
  #
5094
- # source://rexml//lib/rexml/xmldecl.rb#17
5067
+ # source://rexml//lib/rexml/xmldecl.rb#73
5095
5068
  def stand_alone?; end
5096
5069
 
5097
5070
  # Returns the value of attribute standalone.