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.
- checksums.yaml +4 -4
- data/lib/shenanigans/hash/has_shape_pred.rb +1 -1
- data/lib/shenanigans/integer/divisible_by.rb +13 -0
- data/lib/shenanigans/integer.rb +1 -0
- data/lib/shenanigans/kernel/fn.rb +0 -2
- data/lib/shenanigans/kernel/prompt.rb +1 -3
- data/lib/shenanigans/kernel/require_optional.rb +0 -2
- data/lib/shenanigans/kernel/with.rb +0 -2
- data/lib/shenanigans.rb +1 -1
- metadata +79 -46
- data/Gemfile +0 -9
- data/doc/Array.html +0 -549
- data/doc/Hash.html +0 -438
- data/doc/Integer.html +0 -219
- data/doc/Kernel.html +0 -500
- data/doc/Module.html +0 -233
- data/doc/Object.html +0 -215
- data/doc/String.html +0 -300
- data/doc/_index.html +0 -185
- data/doc/class_list.html +0 -51
- data/doc/css/common.css +0 -1
- data/doc/css/full_list.css +0 -58
- data/doc/css/style.css +0 -496
- data/doc/file.README.html +0 -131
- data/doc/file_list.html +0 -56
- data/doc/frames.html +0 -17
- data/doc/index.html +0 -131
- data/doc/js/app.js +0 -314
- data/doc/js/full_list.js +0 -216
- data/doc/js/jquery.js +0 -4
- data/doc/method_list.html +0 -179
- data/doc/top-level-namespace.html +0 -112
- data/test/array/caret_test.rb +0 -9
- data/test/array/random_subarray_test.rb +0 -10
- data/test/array/reductions_test.rb +0 -27
- data/test/array/zip_with_test.rb +0 -14
- data/test/hash/extract_test.rb +0 -11
- data/test/hash/has_shape_pred_test.rb +0 -40
- data/test/hash/to_ostruct_test.rb +0 -23
- data/test/integer/string_length_test.rb +0 -16
- data/test/kernel/fn_test.rb +0 -14
- data/test/kernel/prompt_test.rb +0 -27
- data/test/kernel/require_optional_test.rb +0 -15
- data/test/kernel/with_test.rb +0 -12
- data/test/module/private_accessor_test.rb +0 -21
- data/test/object/display_test.rb +0 -35
- data/test/string/cmpi_test.rb +0 -10
- 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
|
data/test/kernel/fn_test.rb
DELETED
@@ -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
|
data/test/kernel/prompt_test.rb
DELETED
@@ -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
|
data/test/kernel/with_test.rb
DELETED
@@ -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
|
data/test/object/display_test.rb
DELETED
@@ -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
|
data/test/string/cmpi_test.rb
DELETED
@@ -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
|