flay 2.9.0 → 2.10.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 28083167bd112a4147a69347db6f5c042a84239d
4
- data.tar.gz: 4accae6b53cba132a340a5a73b7a6f6af6432e59
3
+ metadata.gz: 73416b286d8de1583c4861f2da639893f0012111
4
+ data.tar.gz: 31671f4f0671c63d9432e3651d850796aacbbce3
5
5
  SHA512:
6
- metadata.gz: 799ea470eb54add44f91ae4ac3d6675d8669b8a6a2168505a14ab3951b01ec85576bdcdb7b843edf67584bf7c0b866c3da7bfced294190265873a76cadce4fc8
7
- data.tar.gz: 796f1127245836476b4d5214883cae08cbcb6e895bea2ed86cabdd4840657de85935ecd260cd503e98bf96f44facccb30666edb06d39702524a90057cf083f8d
6
+ metadata.gz: a6574f751315f6d8da0857c7b13d0e0ba4becfbece092e86b310c9a393f0f801700a1a4a3904a0afdaca967bb618187569eecad6ec7a8bd01574748dbee7f09e
7
+ data.tar.gz: 161a7012a55cf51110f7d535f768f8d1e5ab7eba061ec5fce660cb6595ac67751ad58cb15b4200e62a214e0022d550ada00d52352a805fece333bd4061add125
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,9 @@
1
+ === 2.10.0 / 2017-07-17
2
+
3
+ * 1 minor enhancement:
4
+
5
+ * Added sexp tree filtering via :filters option.
6
+
1
7
  === 2.9.0 / 2017-04-13
2
8
 
3
9
  * 1 minor enhancement:
@@ -16,7 +16,7 @@ class File
16
16
  end
17
17
 
18
18
  class Flay
19
- VERSION = "2.9.0" # :nodoc:
19
+ VERSION = "2.10.0" # :nodoc:
20
20
 
21
21
  class Item < Struct.new(:structural_hash, :name, :bonus, :mass, :locations)
22
22
  alias identical? bonus
@@ -327,18 +327,39 @@ class Flay
327
327
  end
328
328
  end
329
329
 
330
+ ##
331
+ # Given an array of sexp patterns (see sexp_processor), delete any
332
+ # buckets whose members match any of the patterns.
333
+
334
+ def filter *patterns
335
+ return if patterns.empty?
336
+
337
+ self.hashes.delete_if { |_, sexps|
338
+ sexps.any? { |sexp|
339
+ patterns.any? { |pattern|
340
+ pattern =~ sexp
341
+ }
342
+ }
343
+ }
344
+ end
345
+
330
346
  ##
331
347
  # Prunes nodes that aren't relevant to analysis or are already
332
- # covered by another node.
348
+ # covered by another node. Also deletes nodes based on the
349
+ # +:filters+ option.
333
350
 
334
351
  def prune
335
352
  # prune trees that aren't duped at all, or are too small
336
353
  self.hashes.delete_if { |_,nodes| nodes.size == 1 }
337
354
  self.hashes.delete_if { |_,nodes| nodes.all?(&:modified?) }
338
355
 
339
- return prune_liberally if option[:liberal]
356
+ if option[:liberal] then
357
+ prune_liberally
358
+ else
359
+ prune_conservatively
360
+ end
340
361
 
341
- prune_conservatively
362
+ self.filter(*option[:filters])
342
363
  end
343
364
 
344
365
  ##
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flay
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.0
4
+ version: 2.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
@@ -30,7 +30,7 @@ cert_chain:
30
30
  E4oJcnPkJAr0rw504JGtlZtONZQblwmRJOIdXzolaE3NRGUzGVOUSptZppAKiavY
31
31
  fO6tdKQc/5RfA8oQEkg8hrxA5PQSz4TOFJGLpFvIapEk6tMruQ0bHgkhr9auXg==
32
32
  -----END CERTIFICATE-----
33
- date: 2017-04-14 00:00:00.000000000 Z
33
+ date: 2017-07-17 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: sexp_processor
metadata.gz.sig CHANGED
Binary file