setfu 3.0.0 → 3.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 52a5ee49e433abe5779edcd424ced5261ef25303
4
- data.tar.gz: e0e811d20322da32ee9d0fcf69d9ed81e440558a
3
+ metadata.gz: 20de7e408d7b32f92cb46c72fb9aaaa5b3ecb21b
4
+ data.tar.gz: 0b3d9d1b0fd55b4251498ec87b2187e6236e1587
5
5
  SHA512:
6
- metadata.gz: 8ff1c1665c1761bcf7c8a30a4c631a4a1416d475487966f24d7037c81af0cc8fcf11cb41b722cd28873d7baaaef4a2cf8c137a2f4ee4f4b63def78f802aefa82
7
- data.tar.gz: 99e06bd8f3cf88c6440ceea3f36cc77cbd4c4bf374c4faedeb5fef8d6be7b4d610053e35d34efac8aba3ba16d80a84e407b014891792d8f4dddc6f34029e4845
6
+ metadata.gz: 4f22cc1c2ebe5ccc90043b716e6737606b758fefa3fcb5204e61cd7a0eca28413b0a71d9dd99ed9c2ba023e15bba19f1ae0e26238aeacbedc2d502e64718453e
7
+ data.tar.gz: fa7fcfb09c6916c30e32c400af291c0f9cf92e2b4614e044436d48128c427f7f127025a69d9cd6f8ffde9c98517b62a1c7945e1ae81442e7a33a6420b93fbe14
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Setfu
2
2
 
3
- ##Purpose: Creates a BitSet class with methods that allow you to construct and opperate on
3
+ ##Purpose
4
+
5
+ Creates a BitSet class with methods that allow you to construct and opperate on
4
6
  set instances. A 'Bignum' instance is used internally to store each element
5
7
  of the set. This allows very fast operations when comparing two set instances.
6
8
  Member elements can be represented as positive small integers, or characters.
@@ -593,15 +595,69 @@ x === "Fred" # false , "Fred" is not a superset of x
593
595
  x === "Fred" | x # true
594
596
  ```
595
597
 
598
+ A powerful use of the BitSet object is within the context of a case statement.
599
+ Normally, case statements test for equality and use the `===` operator for each `when` clause.
600
+ The BitSet class overloads the `===` operator, and adds new behavior by means of the #set_case method.
601
+ This is best illustrated by example as follows:
602
+
603
+ ```ruby
604
+ Upper = BitSet.new.add_uppercase_chars
605
+ Lower = BitSet.new.add_lowercase_chars
606
+ Digits = ('0'..'9').to_bset
607
+ Identifier = Upper | Lower | Digits
608
+
609
+ def string_test(test)
610
+ case test.to_bset.set_case(:mode_sub)
611
+ when Digits
612
+ puts "Number"
613
+ when Upper
614
+ puts "Upper"
615
+ when Lower
616
+ puts "Lower"
617
+ when Identifier
618
+ case test[0].to_bset.set_case(:mode_intersection)
619
+ when Digits
620
+ puts "Illegal Identifier"
621
+ when Lower
622
+ puts "Identifier"
623
+ when Upper
624
+ puts "Constant Identifier"
625
+ end
626
+ else
627
+ puts "???"
628
+ end
629
+ end
630
+
631
+ string_test("Const") # Constant Identifier
632
+ string_test("nice1") # Identifier
633
+ string_test("nice") # Lower
634
+ string_test("BIG") # Upper
635
+ string_test("123") # Number
636
+ string_test("8oops") # Illegal Identifier
637
+ string_test("5 5 5") # ???
638
+ ```
639
+
640
+ From the above, we see that the first-level case compares using `:mode_sub` and the second-level case statement uses an intersection test.
641
+ An equality test in this context would be useless.
642
+ An interesting behavior of the `===` operator when applied to case statements is the first opperand applies to the `when` clause,
643
+ while the last opperand applies to the case clause. This necessitates a right-to-left association when `===` is used by itself.
644
+ The intent is to target the behavior of the case statement. The `#set_case` attribute can be applied to the first or last opperand or both;
645
+ the right opperand takes precedence however.
646
+
596
647
  ## Revision History
597
648
 
649
+ ### Version 3.0.1
650
+
651
+ * updated @@TRANS_HASH to include missing translation: (422,640)
652
+ * updated this document
653
+
598
654
  ### Version 3.0.0
599
655
 
600
656
  * added tuple processing
601
657
  * added BitSet.fill construction method
602
658
  * updated utf methods
603
659
  * fixed range bugs
604
- * includes gems: primitive_wrapper, pred, betterobject, yieldhelper
660
+ * includes gems: primitive_wrapper, pred, betterobject, yieldhelper
605
661
 
606
662
  ### Older Versions
607
663
  See `bdlsys.com/gems/setfu` to get older documents.
data/lib/setfu/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Setfu
2
- VERSION = "3.0.0"
2
+ VERSION = "3.0.1"
3
3
  end
data/lib/setfu.rb CHANGED
@@ -1263,7 +1263,7 @@ class BitSet
1263
1263
  375=>374, 376=>255, 377=>378, 378=>377, 379=>380, 380=>379, 381=>382, 382=>381, 384=>579, 385=>595, 386=>387,
1264
1264
  387=>386, 388=>389, 389=>388, 390=>596, 391=>392, 392=>391, 393=>598, 394=>599, 395=>396, 396=>395, 398=>477,
