v1.4.0
Bug fixes
- Fix ambiguous grammars (mostly due to incorrect parentheses)
- Fix errors in
Standards::FortyTen::HC837
- Fix errors in
Standards::FiftyTen::BE834
- Fix errors in
Standards::FiftyTen::HB271
- Fix errors in
Standards::FiftyTen::RA820
- Fix parsing invalid numeric data in Ruby 2.4+. Previously
"10B"
would be read as10.0
, and"AB10"
would be read as0.0
due to using bigdecimal/util's implementation ofString#to_d
- Fix
TimeVal
issue in all versions (not only005010
)
Added
- Added
Stupidedi::Parser.build
as a shortcut forStupidedi::Parser::StateMachine.build
- Added many stub definitions of segments, just the segment name and no elements, which are referred to by
RA820
and others. edi-pp
can now print different formats with--format html
,--format x12
, and--format tree
(default)
Deprecation notices
- Remove support for Ruby < 2.0
- Remove workarounds for broken JRuby refinements
- Remove
Symbol#call
andSymbol#to_proc
refinements
Renamed
Stupidedi::Builder
is renamed toStupidedi::Parser
Stupidedi::Guides::*::GuideBuilder
is renamed toStupidedi::TransactionSets::Builder
Stupidedi::Versions::Interchanges
is renamed toStupidedi::Interchanges
Stupidedi::Versions::FunctionalGroups
is renamed toStupidedi::Versions
- Lots of common code among versions has been factored into
Stupidedi::Versions::Common
- Lots of common code among versions has been factored into
- Rename Guides
HC837P
andHC837I
toHC837
- Moved all grammars, including
Guides
andContrib
, toStupidedi::TransactionSets
- Each version now has
::Standards
and::Implementations
- Each version now has
Stupidedi::Schema::Auditor
is renamed toStupidedi::TransactionSets::Validation::Ambiguity
Most of these renames aren't breaking changes (yet), but using the old name will print a warning:
Stupidedi::Contrib is deprecated, use Stupidedi::TransactionSets
Stupidedi::Guides is deprecated, use Stupidedi::TransactionSets::*::Implementations
Stupidedi::TransactionSets::FiftyTen::Implementations::X222::HC837P is deprecated, use HC837 instead
Stupidedi::TransactionSets::FiftyTen::Implementations::X222A1::HC837P is deprecated, use HC837 instead
Stupidedi::TransactionSets::FiftyTen::Implementations::X223::HC837I is deprecated, use HC837 instead
Stupidedi::Versions::Interchanges is deprecated, use Stupidedi::Interchanges instead
Stupidedi::Versions::FunctionalGroups is deprecated, use Stupidedi::TransactionSets::*::Standards instead
Specs
- Grammar specs automatically created when a fixture is added to
spec/fixtures/<version>/<name>/pass/*.x12
- Remove support for
rcov
. Use onlysimplecov
now - Update all specs to use
expect(value).to matcher
syntax, instead ofvalue.should matcher
- New specs to ensure element names match their
id
(eg,E123.id == :E123
) - New specs to ensure segment names match their
id
(egST.id == :ST
) - New specs to ensure
Config.hipaa
,Config.contrib
, andConfig.default
reference valid definitions - New specs for
Stupidedi::TransactionSets::Validation::Ambiguity
- Fix fixture files that used
\n
as a segment terminator but didn't have one afterIEA
Miscellaneous
- Create new examples in
examples/
that demonstrate undocumentedIdentifierStack
, and more - Made whitespace and other formatting more consistent
Stupidedi::TransactionSets::Builder.build
no longer requires aTransactionSetDef
argument- Fix Travis CI to build older versions of Ruby < 2.3
- Ignore large definition files in Code Climate