shenanigans 1.0.14 → 1.0.17

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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/lib/shenanigans/hash/has_shape_pred.rb +1 -1
  3. data/lib/shenanigans/integer/divisible_by.rb +13 -0
  4. data/lib/shenanigans/integer.rb +1 -0
  5. data/lib/shenanigans/kernel/fn.rb +0 -2
  6. data/lib/shenanigans/kernel/prompt.rb +1 -3
  7. data/lib/shenanigans/kernel/require_optional.rb +0 -2
  8. data/lib/shenanigans/kernel/with.rb +0 -2
  9. data/lib/shenanigans.rb +1 -1
  10. metadata +79 -46
  11. data/Gemfile +0 -9
  12. data/doc/Array.html +0 -549
  13. data/doc/Hash.html +0 -438
  14. data/doc/Integer.html +0 -219
  15. data/doc/Kernel.html +0 -500
  16. data/doc/Module.html +0 -233
  17. data/doc/Object.html +0 -215
  18. data/doc/String.html +0 -300
  19. data/doc/_index.html +0 -185
  20. data/doc/class_list.html +0 -51
  21. data/doc/css/common.css +0 -1
  22. data/doc/css/full_list.css +0 -58
  23. data/doc/css/style.css +0 -496
  24. data/doc/file.README.html +0 -131
  25. data/doc/file_list.html +0 -56
  26. data/doc/frames.html +0 -17
  27. data/doc/index.html +0 -131
  28. data/doc/js/app.js +0 -314
  29. data/doc/js/full_list.js +0 -216
  30. data/doc/js/jquery.js +0 -4
  31. data/doc/method_list.html +0 -179
  32. data/doc/top-level-namespace.html +0 -112
  33. data/test/array/caret_test.rb +0 -9
  34. data/test/array/random_subarray_test.rb +0 -10
  35. data/test/array/reductions_test.rb +0 -27
  36. data/test/array/zip_with_test.rb +0 -14
  37. data/test/hash/extract_test.rb +0 -11
  38. data/test/hash/has_shape_pred_test.rb +0 -40
  39. data/test/hash/to_ostruct_test.rb +0 -23
  40. data/test/integer/string_length_test.rb +0 -16
  41. data/test/kernel/fn_test.rb +0 -14
  42. data/test/kernel/prompt_test.rb +0 -27
  43. data/test/kernel/require_optional_test.rb +0 -15
  44. data/test/kernel/with_test.rb +0 -12
  45. data/test/module/private_accessor_test.rb +0 -21
  46. data/test/object/display_test.rb +0 -35
  47. data/test/string/cmpi_test.rb +0 -10
  48. data/test/string/in_groups_of_test.rb +0 -11
