Loading pkgs/games/dwarf-fortress/df.lock.json +13 −13 Original line number Diff line number Diff line { "game": { "latest": { "linux": "51.10", "linux": "51.11", "darwin": "0.47.05" }, "versions": { "51.10": { "51.11": { "df": { "version": "51.10", "version": "51.11", "urls": { "linux": { "url": "https://www.bay12games.com/dwarves/df_51_10_linux.tar.bz2", "outputHash": "sha256-r4dadc/nch2smNHt4Ixa2FG2Sc1NFmY88iSnFFeMcz0=" "url": "https://www.bay12games.com/dwarves/df_51_11_linux.tar.bz2", "outputHash": "sha256-51cwIFMm5cwSaXjjhpz4pS3D8B5/Mt5+k1ALu1F+JWc=" } } }, "hack": { "version": "51.10-r1", "version": "51.11-r1.2", "git": { "url": "https://github.com/DFHack/dfhack.git", "revision": "51.10-r1", "outputHash": "sha256-TsgafCiLX/IZXgBdqQaRt7hmATwKz80x2xclCwdE3fM=" "revision": "51.11-r1.2", "outputHash": "sha256-x8zY8IGDhnyoeNz24Mt00o+2XLzSHZG165MXQHXW+YA=" }, "xmlRev": "ec3ab067aef716817d9c5b84a6fb85bc22516caa" "xmlRev": "6502bdefd1796315365a7bb58e30e0ce34359bea" } }, "50.15": { Loading Loading @@ -96,12 +96,12 @@ } }, "therapist": { "version": "42.1.12", "maxDfVersion": "51.10", "version": "42.1.13", "maxDfVersion": "51.11", "git": { "url": "https://github.com/Dwarf-Therapist/Dwarf-Therapist.git", "revision": "v42.1.12", "outputHash": "sha256-/6tiFjfrAziw7XeEzPoNFgrsXk8Z7ea2PGjCvJlRt+A=" "revision": "v42.1.13", "outputHash": "sha256-y/kUur/BTArznrEzw54FZBrxnD2KXHcwfrHE4WvoemA=" } } } pkgs/games/dwarf-fortress/update.rb +24 −8 Original line number Diff line number Diff line Loading @@ -60,17 +60,17 @@ module Mergeable self.members.each do |member| if @@expensive && @@expensive.include?(member) # Already computed hash[member] = self[member] elsif self[member] && self[member].is_a?(Mergeable) hash[member] = other[member] || self.send(member) elsif self.send(member) && self.send(member).is_a?(Mergeable) # Merge it hash[member] = self[member].merge(other[member]) elsif self[member] && self[member].is_a?(Hash) hash[member] = Hash[other[member].map { [_1, self[member][_1] && self[member][_1].is_a?(Mergeable) ? self[member][_1].merge(_2) : _2] hash[member] = self.send(member).merge(other.send(member)) elsif self.send(member) && self.send(member).is_a?(Hash) hash[member] = Hash[other.send(member).map { [_1, self.send(member)[_1] && self.send(member)[_1].is_a?(Mergeable) ? self.send(member)[_1].merge(_2) : _2] }] else # Compute it hash[member] = other[member] hash[member] = other.send(member) end end self.class.new(**hash) Loading @@ -82,6 +82,18 @@ module Mergeable attrs.each {@@expensive << _1} self end # Materializes this object. def materialize! self.members.each do |name| member = self.send(name) if member.respond_to?(:materialize!) member.materialize! end self[name] = member end self end end module Versionable Loading Loading @@ -417,6 +429,9 @@ class DFWithHackVersions < Struct.new(:latest, :versions, keyword_init: true) self.versions[df_version.version] = DFWithHackVersion.new(df: df_version, hack: latest_dfhack_version) end end self.materialize! self end # Converts a hash to a DFWithHackVersions. Loading Loading @@ -488,7 +503,8 @@ class Therapist < Struct.new(:version, :max_df_version, :git, keyword_init: true latest = self.class.latest self.version = latest.version self.max_df_version = latest.max_df_version self.git = nil self.git = latest.git self.materialize! self end Loading Loading
pkgs/games/dwarf-fortress/df.lock.json +13 −13 Original line number Diff line number Diff line { "game": { "latest": { "linux": "51.10", "linux": "51.11", "darwin": "0.47.05" }, "versions": { "51.10": { "51.11": { "df": { "version": "51.10", "version": "51.11", "urls": { "linux": { "url": "https://www.bay12games.com/dwarves/df_51_10_linux.tar.bz2", "outputHash": "sha256-r4dadc/nch2smNHt4Ixa2FG2Sc1NFmY88iSnFFeMcz0=" "url": "https://www.bay12games.com/dwarves/df_51_11_linux.tar.bz2", "outputHash": "sha256-51cwIFMm5cwSaXjjhpz4pS3D8B5/Mt5+k1ALu1F+JWc=" } } }, "hack": { "version": "51.10-r1", "version": "51.11-r1.2", "git": { "url": "https://github.com/DFHack/dfhack.git", "revision": "51.10-r1", "outputHash": "sha256-TsgafCiLX/IZXgBdqQaRt7hmATwKz80x2xclCwdE3fM=" "revision": "51.11-r1.2", "outputHash": "sha256-x8zY8IGDhnyoeNz24Mt00o+2XLzSHZG165MXQHXW+YA=" }, "xmlRev": "ec3ab067aef716817d9c5b84a6fb85bc22516caa" "xmlRev": "6502bdefd1796315365a7bb58e30e0ce34359bea" } }, "50.15": { Loading Loading @@ -96,12 +96,12 @@ } }, "therapist": { "version": "42.1.12", "maxDfVersion": "51.10", "version": "42.1.13", "maxDfVersion": "51.11", "git": { "url": "https://github.com/Dwarf-Therapist/Dwarf-Therapist.git", "revision": "v42.1.12", "outputHash": "sha256-/6tiFjfrAziw7XeEzPoNFgrsXk8Z7ea2PGjCvJlRt+A=" "revision": "v42.1.13", "outputHash": "sha256-y/kUur/BTArznrEzw54FZBrxnD2KXHcwfrHE4WvoemA=" } } }
pkgs/games/dwarf-fortress/update.rb +24 −8 Original line number Diff line number Diff line Loading @@ -60,17 +60,17 @@ module Mergeable self.members.each do |member| if @@expensive && @@expensive.include?(member) # Already computed hash[member] = self[member] elsif self[member] && self[member].is_a?(Mergeable) hash[member] = other[member] || self.send(member) elsif self.send(member) && self.send(member).is_a?(Mergeable) # Merge it hash[member] = self[member].merge(other[member]) elsif self[member] && self[member].is_a?(Hash) hash[member] = Hash[other[member].map { [_1, self[member][_1] && self[member][_1].is_a?(Mergeable) ? self[member][_1].merge(_2) : _2] hash[member] = self.send(member).merge(other.send(member)) elsif self.send(member) && self.send(member).is_a?(Hash) hash[member] = Hash[other.send(member).map { [_1, self.send(member)[_1] && self.send(member)[_1].is_a?(Mergeable) ? self.send(member)[_1].merge(_2) : _2] }] else # Compute it hash[member] = other[member] hash[member] = other.send(member) end end self.class.new(**hash) Loading @@ -82,6 +82,18 @@ module Mergeable attrs.each {@@expensive << _1} self end # Materializes this object. def materialize! self.members.each do |name| member = self.send(name) if member.respond_to?(:materialize!) member.materialize! end self[name] = member end self end end module Versionable Loading Loading @@ -417,6 +429,9 @@ class DFWithHackVersions < Struct.new(:latest, :versions, keyword_init: true) self.versions[df_version.version] = DFWithHackVersion.new(df: df_version, hack: latest_dfhack_version) end end self.materialize! self end # Converts a hash to a DFWithHackVersions. Loading Loading @@ -488,7 +503,8 @@ class Therapist < Struct.new(:version, :max_df_version, :git, keyword_init: true latest = self.class.latest self.version = latest.version self.max_df_version = latest.max_df_version self.git = nil self.git = latest.git self.materialize! self end Loading