nwn-lib 0.4.12 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
File without changes
File without changes
@@ -1,5 +1,6 @@
1
1
  require 'rubygems'
2
2
  require 'tempfile'
3
+ require 'fileutils'
3
4
  require 'open3'
4
5
 
5
6
  Thread.abort_on_exception = true
@@ -21,10 +22,10 @@ GffFieldValidations = {
21
22
  :resref => [["", "a" * 16], ["a" * 17]],
22
23
  :double => [[0.0], ["x"]],
23
24
  :dword => [[0, 0xffffffff], [-1, 0xffffffff + 1]],
24
- :dword64 => [[0, 0xffffffffffff], [-1, 0xffffffffffff + 1]],
25
+ :dword64 => [[0, 0xffffffffffffffff], [-1, 0xffffffffffffffff + 1]],
25
26
  :float => [[0.0], ["x"]],
26
27
  :int => [[-0x80000000, 0x7fffffff], [0x80000001, 0x7fffffff + 1]],
27
- :int64 => [[-0x800000000000, 0x7fffffffffff], [0x800000000001, 0x7fffffffffff + 1]],
28
+ :int64 => [[-0x8000000000000000, 0x7fffffffffffffff], [-0x8000000000000000 - 1, 0x7fffffffffffffff + 1]],
28
29
  :short => [[-0x8000, 0x7fff], [-0x8001, 0x7fff + 1]],
29
30
  :word => [[0, 0xffff], [-1, 0xffff + 1]],
30
31
  }.freeze
@@ -194,17 +195,17 @@ TWODA_MISSING_ID = <<-EOT
194
195
  2 d
195
196
  EOT
196
197
 
197
- describe "bin helper", :shared => true do
198
- before do
199
- @tmp = Dir.tmpdir
198
+ module BinHelper
199
+ def tmpfile
200
+ Tempfile.new('nwn-lib', @tmpdir, :encoding => 'BINARY')
200
201
  end
201
202
 
202
203
  def run_bin *va
203
204
  binary = File.join(File.expand_path(File.dirname(__FILE__)), "..", "bin", subject.to_s)
204
205
  incl = File.join(File.expand_path(File.dirname(__FILE__)), "..", "lib")
205
206
  old = Dir.pwd
207
+ Dir.chdir(@tmpdir) if defined?(@tmpdir)
206
208
  begin
