Code Monkey home page Code Monkey logo

Comments (3)

kputnam avatar kputnam commented on June 5, 2024 1

Yes, you have the right idea! Try this:

# ....
machine, = parser.read(Stupidedi::Reader.build(edi_content))

# After parsing, state machine is positioned at the end of input (last segment), so let's rewind
isa = machine.first

# We can't use isa.iterate(:ISA) here because #iterate always starts searching
# _after_ the cursor position, and would skip the first ISA!
#
# Note: if there was a way to rewind to right before the first segment, iterate
# would work just fine here. Or alternatively, #iterate could be made to search
# right at the current segment. Unfortunately this might break legacy code!
while isa.defined?
  # Unwrap Either<StateMachine> to just a StateMachine. This is safe because we just checked isa.defined?
  isa = isa.fetch

  # Note: this returns an Either<Zipper<Segment>>
  # seg = isa.segment

  # We can use #iterate here because GS occurs somewhere after an ISA, rather than in the same location as the ISA.
  isa.iterate(:GS) do |gs|
    puts extract(gs, 6)
  end

  # Find the next ISA segment, returns Either<StateMachine>
  isa = isa.find(:ISA)
end

puts "no more ISAs found. quitting."
sleep 1

from stupidedi.

kputnam avatar kputnam commented on June 5, 2024

If this does the trick, please close the issue. Otherwise let me know how I can help!

from stupidedi.

alexdean avatar alexdean commented on June 5, 2024

seems like that does the trick. thank you very much!

from stupidedi.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.