@@ -1,40 +0,0 @@
1
- require "minitest/autorun"
2
- require "shenanigans/hash/has_shape_pred"
3
-
4
- class HasShape < Minitest::Test
5
- def setup
6
- @hash = {
7
- k1: 1.0,
8
- k2: 1,
9
- k3: {
10
- k4: "1",
11
- k5: {
12
- k6: Array
13
- }
14
- }
15
- }
16
- end
17
-
18
- def test_has_shape
19
- shape_pass = {
20
- k1: Float,
21
- k2: Integer,
22
- k3: {
23
- k4: String,
24
- k5: {
25
- k6: Class
26
- }
27
- }
28
- }
29
-
30
- assert @hash.has_shape?(shape_pass)
31
- end
32
-
33
- def test_has_shape_fail
34
- shape_fail = {
35
- k1: Float
36
- }
37
-
38
- assert !@hash.has_shape?(shape_fail)
39
- end
40
- end
@@ -1,23 +0,0 @@
1
- require "minitest/autorun"
2
- require "shenanigans/hash/to_ostruct"
3
-
4
- class ToOstruct < Minitest::Test
5
- def test_simple_hash
6
- struct = {a: 1, b: 2}.to_ostruct
7
- assert struct.a == 1
8
- assert struct.b == 2
9
- end
10
-
11
- def test_nested_hash
12
- struct = {a: 1, b: {c: 3}}.to_ostruct
13
- assert struct.a == 1
14
- assert struct.b.c == 3
15
- end
16
-
17
- def test_nested_array
18
- struct = {a: 1, b: [{c: 2}, 5]}.to_ostruct
19
- assert struct.a == 1
20
- assert struct.b.first.c == 2
21
- assert struct.b.last == 5
22
- end
23
- end
@@ -1,16 +0,0 @@
1
- require "minitest/autorun"
2
- require "shenanigans/integer/string_length"
3
-
4
- class StringLength < Minitest::Test
5
- def test_zero
6
- assert 0.string_length == 1
7
- end
8
-
9
- def test_positive
10
- assert 123.string_length == 3
11
- end
12
-
13
- def test_negative
14
- assert(-1.string_length) == 2
15
- end
16
- end
@@ -1,14 +0,0 @@
1
- require "minitest/autorun"
2
- require "shenanigans/kernel/fn"
3
-
4
- class Fn < Minitest::Test
5
- def test_with_symbols
6
- result = ["foo bar", "baz qux"].map(&fn(:split, :last))
7
- assert result == ["bar", "qux"]
8
- end
9
-
10
- def test_with_symbols_and_lambdas
11
- result = (1..3).map(&fn(:next, ->(x) { x * x }, ->(x) { x.to_f / 2 }))
12
- assert result == [2.0, 4.5, 8.0]
13
- end
14
- end
@@ -1,27 +0,0 @@
1
- require "minitest/autorun"
2
- require "shenanigans/kernel/prompt"
3
- require "stringio"
4
-
5
- class Prompt < Minitest::Test
6
- def setup
7
- @orig_stdin = $stderr
8
- @orig_stdout = $stdout
9
- $stdin = StringIO.new("42\n")
10
- $stdout = StringIO.new
11
- end
12
-
13
- def teardown
14
- $stdin = @orig_stdin
15
- $stdout = @orig_stdout
16
- end
17
-
18
- def test_prompt
19
- result = prompt("Foo> ")
20
- assert result == "42"
21
- end
22
-
23
- def test_prompt_with_conversion
24
- result = prompt("Foo> ", :to_f)
25
- assert result == 42.0
26
- end
27
- end
@@ -1,15 +0,0 @@
1
- require "minitest/autorun"
2
- require "shenanigans/kernel/require_optional"
3
- require "stringio"
4
-
5
- class RequireOptional < Minitest::Test
6
- def test_require_optional
7
- assert_nil require_optional("non_existent")
8
- end
9
-
10
- def test_require_optional_with_block
11
- res = require_optional("non_existent") { 42 }
12
-
13
- assert_equal res, 42
14
- end
15
- end
@@ -1,12 +0,0 @@
1
- require "minitest/autorun"
2
- require "shenanigans/kernel/with"
3
-
4
- class With < Minitest::Test
5
- def test_with
6
- result = with([]) { |a|
7
- a << "a"
8
- a << "b"
9
- }
10
- assert result == %w[a b]
11
- end
12
- end
@@ -1,21 +0,0 @@
1
- require "minitest/autorun"
2
- require "shenanigans/module/private_accessor"
3
-
4
- class PrivateAccessor < Minitest::Test
5
- class Foo
6
- private_accessor :bar, :baz
7
-
8
- def initialize(v1, v2)
9
- self.bar = v1
10
- self.baz = v2
11
- end
12
- end
13
-
14
- def test_private_accessor
15
- f = Foo.new(1, 2)
16
- assert f.instance_variables == [:@bar, :@baz]
17
- assert (f.private_methods & [:bar, :baz, :bar=, :baz=]).size == 4
18
- assert f.instance_variable_get("@bar") == 1
19
- assert f.instance_variable_get("@baz") == 2
20
- end
21
- end
@@ -1,35 +0,0 @@
1
- require "minitest/autorun"
2
- require "shenanigans/object/display"
3
- require "stringio"
4
-
5
- class Display < Minitest::Test
6
- def setup
7
- @orig_stdout = $stdout
8
- $stdout = StringIO.new("", "r+")
9
- end
10
-
11
- def teardown
12
- $stdout = @orig_stdout
13
- end
14
-
15
- def test_display
16
- str = "foo"
17
- assert str.display == str
18
- $stdout.rewind
19
- assert $stdout.gets.chomp == str
20
- end
21
-
22
- def test_display_alias
23
- str = "foo"
24
- assert str.d == str
25
- $stdout.rewind
26
- assert $stdout.gets.chomp == str
27
- end
28
-
29
- def test_display_no_new_line
30
- str = "foo"
31
- assert str.display(false) == str
32
- $stdout.rewind
33
- assert $stdout.gets == str
34
- end
35
- end
@@ -1,10 +0,0 @@
1
- require "minitest/autorun"
2
- require "shenanigans/string/cmpi"
3
-
4
- class Cmpi < Minitest::Test
5
- def cmpi
6
- str = "aabbcc"
7
- assert str.cmpi("AAbbcc")
8
- assert_equal cmpi("foo"), false
9
- end
10
- end
@@ -1,11 +0,0 @@
1
- require "minitest/autorun"
2
- require "shenanigans/string/in_groups_of"
3
-
4
- class InGroupsOf < Minitest::Test
5
- def test_in_groups_of
6
- str = "aabbcc"
7
- assert str.in_groups_of(2) == ["aa", "bb", "cc"]
8
- assert "".in_groups_of(2) == []
9
- assert_raises(ArgumentError) { "".in_groups_of(0) }
10
- end
11
- end