0.1
Bernhard Stoeckner
Add proper struct support, fix some values Suspected to be fully-working Gff::Reader Add working rudimentary Gff::Writer Add substruct support Add untested support for complex datatypes add gff_to_yaml.rb Add COPYING, LICENCE, README, Rakefile, spec/ Update README add nwn-gff-print.rb binary, update gff lib rename nwn-gff-print.rb to nwn-gff-print nwn-gff-print: allow proper printing of sub-structs/lists Add proper get/set support for Gff, add Element validations Rakefile/gem: add nwn-gff-print to binary list Rename project to nwn-lib Fix Writer method scope
0.2
Bernhard Stoeckner
Fix stupid typo in Rakefile Add a basic 2da parser twoda: Read windows-linebreaks as well. Twoda: add .to_2da nwn-gff-print/Gff: kivinen_format is now a member of the Gff module and supports printing types 0.2-rel, add CHANGELOG
0.2.1
Bernhard Stoeckner
TwoDA: Update API for new schema Gff: minor documentation update Gff/kivinen_print: be more compatible Gff/kivinen_format: add filetype-override for custom headers, add documentation Add cheatsheet Version 0.2.1-rel
0.3.0
Bernhard Stoeckner
Gff::Reader: Fix reading structs with no subvalues Gff::Reader: void datatype support add nwn-gff-irb Gff: raise RuntimeError instead of generic Exceptions Update CHEATSHEET for gff-irb 0.2.2-rel TwoDA: Do not parse empty lines Add global, optional, 2da cache, add NWN::Gff.item_property helper item_property: resolve unique partial matches CExoLocString: more comfortable class to manage (API change) compatibility fixes: allow non-empty-line-2das, be slightly more verbose Gff::Struct is a delegator to Hash to allow seamless YAML marshalling nwn-gff-print: -m: add support for native ruby marshalling Binary: add nwn-gff-import TwoDA: compatibility fixes (just warn on double ID assignments) 0.3.0-rel
0.3.1
Bernhard Stoeckner
Gff: fix struct delegator bug not passing on blocks (yuk!) 0.3.1-rel
0.3.2
Bernhard Stoeckner
Add NWN::Gff::Struct#set for easy label setting Gff: fix reading some type fields raising an exception in rare conditions 0.3.2-rel
0.3.3
Bernhard Stoeckner
Gff#get_or_set: fix addressing exolocstr languages (/Description/0) Helpers.item_property: ? expands the full list fix private method `select' called while accessing ExoLocStr/Language add support for sorted and cleaned-up yaml output writer: void written properly nwn-gff-print: add support for multiple files nwn-gff-import: add support for multiple files 0.3.3-rel
0.3.4
Bernhard Stoeckner
nwn-gff-print: -y outputs sorted hash maps nwn-gff-print: fix --verbose switch type :cexolocstr: do not lose empty lang ids README: add encoding warning struct to yaml: inline small structs CHEATSHEET: add some hints for nwn-gff-import 0.3.4-rel
0.3.5
Bernhard Stoeckner
NWN::Gff::Gff.get_or_set: remove stray debug puts add option for fp precision to Gff::Reader, add cli opt to nwn-gff-print nwn-gff-print: minor speedup when dumping to yaml without prefixes doc: update BINARIES, CHEATSHEET nwn-gff-import: fix reading stdin as - 0.3.5-rel
0.3.6
Bernhard Stoeckner
NWN::Gff::Struct: do not sort yaml_properties kivinen_format: print out structs in sorted order nwn-gff-irb: support for reading/writing .yml files NWN::Gff::Gff: do not sort yaml_properties Rakefile: use gem1.8 instead of gem 0.3.6-rel
Stuart Coyle
TwoDA: use four spaces for field separation instead of tabs, indent columns
0.4.0
Bernhard Stoeckner
too many to sanely list, see README for migration information
0.4.1
Bernhard Stoeckner
Field#field_value=: unbreak setting a new value Scripting: add rudimentary ask method scripts/clean_locstrs.rb: optimise a bit 0.4.1-rel
0.4.2
Bernhard Stoeckner
scripts/fix_facings.rb: removed, results in corruption bin/nwn-dsl: cleanup exception handling TwoDA::Table: add support for non-windows newlines TwoDA::Table: quote cells with whitespaces TwoDA::Table: a more robust parser handling slightly malformed 2da files scripts: add reformat_2da for validating and prettyprinting 2da files Tlk: basic talktable reading scripts: add a debug script add *.itp to GuessFormats Tlk: basic talktable editing and writing 0.4.2-rel
0.4.3
Bernhard Stoeckner
NWN::Erf: basic reading/writing library + tar-like binary add tlk.rb to nwn/all.rb 0.4.3-rel
0.4.4
Bernhard Stoeckner (7):
bin/nwn-gff: guess outfile format based on extension erf: do not fail on misaligned strings, print warning instead bin/nwn-erf: compat mode with tar, options can be without dashes API: Add some helpers for creating Gff elements scripting: satisfy: return object as-is when no conditions are given bin/nwn-erf: -vt: move column type before filename erf: fix loctable reading breaking on more than one locstr 0.4.4-rel
0.4.5
Bernhard Stoeckner (14):
bin/nwn-irb: fix help scriptname nwn-dsl: $SCRIPT is the currently-running script TwoDA: add .get alias Scripting/log: provide #progress to indicate progress within scripts guess_file_name: consider non-lowercase extensions nwn-gff: $SCRIPT fix nwn-irb: include NWN namespace Namespace clobbering: Integer provides xp_to_level, level_to_xp Gff::Struct: add #to_s scripting: satisfy: return object as-is when no conditions are given (fix) Scripting: add support to .#save files that were loaded with satisfy/need/want Scripting: ask: fix return value of hash and arrays TwoDA: add disclaimer for Cache references TwoDA: add Table#[], Table#[]= 0.4.5-rel
0.4.6
Bernhard Stoeckner
bin/nwn-dsl: always print backtraces tests: add rspec stub for later test introduction Field: complete valid_for?, add checks in readers, add rspec Field: #path prints proper list indices ResourceManager: generic implementation as per bioware docs TwoDA: read 2da header with arbitary spaces between magic and version TwoDA: make id mismatch parsing more robust TwoDA: nwn does not fill in missing row IDs TwoDA: fix typo preventing #to_2da with NWN_LIB_2DA_NEWLINE absent TwoDA: only print to $stderr when -d/$DEBUG is set TwoDA: do not raise error on misshaped ID column, add documentation TwoDA: do not compact multiple nonquoted cells in last column TwoDA: add specs Erf: skip over lid and strz to read locstrs correctly Erf: seek to offsets instead of depending on constants, handle IOErrors Erf: add specs Tlk: fix reading last strref in a tlk Tlk: add specs Cexolocstr: add specs Struct: .new accepts a block Struct: add specs Gff: add specs feature kill: remove type/value inferring, NWN_LIB_INFER_* Revert "add env setting NWN_LIB_FILTER_EMPTY_EXOLOCSTR" Rakefile/rdoc: use mislav-hanna if available update all documentation to reflect current situation 0.4.6-rel This release changes a few features; most prominent of all is the infer mechanism - it is removed completely for sanity reasons. Also, quite a few bugfixes found their way into this release, thanks to the newly-added specs. Please browse the commit log for a full list of changes.
0.4.7
Bernhard Stoeckner
bin/*: do not require rubygems explicitly remove obsolete Gff::Helpers module Erf: add support for ERF V1.1 env var NWN_LIB_DEBUG sends debug messages to stderr when set add support for Microsoft Windows R::ContentObject: do not fail on missing io, seek properly R::ContentObject#filename: "unknown-N" instead of nil for unknown res_types R::ContentObject: properly raise ENOENT on invalid io and file G::Reader, Writer: work on io objects instead of strings G::Writer: fix struct verify exception on reading substructs specs: move all test stubs into _helper Erf: improve broken locstr header handling Erf: raise errors for invalid filenames on add, add_file Erf: fix misaligned offsets in reslist nwn-erf: fix parsing erf files where day_of_year = 0 nwn-erf: output non-errors to stdout instead of stderr nwn-erf: fix packing up files nwn-erf: add specs Erf: reproduction spec checks for binary equality with sample Gff: add specs for each_by_flat_path, to_gff nwn-gff: fix backup strategy handler missing FileUtils nwn-gff: add specs rename spec/wellformed_gff.binary to .bic nwn-dsl: add specs 0.4.7-rel A real bugfix-release, this takes care of a whole swad of fixes in erf and gff handling, and also improves Windows compatibility. Particularily, erf writing was kind of broken in the previous release, putting wrong offsets for files created with nwn-erf. Please browse the commit log for a full list of changes.
0.4.8
Bernhard Stoeckner
IO: add special e_read call to wrap size checks with custom exception msgs NWN.setting: generic setting get/set mechanism NWN.log_debug: messages always print unless explicitly turned off Field :resref validate: warn when too long and not explicitly turned off nwn-gff: fix reading from stdin throwing an exception 0.4.8-rel Another bugfix and compatibility release. This adds real NWN2 support to gff reading, adds a few new SETTINGS, and adds proper IO reading.
0.4.9
Bernhard Stoeckner
Gff::Reader/YAML: do not taint read objects Scripting: satisfy win32 compatibility nwn-irb: work on IO object instead of string nwn-erf: fix typo in -h: -1 saying ERF 1.0 instead of ERF 1.1 Scripting: satisfy: close opened fds after loading GFF data api.rb: merge into field.rb and struct.rb Gff::Struct#by_path: print list index in current_path on error Gff::Struct#by_path: / alias, $ and % mods, substruct & locname paths TwoDA::Table: fix always printing errors for invalid IDs on table reading Update documentation, add HOWTO 0.4.9-rel Some medium rare bugfixes, and a overloaded operator for GFF structs, which can be used to comfortable walk on trees.
0.4.10
Bernhard Stoeckner
bin/nwn-erf: exit(1) on errors bin/nwn-erf: support extracting parts of archive with -x Erf::Erf: set correct internal year on initialize bin/nwn-gff: fix reading gff data from stdin Gff::Field: transform type to symbols on extend Gff::Struct#path: return full data type by walking the tree on the fly Gff: add :pretty format that prettyprints Gff::Struct, Gff::Field: add generic box/unbox methods Gff: JSON support new ENV NWN_LIB_IN_ENCODING specifies nwn-gff encoding :pretty-print boxes before printing Gff: JSON support adheres NWN_LIB_PRETTY_JSON env var Kivinen-format: refactor into Marshal load/dump interface Res/ContentObject: minor internal cleanups Gff::Reader: do not compact exolocstrs on read-in YAML/JSON support: fix spec, add dep, fix files to not clash with gem names Rakefile: spec support for >= 1.1.9 NWN::Key: .key, .bif reading support Resources::DirectoryContainer: do not fail on invalid files in directory documentation updates bin/nwn-erf: do not set description str_ref to 0x0 NWN::Gff: refactor API to properly partition different file format handlers 0.4.10-rel A swath of bugfixes, JSON read/write, and finally .key and .bif reading support. Also, Resources::Manager got some documentation and a few touches here and there, as did bin/nwn-erf, which supports partial extraction now. For our non-ASCII users, there is a ENV variable that can be used to specify the encoding in which local GFF data is supposed to be in.
0.4.10.1
Bernhard Stoeckner
JSON support: remove hard dep from Rakefile, load if available Rakefile release target: use new rubyforge binary version API 0.4.10.1-rel Late night Rakefile fun.
0.4.11
Bernhard Stoeckner
Gff::Struct.add_*: support default values for new fields Gff::YAML: fix setting proper .element for direct child-structs specs: run without debug logs, un-breaks bin/* specs Field.unbox! always takes parent parameter Gff::Struct: API chg, path w/o data_type, data_type changes Gff::JSON: specs Gff::Kivinen: rename kivinen_format -> format, add spec 0.4.11-rel A mostly-maintenance release with some API changes. The most invasive changes are some method renames. New are some sane default values for Struct#add_*, and a few more specs. YAML now sets correct .element references.
0.4.12
Bernhard Stoeckner (18):
Gff read/write API: documentation, Handler#dump always returns bytes written
Settings: iconv: refactor into methods
data_type_spec: refactor to be more concise
Gff::Struct#data_type=: only emit debug message when new type is non-nil
Gff::Handler::JSON: emit terminating newline regardless of :pretty_json
JSON: infer data_version like yaml, omit if DEFAULT
Gff: error if registering format of same name twice, reverse FileFormatRX hash
Gff::Struct: reparenting struct emits debug message only if element != nil
Gff::Reader: allow reading of arbitary Gff version files
Gff::Struct: data_version allow more freedom in inferring, update spec
NWN::Gff: custom xml data format, nwntools.sf.net modpacker read/write support
Rakefile: spec output in spec-style format
Rakefile: remove obsolete rubyforge target
bin/nwn-gff: --out-encoding specified output encoding
NWN.setting: return default values for setting new values too
spec_helper: set $options to unbreak kivinen spec
NWN.log_debug: non-lib frame if available, :debug_trace prints full traces
Gff::Field: fix data ranges for int64, dword64
0.4.12-rel
A few new features and some bugfixes this release:
- more concise yaml dumps (but backwards-compatible)
- some iconv fixes
- dword64 and int64 data ranges now correct
- support for parsing/dumping modpacker XML
- support for parsing/dumping a custom, cleaner XML format