casegen 1.3.0 → 2.0.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 +7 -0
- data/.gitignore +4 -0
- data/.ruby-version +1 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +25 -0
- data/LICENSE +21 -0
- data/README.md +132 -0
- data/Rakefile +11 -0
- data/TODO +26 -0
- data/bin/casegen +2 -7
- data/casegen.gemspec +26 -0
- data/{src → doc}/calc.sample.txt +0 -0
- data/doc/cart.sample.rb +3 -0
- data/{src → doc}/cart.sample.txt +0 -0
- data/{src/ruby_array.sample.txt → doc/ruby_array.sample.rb} +6 -0
- data/{src → lib}/agents/sets.rb +49 -72
- data/{src → lib}/agents/sets/enum/by.rb +0 -0
- data/{src → lib}/agents/sets/enum/cluster.rb +0 -0
- data/lib/agents/sets/enum/inject.rb +50 -0
- data/{src → lib}/agents/sets/enum/nest.rb +0 -0
- data/{src → lib}/agents/sets/enum/op.rb +0 -0
- data/{src → lib}/agents/sets/enum/pipe.rb +0 -0
- data/{src → lib}/agents/sets/enum/tree.rb +0 -0
- data/{src → lib}/casegen.rb +1 -7
- data/test/agents/console_output_test.rb +27 -0
- data/test/agents/sets.test.rb +227 -0
- data/test/agents_test.rb +41 -0
- data/test/casegen.tests.rb +0 -0
- data/test/parser_test.rb +163 -0
- data/test/test_helper.rb +2 -0
- metadata +93 -35
- data/src/agents/sets/enum/inject.rb +0 -50
- data/src/agents/sets/enum/install.rb +0 -73
data/test/test_helper.rb
ADDED
metadata
CHANGED
@@ -1,66 +1,124 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: casegen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
5
|
-
prerelease:
|
4
|
+
version: 2.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- chrismo
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
13
|
-
dependencies:
|
14
|
-
|
11
|
+
date: 2019-04-05 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: tablesmith
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: minitest
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: Simple Ruby DSL to generate use cases restricted by sets of rules
|
15
56
|
email: chrismo@clabs.org
|
16
57
|
executables:
|
17
58
|
- casegen
|
18
59
|
extensions: []
|
19
60
|
extra_rdoc_files: []
|
20
61
|
files:
|
21
|
-
-
|
22
|
-
-
|
23
|
-
-
|
24
|
-
-
|
25
|
-
-
|
26
|
-
-
|
27
|
-
-
|
28
|
-
-
|
29
|
-
-
|
30
|
-
-
|
31
|
-
-
|
32
|
-
-
|
33
|
-
- src/ruby_array.sample.txt
|
62
|
+
- ".gitignore"
|
63
|
+
- ".idea/encodings.xml"
|
64
|
+
- ".idea/misc.xml"
|
65
|
+
- ".idea/modules.xml"
|
66
|
+
- ".idea/vcs.xml"
|
67
|
+
- ".ruby-version"
|
68
|
+
- Gemfile
|
69
|
+
- Gemfile.lock
|
70
|
+
- LICENSE
|
71
|
+
- README.md
|
72
|
+
- Rakefile
|
73
|
+
- TODO
|
34
74
|
- bin/casegen
|
75
|
+
- casegen.gemspec
|
76
|
+
- doc/calc.sample.txt
|
77
|
+
- doc/cart.sample.rb
|
78
|
+
- doc/cart.sample.txt
|
79
|
+
- doc/ruby_array.sample.rb
|
80
|
+
- lib/agents/sets.rb
|
81
|
+
- lib/agents/sets/enum/by.rb
|
82
|
+
- lib/agents/sets/enum/cluster.rb
|
83
|
+
- lib/agents/sets/enum/inject.rb
|
84
|
+
- lib/agents/sets/enum/nest.rb
|
85
|
+
- lib/agents/sets/enum/op.rb
|
86
|
+
- lib/agents/sets/enum/pipe.rb
|
87
|
+
- lib/agents/sets/enum/tree.rb
|
88
|
+
- lib/casegen.rb
|
89
|
+
- test/agents/console_output_test.rb
|
90
|
+
- test/agents/sets.test.rb
|
91
|
+
- test/agents_test.rb
|
92
|
+
- test/casegen.tests.rb
|
93
|
+
- test/parser_test.rb
|
94
|
+
- test/test_helper.rb
|
35
95
|
homepage: https://github.com/chrismo/casegen
|
36
96
|
licenses:
|
37
|
-
-
|
97
|
+
- MIT
|
98
|
+
metadata: {}
|
38
99
|
post_install_message:
|
39
100
|
rdoc_options: []
|
40
101
|
require_paths:
|
41
|
-
-
|
102
|
+
- lib
|
42
103
|
required_ruby_version: !ruby/object:Gem::Requirement
|
43
|
-
none: false
|
44
104
|
requirements:
|
45
|
-
- -
|
105
|
+
- - "~>"
|
46
106
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
48
|
-
segments:
|
49
|
-
- 0
|
50
|
-
hash: -3949454406001861969
|
107
|
+
version: '2.3'
|
51
108
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
52
|
-
none: false
|
53
109
|
requirements:
|
54
|
-
- -
|
110
|
+
- - ">="
|
55
111
|
- !ruby/object:Gem::Version
|
56
112
|
version: '0'
|
57
|
-
segments:
|
58
|
-
- 0
|
59
|
-
hash: -3949454406001861969
|
60
113
|
requirements: []
|
61
|
-
|
62
|
-
rubygems_version: 1.8.23
|
114
|
+
rubygems_version: 3.0.3
|
63
115
|
signing_key:
|
64
|
-
specification_version:
|
116
|
+
specification_version: 4
|
65
117
|
summary: Simple Ruby DSL to generate use cases restricted by sets of rules
|
66
|
-
test_files:
|
118
|
+
test_files:
|
119
|
+
- test/agents/console_output_test.rb
|
120
|
+
- test/agents/sets.test.rb
|
121
|
+
- test/agents_test.rb
|
122
|
+
- test/casegen.tests.rb
|
123
|
+
- test/parser_test.rb
|
124
|
+
- test/test_helper.rb
|
@@ -1,50 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
=begin
|
4
|
-
---Enumerable#inject
|
5
|
-
---Enumerable#sum [block]
|
6
|
-
|
7
|
-
Code adapted from Pickaxe book, p.102.
|
8
|
-
See source file for examples.
|
9
|
-
|
10
|
-
==version
|
11
|
-
|
12
|
-
Enumerable tools 1.6
|
13
|
-
|
14
|
-
=end
|
15
|
-
|
16
|
-
module Enumerable
|
17
|
-
|
18
|
-
def inject n
|
19
|
-
each { |i|
|
20
|
-
n = yield n, i
|
21
|
-
}
|
22
|
-
n
|
23
|
-
end
|
24
|
-
alias :accumulate :inject
|
25
|
-
|
26
|
-
def sum
|
27
|
-
if block_given?
|
28
|
-
inject(0) { |n, i| n + yield(i) }
|
29
|
-
else
|
30
|
-
inject(0) { |n, i| n + i }
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def product
|
35
|
-
if block_given?
|
36
|
-
inject(1) { |n, i| n * yield(i) }
|
37
|
-
else
|
38
|
-
inject(1) { |n, i| n * i }
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|
43
|
-
|
44
|
-
if __FILE__ == $0
|
45
|
-
|
46
|
-
x = (0..9).collect { |i| [i, i*i] }
|
47
|
-
p x
|
48
|
-
p x.sum { |v| v[1] }
|
49
|
-
|
50
|
-
end
|
@@ -1,73 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'rbconfig'
|
4
|
-
require 'getoptlong'
|
5
|
-
require 'ftools'
|
6
|
-
|
7
|
-
destdir = Config::CONFIG['sitedir']
|
8
|
-
noharm = false
|
9
|
-
|
10
|
-
Usage = <<END
|
11
|
-
Usage: ruby install.rb [options]
|
12
|
-
|
13
|
-
option argument action
|
14
|
-
------ -------- ------
|
15
|
-
--destdir dir Destination dir
|
16
|
-
-d (default is #{destdir})
|
17
|
-
|
18
|
-
--help Print this help
|
19
|
-
-h
|
20
|
-
|
21
|
-
--noharm Do not install, just print commands
|
22
|
-
-n
|
23
|
-
|
24
|
-
Installs all .rb files from current dir and below, preserving
|
25
|
-
directory structure, into a subdir of the destination dir. The name
|
26
|
-
of this subdir is formed by stripping the version number off the end
|
27
|
-
of the current dir. The version number is the largest suffix that
|
28
|
-
contains no dashes.
|
29
|
-
|
30
|
-
END
|
31
|
-
|
32
|
-
opts = GetoptLong.new(
|
33
|
-
[ "--destdir", "-d", GetoptLong::REQUIRED_ARGUMENT ],
|
34
|
-
[ "--help", "-h", GetoptLong::NO_ARGUMENT ],
|
35
|
-
[ "--noharm", "-n", GetoptLong::NO_ARGUMENT ]
|
36
|
-
)
|
37
|
-
|
38
|
-
opts.each do |opt, arg|
|
39
|
-
case opt
|
40
|
-
when '--destdir', '-d'
|
41
|
-
destdir = arg
|
42
|
-
when '--help', '-h'
|
43
|
-
print Usage, "\n"
|
44
|
-
exit
|
45
|
-
when '--noharm', '-n'
|
46
|
-
noharm = true
|
47
|
-
else
|
48
|
-
raise "unrecognized option: ", opt
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
raise ArgumentError,
|
53
|
-
"unrecognized arguments #{ARGV.join(' ')}" unless ARGV == []
|
54
|
-
|
55
|
-
basedir = (File.split(Dir.getwd))[1].sub(/-[^-]*\z/, "")
|
56
|
-
files = Dir.glob("**/*.rb").map { |file| file.sub(/\A\.\//, "") }
|
57
|
-
files = files.reject {|file| file == __FILE__ }
|
58
|
-
files.map! { |file|
|
59
|
-
[file,
|
60
|
-
File.join(destdir, basedir, file)]
|
61
|
-
}
|
62
|
-
|
63
|
-
dirs = {}
|
64
|
-
for src, dest in files
|
65
|
-
d = File.dirname dest
|
66
|
-
unless dirs[d]
|
67
|
-
puts "File.makedir #{d}"
|
68
|
-
File.makedirs d unless noharm
|
69
|
-
dirs[d] = true
|
70
|
-
end
|
71
|
-
puts "File.install #{src}, #{dest}, 0644, true"
|
72
|
-
File.install(src, dest, 0644, true) unless noharm
|
73
|
-
end
|