1265
1265
  399=>601, 400=>603, 401=>402, 402=>401, 403=>608, 404=>611, 405=>502, 406=>617, 407=>616, 408=>409, 409=>408,
1266
- 410=>573, 412=>623, 413=>626, 414=>544, 415=>629, 416=>417, 417=>416, 418=>419, 419=>418, 420=>421, 421=>420,
1266
+ 410=>573, 412=>623, 413=>626, 414=>544, 415=>629, 416=>417, 417=>416, 418=>419, 419=>418, 420=>421, 421=>420, 422=>640,
1267
1267
  423=>424, 424=>423, 425=>643, 428=>429, 429=>428, 430=>648, 431=>432, 432=>431, 433=>650, 434=>651, 435=>436,
1268
1268
  436=>435, 437=>438, 438=>437, 439=>658, 440=>441, 441=>440, 444=>445, 445=>444, 447=>503, 452=>454, 454=>452, 455=>457, 457=>455, 458=>460, 460=>458, 461=>462, 462=>461,
1269
1269
  463=>464, 464=>463, 465=>466, 466=>465, 467=>468, 468=>467, 469=>470, 470=>469, 471=>472, 472=>471, 473=>474,
@@ -1278,7 +1278,7 @@ class BitSet
1278
1278
  573=>410, 574=>11366, 575=>11390, 576=>11391, 577=>578, 578=>577, 579=>384, 580=>649, 581=>652, 582=>583, 583=>582,
1279
1279
  584=>585, 585=>584, 586=>587, 587=>586, 588=>589, 589=>588, 590=>591, 591=>590, 592=>11375, 593=>11373, 594=>11376,
1280
1280
  595=>385, 596=>390, 598=>393, 599=>394, 601=>399, 603=>400, 608=>403, 611=>404, 616=>407, 617=>406, 623=>412, 626=>413,
1281
- 629=>415, 643=>425, 648=>430, 649=>580, 650=>433, 651=>434, 652=>581, 658=>439, 913=>945, 914=>946, 915=>947, 916=>948,
1281
+ 629=>415, 640=>422, 643=>425, 648=>430, 649=>580, 650=>433, 651=>434, 652=>581, 658=>439, 913=>945, 914=>946, 915=>947, 916=>948,
1282
1282
  917=>949, 918=>950, 919=>951, 920=>952, 921=>953, 922=>954, 923=>955, 924=>956, 925=>957, 926=>958, 927=>959, 928=>960,
1283
1283
  929=>961, 931=>963, 932=>964, 933=>965, 934=>966, 935=>967, 936=>968, 937=>969, 945=>913, 946=>914, 947=>915, 948=>916,
1284
1284
  949=>917, 950=>918, 951=>919, 952=>920, 953=>921, 954=>922, 955=>923, 956=>924, 957=>925, 958=>926, 959=>927, 960=>928,
@@ -1374,6 +1374,9 @@ end
1374
1374
  # now the stuff that slows down the editor ... so last goes here
1375
1375
  class BitSet
1376
1376
 
1377
+ ### SETFU 'ɶ' uppercase or lowercase ??? I have this as lowercase, but I could be wrong ...
1378
+ ### leave in lowercase_dual until you get difinitive answer
1379
+
1377
1380
  UTF_UPPER_CASE_CHARS = "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝÞðĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸŹŻŽƁƂƄƆƇƉƊƋƎƏƐƑƓƔƖƗƘƜƝƟƠƢƤƦƧƩƬƮƯƱƲƳƵƷƸƼǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮǴǶǷǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺȻȽȾɁɃɄɅɆɈɊɌɎΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩⱭⱯⱰⱾⱿfl"
1378
1381
  UTF_LOWER_CASE_CHARS = "Ðàáâãäåçèéêëìíîïñòóôõöøùúûüýþÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįĵķĺļľŀłńņňŋōŏőŕŗřśŝşšţťŧũūŭůűųŵŷźżžƀƃƅƈƌƒƕƙƚƞơƥƨƭưƴƶƹƽƿǎǐǒǔǖǘǚǜǝǟǡǥǧǩǫǭǯǵǹǻǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȥȧȩȫȭȯȱȳȼȿɀɂɇɉɋɍɏɐɑɒɓɔɖɗəɛɠɣɨɩɯɲɵʀʃʈʉʊʋʌʒαβγδεζηθικλμνξοπρςστυφχψωⱥⱦfi"
1379
1382
  UTF_LOWER_CASE_DUAL_CHARS = "ȸȹijnjdždzʣʥæǣǽƣœœɶʦljʪʫijȣ"
data/setfu.gemspec CHANGED
@@ -16,7 +16,6 @@ Member elements can be represented as positive small integers, or characters.
16
16
  Sets can be constructed with integers, strings, characters, ranges, and arrays.
17
17
  When characters are used, the ordinate value sets the element bit of the internal Bignum.}
18
18
  spec.summary = %q{Set class}
19
- spec.homepage = "http://bdlsys.com/gems/setfu.html"
20
19
  spec.license = "MIT"
21
20
 
22
21
  spec.files = `git ls-files`.split($/)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: setfu
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan Colvin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-20 00:00:00.000000000 Z
11
+ date: 2018-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pred
@@ -186,7 +186,7 @@ files:
186
186
  - lib/setfu.rb
187
187
  - lib/setfu/version.rb
188
188
  - setfu.gemspec
189
- homepage: http://bdlsys.com/gems/setfu.html
189
+ homepage:
190
190
  licenses:
191
191
  - MIT
192
192
  metadata: {}