All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Farseer::Empty
which always succeeds and parses nothing, returning the whole string as rest.
- Change usage of
#eql?
to#==
inFarseer::Result
. Farseer::And
does not join the resulting tokens anymore, but rather return an array of tokens.- Remove all development dependencies from
Gemfile
in favor of havinglollipop
in thegemspec
.
Farseer::Map
which is a parser with a callback to map the resulting token into something else.Farseer::MapFactory
which adds#map
, a factory method for new parsers with callbacks. It creates a new instance ofFarseer::Map
.- Included
Farseer::MapFactory
into all parsers.
Farseer::And
to run a sequence of parsers that must all succeed.Farseer::Or
to try multiple parsers until one works.Farseer::Word
to parse a keyword at the beginning of a string.Farseer::Regexp
to parse a token usingregexp
.mutant
development dependency for mutation testing.- Achieve
100%
mutation test coverage. byebug
development dependency for debugging.
- All helper methods of
Farseer
.
- Update development dependencies.
Farseer::Opt
to parse0
to1
times the wrapped parser. (?
)Farseer::Any
to parse0
to multiple times the wrapped parser. (*
)Farseer::Many
to parse1
to multiple times the wrapped parser. (+
)- A couple of instances of
Farseer::Chars
as constants:Farseer::Chars::DIGITS
to parse digits from0
to9
.Farseer::Chars::BASIC_MATH_OP
to parse symbols+
,-
,*
,/
.
- Enabled more
Lint
rubocop
rules. - Enabled
Performance
rubocop
rules.
- Updated development dependencies
Farseer::Char
as a single character parser.Farseer::Chars
as a single character from set parser.- Multiple instances of
Farseer::Char
as constants:Farseer::Char::L_PARENS
for(
.Farseer::Char::R_PARENS
for)
.Farseer::Char::PLUS
for+
.Farseer::Char::MINUS
for-
.Farseer::Char::STAR
for*
.Farseer::Char::SLASH
for/
.
- Enabled
Lint
rubocop
rules. - Enabled a couple more
Layout
rubocop
rules.
- Update
muina
version requirement to~> 0.5
Farseer.any_char_parser
to parse a single character from a given set.irb
development dependency..gitignore.local
symlink to.git/info/exclude
.
- Stop using
module_function
and change methods into singleton methods. - Update
bundler
version.
Farseer#ws_parser
to parse all leading whitespace.- Multiple development dependencies:
flay
,flog
,guard
,guard-rspec
,guard-rubocop
,lefthook
, andrubocop-performance
with correspondingbinstubs
.Guardfile
withrspec
andrubocop
guards..lefthook.yml
includingpre-commit
andpre-push
hooks, andaudit
andfull_audit
tasks.
- Bump
muina
required version to~> 0.4
. - Enabled
Lint
rubocop
department.
Farseer::Result
to hold the result of succesful parses.Farseer#char_parser
to parse a single specific character.muina
as a dependency.bin/console
to jump intoirb
with the project loaded.
- Initial gem relase.
- Set up code quality dependencies:
rake
: for running common tasks.rubocop
: for linting.rspec
: for testing.simplecov
: for code coverage.
- License the project with
The Unlicense
. Rakefile
withgem
,rubocop
, andrspec
tasks.SECURITY.md
to keep track of maintained versions.Farseer::VERSION
: Keep the gem version in a constant..ruby-version
for rbenv, with version3.2.2
- This
CHANGELOG.md