207
- Dir.chdir(@tmp)
208
209
  Open3.popen3(
209
210
  "ruby", "-rubygems", "-I#{incl}",
210
211
  binary,
@@ -213,11 +214,12 @@ describe "bin helper", :shared => true do
213
214
  yield i, o, e
214
215
  end
215
216
  ensure
216
- Dir.chdir(old)
217
217
  end
218
+ Dir.chdir(old)
218
219
  end
219
220
 
220
221
  def run *va
222
+ puts "run: #{va.inspect}"
221
223
  run_bin *va do |i, o, e|
222
224
  e = e.read
223
225
  e.should == ""
metadata CHANGED
@@ -1,130 +1,134 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: nwn-lib
3
- version: !ruby/object:Gem::Version
4
- version: 0.4.12
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.0
5
+ prerelease:
5
6
  platform: ruby
6
- authors:
7
+ authors:
7
8
  - Bernhard Stoeckner
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
-
12
- date: 2010-01-15 00:00:00 +01:00
13
- default_executable:
12
+ date: 2012-06-30 00:00:00.000000000 Z
14
13
  dependencies: []
15
-
16
- description: a ruby library for accessing Neverwinter Nights resource files
17
- email: elven@swordcoast.net
18
- executables:
19
- - nwn-gff
20
- - nwn-erf
14
+ description: Neverwinter Nights 1/2 file formats ruby library
15
+ email:
16
+ - n@e-ix.net
17
+ executables:
21
18
  - nwn-dsl
19
+ - nwn-erf
20
+ - nwn-gff
22
21
  - nwn-irb
23
22
  extensions: []
24
-
25
- extra_rdoc_files:
26
- - README
27
- - BINARIES
28
- - HOWTO
29
- - SCRIPTING
30
- - SETTINGS
31
- - CHEATSHEET
32
- - CHANGELOG
33
- - COPYING
34
- files:
35
- - COPYING
36
- - CHANGELOG
37
- - README
23
+ extra_rdoc_files: []
24
+ files:
25
+ - .gitignore
26
+ - .yardopts
27
+ - BINARIES.rdoc
28
+ - CHEATSHEET.rdoc
29
+ - Gemfile
30
+ - HOWTO.rdoc
31
+ - LICENCE
32
+ - README.rdoc
38
33
  - Rakefile
34
+ - SCRIPTING.rdoc
35
+ - SETTINGS.rdoc
39
36
  - bin/nwn-dsl
37
+ - bin/nwn-erf
40
38
  - bin/nwn-gff
41
39
  - bin/nwn-irb
42
- - bin/nwn-erf
43
- - spec/kivinen_expect.rb
44
- - spec/wellformed_gff.bic
45
- - spec/gff_spec.rb
46
- - spec/struct_data_type_version_spec.rb
47
- - spec/res_spec.rb
48
- - spec/erf_spec.rb
49
- - spec/key_spec.rb
50
- - spec/kivinen_spec.rb
51
- - spec/field_spec.rb
52
- - spec/cexolocstr_spec.rb
53
- - spec/struct_spec.rb
54
- - spec/spec_helper.rb
55
- - spec/tlk_spec.rb
56
- - spec/json_spec.rb
57
- - spec/bin_dsl_spec.rb
58
- - spec/bin_gff_spec.rb
59
- - spec/bin_erf_spec.rb
60
- - spec/twoda_spec.rb
61
- - lib/nwn/scripting.rb
62
- - lib/nwn/key.rb
63
- - lib/nwn/twoda.rb
64
- - lib/nwn/json_support.rb
40
+ - lib/nwn/all.rb
65
41
  - lib/nwn/erf.rb
66
- - lib/nwn/kivinen_support.rb
67
- - lib/nwn/settings.rb
68
42
  - lib/nwn/gff.rb
69
- - lib/nwn/yaml_support.rb
70
- - lib/nwn/xml_support.rb
71
- - lib/nwn/tlk.rb
72
- - lib/nwn/io.rb
73
- - lib/nwn/res.rb
74
- - lib/nwn/all.rb
43
+ - lib/nwn/gff/cexolocstr.rb
75
44
  - lib/nwn/gff/field.rb
45
+ - lib/nwn/gff/list.rb
76
46
  - lib/nwn/gff/reader.rb
77
- - lib/nwn/gff/cexolocstr.rb
78
47
  - lib/nwn/gff/struct.rb
79
- - lib/nwn/gff/list.rb
80
48
  - lib/nwn/gff/writer.rb
81
- - tools/verify.sh
82
- - tools/migrate_03x_to_04x.sh
83
- - scripts/truncate_floats.rb
84
- - scripts/reformat_2da
49
+ - lib/nwn/io.rb
50
+ - lib/nwn/json_support.rb
51
+ - lib/nwn/key.rb
52
+ - lib/nwn/kivinen_support.rb
53
+ - lib/nwn/res.rb
54
+ - lib/nwn/scripting.rb
55
+ - lib/nwn/settings.rb
56
+ - lib/nwn/tlk.rb
57
+ - lib/nwn/twoda.rb
58
+ - lib/nwn/version.rb
59
+ - lib/nwn/xml_support.rb
60
+ - lib/nwn/yaml_support.rb
61
+ - nwn-lib.gemspec
85
62
  - scripts/clean_locstrs.rb
86
- - scripts/extract_all_items.rb
87
63
  - scripts/debug_check_objid.rb
88
- - BINARIES
89
- - HOWTO
90
- - SCRIPTING
91
- - SETTINGS
92
- - CHEATSHEET
93
- has_rdoc: true
94
- homepage: http://nwn-lib.elv.es
64
+ - scripts/extract_all_items.rb
65
+ - scripts/reformat_2da
66
+ - scripts/truncate_floats.rb
67
+ - spec/bin_dsl_spec.rb
68
+ - spec/bin_erf_spec.rb
69
+ - spec/bin_gff_spec.rb
70
+ - spec/cexolocstr_spec.rb
71
+ - spec/erf_spec.rb
72
+ - spec/field_spec.rb
73
+ - spec/gff_spec.rb
74
+ - spec/json_spec.rb
75
+ - spec/key_spec.rb
76
+ - spec/kivinen_expect.rb
77
+ - spec/kivinen_spec.rb
78
+ - spec/rcov.opts
79
+ - spec/res_spec.rb
80
+ - spec/spec.opts
81
+ - spec/spec_helper.rb
82
+ - spec/struct_data_type_version_spec.rb
83
+ - spec/struct_spec.rb
84
+ - spec/tlk_spec.rb
85
+ - spec/twoda_spec.rb
86
+ - spec/wellformed_gff.bic
87
+ - tools/migrate_03x_to_04x.sh
88
+ - tools/verify.sh
89
+ homepage: https://github.com/niv/nwn-lib
95
90
  licenses: []
96
-
97
91
  post_install_message:
98
- rdoc_options:
99
- - --quiet
100
- - --line-numbers
101
- - --inline-source
102
- - --title
103
- - "nwn-lib: a ruby library for accessing NWN resource files"
104
- - --main
105
- - README
106
- - --exclude
107
- - ^(examples|extras)/
108
- require_paths:
92
+ rdoc_options: []
93
+ require_paths:
109
94
  - lib
110
- required_ruby_version: !ruby/object:Gem::Requirement
111
- requirements:
112
- - - ">="
113
- - !ruby/object:Gem::Version
114
- version: 1.8.4
115
- version:
116
- required_rubygems_version: !ruby/object:Gem::Requirement
117
- requirements:
118
- - - ">="
119
- - !ruby/object:Gem::Version
120
- version: "0"
121
- version:
95
+ required_ruby_version: !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ! '>='
99
+ - !ruby/object:Gem::Version
100
+ version: 1.9.1
101
+ required_rubygems_version: !ruby/object:Gem::Requirement
102
+ none: false
103
+ requirements:
104
+ - - ! '>='
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
122
107
  requirements: []
123
-
124
- rubyforge_project: nwn-lib
125
- rubygems_version: 1.3.5
108
+ rubyforge_project:
109
+ rubygems_version: 1.8.23
126
110
  signing_key:
127
111
  specification_version: 3
128
- summary: a ruby library for accessing Neverwinter Nights resource files
129
- test_files: []
130
-
112
+ summary: Neverwinter Nights 1/2 file formats ruby library
113
+ test_files:
114
+ - spec/bin_dsl_spec.rb
115
+ - spec/bin_erf_spec.rb
116
+ - spec/bin_gff_spec.rb
117
+ - spec/cexolocstr_spec.rb
118
+ - spec/erf_spec.rb
119
+ - spec/field_spec.rb
120
+ - spec/gff_spec.rb
121
+ - spec/json_spec.rb
122
+ - spec/key_spec.rb
123
+ - spec/kivinen_expect.rb
124
+ - spec/kivinen_spec.rb
125
+ - spec/rcov.opts
126
+ - spec/res_spec.rb
127
+ - spec/spec.opts
128
+ - spec/spec_helper.rb
129
+ - spec/struct_data_type_version_spec.rb
130
+ - spec/struct_spec.rb
131
+ - spec/tlk_spec.rb
132
+ - spec/twoda_spec.rb
133
+ - spec/wellformed_gff.bic
134
+ has_rdoc:
data/CHANGELOG DELETED
@@ -1,354 +0,0 @@
1
- === 0.1
2
- Bernhard Stoeckner <elven@swordcoast.net> (15):
3
- Add proper struct support, fix some values
4
- Suspected to be fully-working Gff::Reader
5
- Add working rudimentary Gff::Writer
6
- Add substruct support
7
- Add untested support for complex datatypes
8
- add gff_to_yaml.rb
9
- Add COPYING, LICENCE, README, Rakefile, spec/
10
- Update README
11
- add nwn-gff-print.rb binary, update gff lib
12
- rename nwn-gff-print.rb to nwn-gff-print
13
- nwn-gff-print: allow proper printing of sub-structs/lists
14
- Add proper get/set support for Gff, add Element validations
15
- Rakefile/gem: add nwn-gff-print to binary list
16
- Rename project to nwn-lib
17
- Fix Writer method scope
18
-
19
- === 0.2
20
- Bernhard Stoeckner <elven@swordcoast.net> (6):
21
- Fix stupid typo in Rakefile
22
- Add a basic 2da parser
23
- twoda: Read windows-linebreaks as well.
24
- Twoda: add .to_2da
25
- nwn-gff-print/Gff: kivinen_format is now a member of the Gff module and supports printing types
26
- 0.2-rel, add CHANGELOG
27
-
28
- === 0.2.1
29
- Bernhard Stoeckner <elven@swordcoast.net> (6):
30
- TwoDA: Update API for new schema
31
- Gff: minor documentation update
32
- Gff/kivinen_print: be more compatible
33
- Gff/kivinen_format: add filetype-override for custom headers, add documentation
34
- Add cheatsheet
35
- Version 0.2.1-rel
36
-
37
- === 0.3.0
38
- Bernhard Stoeckner <elven@swordcoast.net> (16):
39
- Gff::Reader: Fix reading structs with no subvalues
40
- Gff::Reader: void datatype support
41
- add nwn-gff-irb
42
- Gff: raise RuntimeError instead of generic Exceptions
43
- Update CHEATSHEET for gff-irb
44
- 0.2.2-rel
45
- TwoDA: Do not parse empty lines
46
- Add global, optional, 2da cache, add NWN::Gff.item_property helper
47
- item_property: resolve unique partial matches
48
- CExoLocString: more comfortable class to manage (API change)
49
- compatibility fixes: allow non-empty-line-2das, be slightly more verbose
50
- Gff::Struct is a delegator to Hash to allow seamless YAML marshalling
51
- nwn-gff-print: -m: add support for native ruby marshalling
52
- Binary: add nwn-gff-import
53
- TwoDA: compatibility fixes (just warn on double ID assignments)
54
- 0.3.0-rel
55
-
56
- === 0.3.1
57
- Bernhard Stoeckner <elven@swordcoast.net> (2):
58
- Gff: fix struct delegator bug not passing on blocks (yuk!)
59
- 0.3.1-rel
60
-
61
- === 0.3.2
62
- Bernhard Stoeckner <elven@swordcoast.net> (3):
63
- Add NWN::Gff::Struct#set for easy label setting
64
- Gff: fix reading some type fields raising an exception in rare conditions
65
- 0.3.2-rel
66
-
67
- === 0.3.3
68
- Bernhard Stoeckner <elven@swordcoast.net> (8):
69
- Gff#get_or_set: fix addressing exolocstr languages (/Description/0)
70
- Helpers.item_property: ? expands the full list
71
- fix private method `select' called while accessing ExoLocStr/Language
72
- add support for sorted and cleaned-up yaml output
73
- writer: void written properly
74
- nwn-gff-print: add support for multiple files
75
- nwn-gff-import: add support for multiple files
76
- 0.3.3-rel
77
-
78
- === 0.3.4
79
- Bernhard Stoeckner <elven@swordcoast.net> (7):
80
- nwn-gff-print: -y outputs sorted hash maps
81
- nwn-gff-print: fix --verbose switch
82
- type :cexolocstr: do not lose empty lang ids
83
- README: add encoding warning
84
- struct to yaml: inline small structs
85
- CHEATSHEET: add some hints for nwn-gff-import
86
- 0.3.4-rel
87
-
88
- === 0.3.5
89
- Bernhard Stoeckner <elven@swordcoast.net> (6):
90
- NWN::Gff::Gff.get_or_set: remove stray debug puts
91
- add option for fp precision to Gff::Reader, add cli opt to nwn-gff-print
92
- nwn-gff-print: minor speedup when dumping to yaml without prefixes
93
- doc: update BINARIES, CHEATSHEET
94
- nwn-gff-import: fix reading stdin as -
95
- 0.3.5-rel
96
-
97
- === 0.3.6
98
- Bernhard Stoeckner <elven@swordcoast.net> (5):
99
- NWN::Gff::Struct: do not sort yaml_properties
100
- kivinen_format: print out structs in sorted order
101
- nwn-gff-irb: support for reading/writing .yml files
102
- NWN::Gff::Gff: do not sort yaml_properties
103
- Rakefile: use gem1.8 instead of gem
104
- 0.3.6-rel
105
-
106
- Stuart Coyle <stuart.coyle@gmail.com> (1):
107
- TwoDA: use four spaces for field separation instead of tabs, indent columns
108
-
109
- === 0.4.0
110
- Bernhard Stoeckner <elven@swordcoast.net>:
111
- too many to sanely list, see README for migration information
112
-
113
- === 0.4.1
114
- Bernhard Stoeckner <elven@swordcoast.net> (3):
115
- Field#field_value=: unbreak setting a new value
116
- Scripting: add rudimentary ask method
117
- scripts/clean_locstrs.rb: optimise a bit
118
- 0.4.1-rel
119
-
120
- === 0.4.2
121
- Bernhard Stoeckner <elven@swordcoast.net> (10):
122
- scripts/fix_facings.rb: removed, results in corruption
123
- bin/nwn-dsl: cleanup exception handling
124
- TwoDA::Table: add support for non-windows newlines
125
- TwoDA::Table: quote cells with whitespaces
126
- TwoDA::Table: a more robust parser handling slightly malformed 2da files
127
- scripts: add reformat_2da for validating and prettyprinting 2da files
128
- Tlk: basic talktable reading
129
- scripts: add a debug script
130
- add *.itp to GuessFormats
131
- Tlk: basic talktable editing and writing
132
- 0.4.2-rel
133
-
134
- === 0.4.3
135
- Bernhard Stoeckner <elven@swordcoast.net> (2):
136
- NWN::Erf: basic reading/writing library + tar-like binary
137
- add tlk.rb to nwn/all.rb
138
- 0.4.3-rel
139
-
140
- === 0.4.4
141
- Bernhard Stoeckner (7):
142
- bin/nwn-gff: guess outfile format based on extension
143
- erf: do not fail on misaligned strings, print warning instead
144
- bin/nwn-erf: compat mode with tar, options can be without dashes
145
- API: Add some helpers for creating Gff elements
146
- scripting: satisfy: return object as-is when no conditions are given
147
- bin/nwn-erf: -vt: move column type before filename
148
- erf: fix loctable reading breaking on more than one locstr
149
- 0.4.4-rel
150
-
151
- === 0.4.5
152
- Bernhard Stoeckner (14):
153
- bin/nwn-irb: fix help scriptname
154
- nwn-dsl: $SCRIPT is the currently-running script
155
- TwoDA: add .get alias
156
- Scripting/log: provide #progress to indicate progress within scripts
157
- guess_file_name: consider non-lowercase extensions
158
- nwn-gff: $SCRIPT fix
159
- nwn-irb: include NWN namespace
160
- Namespace clobbering: Integer provides xp_to_level, level_to_xp
161
- Gff::Struct: add #to_s
162
- scripting: satisfy: return object as-is when no conditions are given (fix)
163
- Scripting: add support to .#save files that were loaded with satisfy/need/want
164
- Scripting: ask: fix return value of hash and arrays
165
- TwoDA: add disclaimer for Cache references
166
- TwoDA: add Table#[], Table#[]=
167
- 0.4.5-rel
168
-
169
- === 0.4.6
170
- Bernhard Stoeckner <elven@swordcoast.net> (26):
171
- bin/nwn-dsl: always print backtraces
172
- tests: add rspec stub for later test introduction
173
- Field: complete valid_for?, add checks in readers, add rspec
174
- Field: #path prints proper list indices
175
- ResourceManager: generic implementation as per bioware docs
176
- TwoDA: read 2da header with arbitary spaces between magic and version
177
- TwoDA: make id mismatch parsing more robust
178
- TwoDA: nwn does not fill in missing row IDs
179
- TwoDA: fix typo preventing #to_2da with NWN_LIB_2DA_NEWLINE absent
180
- TwoDA: only print to $stderr when -d/$DEBUG is set
181
- TwoDA: do not raise error on misshaped ID column, add documentation
182
- TwoDA: do not compact multiple nonquoted cells in last column
183
- TwoDA: add specs
184
- Erf: skip over lid and strz to read locstrs correctly
185
- Erf: seek to offsets instead of depending on constants, handle IOErrors
186
- Erf: add specs
187
- Tlk: fix reading last strref in a tlk
188
- Tlk: add specs
189
- Cexolocstr: add specs
190
- Struct: .new accepts a block
191
- Struct: add specs
192
- Gff: add specs
193
- feature kill: remove type/value inferring, NWN_LIB_INFER_*
194
- Revert "add env setting NWN_LIB_FILTER_EMPTY_EXOLOCSTR"
195
- Rakefile/rdoc: use mislav-hanna if available
196
- update all documentation to reflect current situation
197
- 0.4.6-rel
198
-
199
- This release changes a few features; most prominent of all is the
200
- infer mechanism - it is removed completely for sanity reasons.
201
-
202
- Also, quite a few bugfixes found their way into this release, thanks
203
- to the newly-added specs.
204
-
205
- Please browse the commit log for a full list of changes.
206
-
207
- === 0.4.7
208
- Bernhard Stoeckner <elven@swordcoast.net> (25):
209
- bin/*: do not require rubygems explicitly
210
- remove obsolete Gff::Helpers module
211
- Erf: add support for ERF V1.1
212
- env var NWN_LIB_DEBUG sends debug messages to stderr when set
213
- add support for Microsoft Windows
214
- R::ContentObject: do not fail on missing io, seek properly
215
- R::ContentObject#filename: "unknown-N" instead of nil for unknown res_types
216
- R::ContentObject: properly raise ENOENT on invalid io and file
217
- G::Reader, Writer: work on io objects instead of strings
218
- G::Writer: fix struct verify exception on reading substructs
219
- specs: move all test stubs into _helper
220
- Erf: improve broken locstr header handling
221
- Erf: raise errors for invalid filenames on add, add_file
222
- Erf: fix misaligned offsets in reslist
223
- nwn-erf: fix parsing erf files where day_of_year = 0
224
- nwn-erf: output non-errors to stdout instead of stderr
225
- nwn-erf: fix packing up files
226
- nwn-erf: add specs
227
- Erf: reproduction spec checks for binary equality with sample
228
- Gff: add specs for each_by_flat_path, to_gff
229
- nwn-gff: fix backup strategy handler missing FileUtils
230
- nwn-gff: add specs
231
- rename spec/wellformed_gff.binary to .bic
232
- nwn-dsl: add specs
233
- 0.4.7-rel
234
-
235
- A real bugfix-release, this takes care of a whole swad of fixes
236
- in erf and gff handling, and also improves Windows compatibility.
237
-
238
- Particularily, erf writing was kind of broken in the previous release,
239
- putting wrong offsets for files created with nwn-erf.
240
-
241
- Please browse the commit log for a full list of changes.
242
-
243
- === 0.4.8
244
- Bernhard Stoeckner <elven@swordcoast.net> (6):
245
- IO: add special e_read call to wrap size checks with custom exception msgs
246
- NWN.setting: generic setting get/set mechanism
247
- NWN.log_debug: messages always print unless explicitly turned off
248
- Field :resref validate: warn when too long and not explicitly turned off
249
- nwn-gff: fix reading from stdin throwing an exception
250
- 0.4.8-rel
251
-
252
- Another bugfix and compatibility release. This adds real NWN2 support
253
- to gff reading, adds a few new SETTINGS, and adds proper IO reading.
254
-
255
- === 0.4.9
256
- Bernhard Stoeckner <elven@swordcoast.net> (10):
257
- Gff::Reader/YAML: do not taint read objects
258
- Scripting: satisfy win32 compatibility
259
- nwn-irb: work on IO object instead of string
260
- nwn-erf: fix typo in -h: -1 saying ERF 1.0 instead of ERF 1.1
261
- Scripting: satisfy: close opened fds after loading GFF data
262
- api.rb: merge into field.rb and struct.rb
263
- Gff::Struct#by_path: print list index in current_path on error
264
- Gff::Struct#by_path: / alias, $ and % mods, substruct & locname paths
265
- TwoDA::Table: fix always printing errors for invalid IDs on table reading
266
- Update documentation, add HOWTO
267
- 0.4.9-rel
268
-
269
- Some medium rare bugfixes, and a overloaded operator for GFF structs,
270
- which can be used to comfortable walk on trees.
271
-
272
- === 0.4.10
273
- Bernhard Stoeckner <elven@swordcoast.net> (23):
274
- bin/nwn-erf: exit(1) on errors
275
- bin/nwn-erf: support extracting parts of archive with -x
276
- Erf::Erf: set correct internal year on initialize
277
- bin/nwn-gff: fix reading gff data from stdin
278
- Gff::Field: transform type to symbols on extend
279
- Gff::Struct#path: return full data type by walking the tree on the fly
280
- Gff: add :pretty format that prettyprints
281
- Gff::Struct, Gff::Field: add generic box/unbox methods
282
- Gff: JSON support
283
- new ENV NWN_LIB_IN_ENCODING specifies nwn-gff encoding
284
- :pretty-print boxes before printing
285
- Gff: JSON support adheres NWN_LIB_PRETTY_JSON env var
286
- Kivinen-format: refactor into Marshal load/dump interface
287
- Res/ContentObject: minor internal cleanups
288
- Gff::Reader: do not compact exolocstrs on read-in
289
- YAML/JSON support: fix spec, add dep, fix files to not clash with gem names
290
- Rakefile: spec support for >= 1.1.9
291
- NWN::Key: .key, .bif reading support
292
- Resources::DirectoryContainer: do not fail on invalid files in directory
293
- documentation updates
294
- bin/nwn-erf: do not set description str_ref to 0x0
295
- NWN::Gff: refactor API to properly partition different file format handlers
296
- 0.4.10-rel
297
-
298
- A swath of bugfixes, JSON read/write, and finally .key and .bif reading support.
299
- Also, Resources::Manager got some documentation and a few touches here and there,
300
- as did bin/nwn-erf, which supports partial extraction now.
301
- For our non-ASCII users, there is a ENV variable that can be used to specify the
302
- encoding in which local GFF data is supposed to be in.
303
-
304
- === 0.4.10.1
305
- Bernhard Stoeckner <elven@swordcoast.net> (2):
306
- JSON support: remove hard dep from Rakefile, load if available
307
- Rakefile release target: use new rubyforge binary version API
308
- 0.4.10.1-rel
309
-
310
- Late night Rakefile fun.
311
-
312
- === 0.4.11
313
- Bernhard Stoeckner <elven@swordcoast.net> (7):
314
- Gff::Struct.add_*: support default values for new fields
315
- Gff::YAML: fix setting proper .element for direct child-structs
316
- specs: run without debug logs, un-breaks bin/* specs
317
- Field.unbox! always takes parent parameter
318
- Gff::Struct: API chg, path w/o data_type, data_type changes
319
- Gff::JSON: specs
320
- Gff::Kivinen: rename kivinen_format -> format, add spec
321
- 0.4.11-rel
322
-
323
- A mostly-maintenance release with some API changes. The most invasive changes
324
- are some method renames. New are some sane default values for Struct#add_*,
325
- and a few more specs. YAML now sets correct .element references.
326
-
327
- === 0.4.12
328
- Bernhard Stoeckner (18):
329
- Gff read/write API: documentation, Handler#dump always returns bytes written
330
- Settings: iconv: refactor into methods
331
- data_type_spec: refactor to be more concise
332
- Gff::Struct#data_type=: only emit debug message when new type is non-nil
333
- Gff::Handler::JSON: emit terminating newline regardless of :pretty_json
334
- JSON: infer data_version like yaml, omit if DEFAULT
335
- Gff: error if registering format of same name twice, reverse FileFormatRX hash
336
- Gff::Struct: reparenting struct emits debug message only if element != nil
337
- Gff::Reader: allow reading of arbitary Gff version files
338
- Gff::Struct: data_version allow more freedom in inferring, update spec
339
- NWN::Gff: custom xml data format, nwntools.sf.net modpacker read/write support
340
- Rakefile: spec output in spec-style format
341
- Rakefile: remove obsolete rubyforge target
342
- bin/nwn-gff: --out-encoding specified output encoding
343
- NWN.setting: return default values for setting new values too
344
- spec_helper: set $options to unbreak kivinen spec
345
- NWN.log_debug: non-lib frame if available, :debug_trace prints full traces
346
- Gff::Field: fix data ranges for int64, dword64
347
- 0.4.12-rel
348
-
349
- A few new features and some bugfixes this release:
350
- - more concise yaml dumps (but backwards-compatible)
351
- - some iconv fixes
352
- - dword64 and int64 data ranges now correct
353
- - support for parsing/dumping modpacker XML
354
- - support for parsing/dumping a custom, cleaner XML format