Class: RubyEventStore::DeprecatedReadAPIRewriter
- Inherits:
-
Parser::TreeRewriter
- Object
- Parser::TreeRewriter
- RubyEventStore::DeprecatedReadAPIRewriter
- Defined in:
- lib/ruby_event_store/deprecated_read_api_rewriter.rb
Instance Method Summary collapse
- #on_send(node) ⇒ Object
- #parse_args(args) ⇒ Object
- #parse_keyword(node) ⇒ Object
- #parse_value(node) ⇒ Object
- #rewrite_api(query, range, start: nil, count: PAGE_SIZE, stream: nil) ⇒ Object
Instance Method Details
#on_send(node) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/ruby_event_store/deprecated_read_api_rewriter.rb', line 18 def on_send(node) node.each_descendant(:send) { |desc_node| on_send(desc_node) } _, method_name, *args = node.children return unless DEPRECATED_READER_METHODS.include?(method_name) replace_range = node.location.selector replace_range = replace_range.join(node.location.end) if node.location.end case method_name when :read_all_streams_backward, :read_events_backward rewrite_api("read.backward", replace_range, **parse_args(args)) when :read_stream_events_backward rewrite_api("read.backward", replace_range, count: nil, **parse_args(args)) when :read_all_streams_forward, :read_events_forward rewrite_api("read", replace_range, **parse_args(args)) when :read_stream_events_forward rewrite_api("read", replace_range, count: nil, **parse_args(args)) end end |
#parse_args(args) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/ruby_event_store/deprecated_read_api_rewriter.rb', line 46 def parse_args(args) return {} if args.empty? case args.size when 1 case args[0].type when :hash stream_name, kwargs = nil, args[0] else stream_name, kwargs = parse_value(args[0]), AST::Node.new(:hash) end else stream_name, kwargs = parse_value(args[0]), args[1] end kwargs .children .reduce({stream: stream_name}) do |memo, pair| keyword, value = pair.children memo[parse_keyword(keyword)] = parse_value(value) memo end end |
#parse_keyword(node) ⇒ Object
74 75 76 |
# File 'lib/ruby_event_store/deprecated_read_api_rewriter.rb', line 74 def parse_keyword(node) node.children[0].to_sym end |
#parse_value(node) ⇒ Object
70 71 72 |
# File 'lib/ruby_event_store/deprecated_read_api_rewriter.rb', line 70 def parse_value(node) Unparser.unparse(node) end |
#rewrite_api(query, range, start: nil, count: PAGE_SIZE, stream: nil) ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/ruby_event_store/deprecated_read_api_rewriter.rb', line 38 def rewrite_api(query, range, start: nil, count: PAGE_SIZE, stream: nil) query << ".stream(#{stream})" if stream query << ".from(#{start})" if start query << ".limit(#{count})" if count replace(range, "#{query}.to_a") end |