namo.rb 0.31.7
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 +7 -0
- data/CHANGELOG +566 -0
- data/Gemfile +5 -0
- data/LICENSE +21 -0
- data/README.md +1268 -0
- data/Rakefile +42 -0
- data/lib/Namo/Collection.rb +130 -0
- data/lib/Namo/Enumerable.rb +83 -0
- data/lib/Namo/Formulae.rb +137 -0
- data/lib/Namo/Formulary.rb +6 -0
- data/lib/Namo/NegatedDimension.rb +14 -0
- data/lib/Namo/Row.rb +93 -0
- data/lib/Namo/VERSION.rb +6 -0
- data/lib/Symbol.rb +8 -0
- data/lib/namo.rb +433 -0
- data/namo.rb.gemspec +42 -0
- data/test/Namo/Collection_test.rb +548 -0
- data/test/Namo/Formulae_test.rb +458 -0
- data/test/Namo/NegatedDimension_test.rb +13 -0
- data/test/Namo/Row_test.rb +487 -0
- data/test/Symbol_test.rb +16 -0
- data/test/console_test.rb +44 -0
- data/test/demo_test.rb +86 -0
- data/test/namo_test.rb +3328 -0
- data/test/sizing_test.rb +40 -0
- metadata +107 -0
data/test/sizing_test.rb
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# test/sizing_test.rb
|
|
2
|
+
|
|
3
|
+
require 'minitest/autorun'
|
|
4
|
+
require 'minitest-spec-context'
|
|
5
|
+
|
|
6
|
+
# script/sizing produces the figures in ROADMAP.md's "What size it is for". A
|
|
7
|
+
# measurement whose script has rotted is a measurement nobody can repeat, which is
|
|
8
|
+
# the condition the script exists to end — so assert it still runs, at sizes small
|
|
9
|
+
# enough not to make the suite a benchmark.
|
|
10
|
+
|
|
11
|
+
describe 'script/sizing' do
|
|
12
|
+
def sizing(*arguments)
|
|
13
|
+
root = File.expand_path('..', __dir__)
|
|
14
|
+
IO.popen([File.join(root, 'script', 'sizing'), *arguments],
|
|
15
|
+
chdir: root, err: [:child, :out]){|io| io.read}
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "reports a row per size asked for" do
|
|
19
|
+
output = sizing('2000', '4000')
|
|
20
|
+
_($?.success?).must_equal true
|
|
21
|
+
_(output).must_match(/^\| 2,000 \| \d+ ms \|/)
|
|
22
|
+
_(output).must_match(/^\| 4,000 \| \d+ ms \|/)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "renders as the table the ROADMAP carries" do
|
|
26
|
+
_(sizing('2000').lines.first).must_equal "| rows | group_by | per row | bytes/row |\n"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it "refuses a size it cannot measure" do
|
|
30
|
+
sizing('0')
|
|
31
|
+
_($?.success?).must_equal false
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it "needs nothing but the gem's own dependencies" do
|
|
35
|
+
root = File.expand_path('..', __dir__)
|
|
36
|
+
output = IO.popen({'RUBYLIB' => nil}, [File.join(root, 'script', 'sizing'), '2000'],
|
|
37
|
+
chdir: root, err: [:child, :out]){|io| io.read}
|
|
38
|
+
_(output).wont_match(/LoadError/)
|
|
39
|
+
end
|
|
40
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: namo.rb
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.31.7
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- thoran
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: minitest
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '0'
|
|
19
|
+
type: :development
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - ">="
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '0'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: minitest-spec-context
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0'
|
|
33
|
+
type: :development
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '0'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: rake
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - ">="
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '0'
|
|
47
|
+
type: :development
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - ">="
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0'
|
|
54
|
+
description: A Ruby library for working with multi-dimensional data using named dimensions.
|
|
55
|
+
Initialise from an array of hashes making it trivial to use with databases, CSV,
|
|
56
|
+
JSON, and YAML. Dimensions and coordinates are inferred automatically.
|
|
57
|
+
email: code@thoran.com
|
|
58
|
+
executables: []
|
|
59
|
+
extensions: []
|
|
60
|
+
extra_rdoc_files: []
|
|
61
|
+
files:
|
|
62
|
+
- CHANGELOG
|
|
63
|
+
- Gemfile
|
|
64
|
+
- LICENSE
|
|
65
|
+
- README.md
|
|
66
|
+
- Rakefile
|
|
67
|
+
- lib/Namo/Collection.rb
|
|
68
|
+
- lib/Namo/Enumerable.rb
|
|
69
|
+
- lib/Namo/Formulae.rb
|
|
70
|
+
- lib/Namo/Formulary.rb
|
|
71
|
+
- lib/Namo/NegatedDimension.rb
|
|
72
|
+
- lib/Namo/Row.rb
|
|
73
|
+
- lib/Namo/VERSION.rb
|
|
74
|
+
- lib/Symbol.rb
|
|
75
|
+
- lib/namo.rb
|
|
76
|
+
- namo.rb.gemspec
|
|
77
|
+
- test/Namo/Collection_test.rb
|
|
78
|
+
- test/Namo/Formulae_test.rb
|
|
79
|
+
- test/Namo/NegatedDimension_test.rb
|
|
80
|
+
- test/Namo/Row_test.rb
|
|
81
|
+
- test/Symbol_test.rb
|
|
82
|
+
- test/console_test.rb
|
|
83
|
+
- test/demo_test.rb
|
|
84
|
+
- test/namo_test.rb
|
|
85
|
+
- test/sizing_test.rb
|
|
86
|
+
homepage: https://github.com/thoran/namo
|
|
87
|
+
licenses:
|
|
88
|
+
- MIT
|
|
89
|
+
metadata: {}
|
|
90
|
+
rdoc_options: []
|
|
91
|
+
require_paths:
|
|
92
|
+
- lib
|
|
93
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
94
|
+
requirements:
|
|
95
|
+
- - ">="
|
|
96
|
+
- !ruby/object:Gem::Version
|
|
97
|
+
version: '2.7'
|
|
98
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - ">="
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: '0'
|
|
103
|
+
requirements: []
|
|
104
|
+
rubygems_version: 4.0.19
|
|
105
|
+
specification_version: 4
|
|
106
|
+
summary: Named dimensional data for Ruby.
|
|
107
|
+
test_files: []
|