stream 0.5 → 0.5.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +30 -0
- data/LICENSE +56 -0
- data/{README → README.rdoc} +6 -8
- data/Rakefile +23 -134
- data/lib/stream.rb +535 -352
- data/test/test_helper.rb +2 -0
- data/test/teststream.rb +111 -101
- metadata +112 -48
- data/install.rb +0 -24
- data/lib/generator2stream.rb +0 -22
- data/test/bm.rb +0 -49
- data/test/testgenerator.rb +0 -24
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 55354ecc39933e7f4be1b3b1eaa9bcfec109b00346f739e2f6c675a333ed17e9
|
4
|
+
data.tar.gz: aab007abb0bf1bf998be99a9806d3e3d9a8f305a422ce01ac83ea586b42a778a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 416c8fe937cc016744b8325bd3f15a6210a51fe17900de8e1db8b405ef5793cd2344ff3f0e9b0a3e336bf71c1497b9f84137238f4f92431fa861056f6a34646c
|
7
|
+
data.tar.gz: c07f8c66b7ca2d3a3e7c355b9b7bdbb6bd3151c9871159b0c92376773a732b9fdbabc2e1727f6b4c822b4412aa67a17f0601afd969f50ecd1a9751618e4c72e3
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
stream (0.5.4)
|
5
|
+
generator
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
generator (0.0.1)
|
11
|
+
power_assert (1.1.3)
|
12
|
+
rake (12.3.2)
|
13
|
+
rdoc (6.1.1)
|
14
|
+
test-unit (3.2.9)
|
15
|
+
power_assert
|
16
|
+
yard (0.9.16)
|
17
|
+
|
18
|
+
PLATFORMS
|
19
|
+
ruby
|
20
|
+
x86_64-linux
|
21
|
+
|
22
|
+
DEPENDENCIES
|
23
|
+
rake
|
24
|
+
rdoc
|
25
|
+
stream!
|
26
|
+
test-unit
|
27
|
+
yard
|
28
|
+
|
29
|
+
BUNDLED WITH
|
30
|
+
2.3.8
|
data/LICENSE
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
|
2
|
+
You can redistribute it and/or modify it under either the terms of the
|
3
|
+
2-clause BSDL (see the file BSDL), or the conditions below:
|
4
|
+
|
5
|
+
1. You may make and give away verbatim copies of the source form of the
|
6
|
+
software without restriction, provided that you duplicate all of the
|
7
|
+
original copyright notices and associated disclaimers.
|
8
|
+
|
9
|
+
2. You may modify your copy of the software in any way, provided that
|
10
|
+
you do at least ONE of the following:
|
11
|
+
|
12
|
+
a) place your modifications in the Public Domain or otherwise
|
13
|
+
make them Freely Available, such as by posting said
|
14
|
+
modifications to Usenet or an equivalent medium, or by allowing
|
15
|
+
the author to include your modifications in the software.
|
16
|
+
|
17
|
+
b) use the modified software only within your corporation or
|
18
|
+
organization.
|
19
|
+
|
20
|
+
c) give non-standard binaries non-standard names, with
|
21
|
+
instructions on where to get the original software distribution.
|
22
|
+
|
23
|
+
d) make other distribution arrangements with the author.
|
24
|
+
|
25
|
+
3. You may distribute the software in object code or binary form,
|
26
|
+
provided that you do at least ONE of the following:
|
27
|
+
|
28
|
+
a) distribute the binaries and library files of the software,
|
29
|
+
together with instructions (in the manual page or equivalent)
|
30
|
+
on where to get the original distribution.
|
31
|
+
|
32
|
+
b) accompany the distribution with the machine-readable source of
|
33
|
+
the software.
|
34
|
+
|
35
|
+
c) give non-standard binaries non-standard names, with
|
36
|
+
instructions on where to get the original software distribution.
|
37
|
+
|
38
|
+
d) make other distribution arrangements with the author.
|
39
|
+
|
40
|
+
4. You may modify and include the part of the software into any other
|
41
|
+
software (possibly commercial). But some files in the distribution
|
42
|
+
are not written by the author, so that they are not under these terms.
|
43
|
+
|
44
|
+
For the list of those files and their copying conditions, see the
|
45
|
+
file LEGAL.
|
46
|
+
|
47
|
+
5. The scripts and library files supplied as input to or produced as
|
48
|
+
output from the software do not automatically fall under the
|
49
|
+
copyright of the software, but belong to whomever generated them,
|
50
|
+
and may be sold commercially, and may be aggregated with this
|
51
|
+
software.
|
52
|
+
|
53
|
+
6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
|
54
|
+
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
55
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
56
|
+
PURPOSE.
|
data/{README → README.rdoc}
RENAMED
@@ -1,3 +1,5 @@
|
|
1
|
+
{<img src="https://github.com/monora/stream/actions/workflows/ruby.yml/badge.svg" alt="Build Status" />}[https://github.com/monora/stream/actions/workflows/ruby.yml]
|
2
|
+
|
1
3
|
= Extended External Iterators (forward and backward)
|
2
4
|
|
3
5
|
== Description
|
@@ -24,7 +26,7 @@ exactly defined
|
|
24
26
|
s.current_edge == [s.current, s.peek]
|
25
27
|
|
26
28
|
If s a stream on [x1,...,xn]. Consider the edges [xi,xi+1] i=1,...,n and
|
27
|
-
[x0,x1] and [xn,xn+1] (x0 and xn are helper elements to define the boundary
|
29
|
+
[x0,x1] and [xn,xn+1] (x0 and xn+1 are helper elements to define the boundary
|
28
30
|
conditions). Then if s is non empty, the following conditions must be true:
|
29
31
|
|
30
32
|
s.at_beginning? <=> s.current_edge == [x0,x1]
|
@@ -87,7 +89,7 @@ There are several concrete classes implementing the stream interface:
|
|
87
89
|
|
88
90
|
The latest version of stream.rb can be found at
|
89
91
|
|
90
|
-
* http://
|
92
|
+
* http://github.com/monora/stream
|
91
93
|
|
92
94
|
== Installation
|
93
95
|
|
@@ -112,7 +114,6 @@ root privileges to install.
|
|
112
114
|
|
113
115
|
* Streams in Smalltalk: http://wiki.cs.uiuc.edu/PatternStories/FunWithStreams
|
114
116
|
* Simon Strandgaards iterator.rb[http://aeditor.rubyforge.org/iterator/files/iterator_rb.html]
|
115
|
-
* IterationStyles: http://www.rubygarden.org/ruby?IterationStyles
|
116
117
|
|
117
118
|
== Examples
|
118
119
|
|
@@ -166,9 +167,6 @@ root privileges to install.
|
|
166
167
|
|
167
168
|
== Other Stuff
|
168
169
|
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
Author:: Horst Duchene <hd.at.clr@hduchene.de>
|
173
|
-
License:: Copyright (c) 2001, 2004 Horst Duchene
|
170
|
+
Author:: Horst Duchene
|
171
|
+
License:: Copyright (c) 2001, 2013, 2016, 2020 Horst Duchene
|
174
172
|
Released under the same license as Ruby
|
data/Rakefile
CHANGED
@@ -1,22 +1,15 @@
|
|
1
|
-
# Rakefile for
|
1
|
+
# Rakefile for stream -*- ruby -*-
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
nil
|
7
|
-
end
|
8
|
-
require 'rake/clean'
|
9
|
-
require 'rake/testtask'
|
10
|
-
require 'rake/gempackagetask'
|
11
|
-
require 'rake/rdoctask'
|
3
|
+
require 'rubygems'
|
4
|
+
require 'bundler/setup'
|
5
|
+
require 'rubygems/package_task'
|
12
6
|
|
13
|
-
|
7
|
+
require 'rake/testtask'
|
8
|
+
require 'rake/clean'
|
9
|
+
require 'yard'
|
14
10
|
|
15
|
-
|
16
|
-
|
17
|
-
else
|
18
|
-
PKG_VERSION = "0.0.0"
|
19
|
-
end
|
11
|
+
$:.unshift File.join(File.dirname(__FILE__), 'lib')
|
12
|
+
require 'stream' # require module to STREAM_VERSION
|
20
13
|
|
21
14
|
SRC_RB = FileList['lib/*.rb']
|
22
15
|
|
@@ -27,11 +20,11 @@ task :default => :test
|
|
27
20
|
|
28
21
|
# Define a test task.
|
29
22
|
|
30
|
-
Rake::TestTask.new
|
31
|
-
|
32
|
-
|
23
|
+
Rake::TestTask.new do |t|
|
24
|
+
t.libs << 'test'
|
25
|
+
t.pattern = 'test/test*.rb'
|
33
26
|
t.verbose = true
|
34
|
-
|
27
|
+
end
|
35
28
|
|
36
29
|
task :test
|
37
30
|
|
@@ -39,123 +32,19 @@ task :test
|
|
39
32
|
desc "Run all test targets"
|
40
33
|
task :testall => [:test ]
|
41
34
|
|
42
|
-
#
|
35
|
+
# Git tagging
|
43
36
|
|
44
|
-
desc "
|
45
|
-
task :
|
46
|
-
|
37
|
+
desc "Commit all changes as a new version commit. Tag the commit with v<version> tag"
|
38
|
+
task :tag do
|
39
|
+
puts "Committing and tagging version #{STREAM_VERSION}"
|
40
|
+
`git commit -am 'Version #{STREAM_VERSION}'`
|
41
|
+
`git tag 'v#{STREAM_VERSION}'`
|
47
42
|
end
|
48
43
|
|
49
|
-
#
|
50
|
-
|
51
|
-
rd = Rake::RDocTask.new("rdoc") { |rdoc|
|
52
|
-
rdoc.rdoc_dir = 'html'
|
53
|
-
# rdoc.template = 'kilmer'
|
54
|
-
# rdoc.template = 'css2'
|
55
|
-
rdoc.title = "Stream - Extended External Iterators"
|
56
|
-
rdoc.options << '--line-numbers' << '--inline-source'
|
57
|
-
rdoc.rdoc_files.include('README')
|
58
|
-
rdoc.rdoc_files.include('lib/*.rb', 'doc/**/*.rdoc')
|
59
|
-
}
|
60
|
-
|
61
|
-
# ====================================================================
|
62
|
-
# Create a task that will package the stream software into distributable
|
63
|
-
# tar, zip and gem files.
|
64
|
-
|
65
|
-
PKG_FILES = FileList[
|
66
|
-
'install.rb',
|
67
|
-
'[A-Z]*',
|
68
|
-
'lib/**/*.rb',
|
69
|
-
'test/**/*.rb',
|
70
|
-
'examples/**/*'
|
71
|
-
]
|
72
|
-
|
73
|
-
if ! defined?(Gem)
|
74
|
-
puts "Package Target requires RubyGEMs"
|
75
|
-
else
|
76
|
-
spec = Gem::Specification.new do |s|
|
77
|
-
|
78
|
-
#### Basic information.
|
79
|
-
|
80
|
-
s.name = 'stream'
|
81
|
-
s.version = PKG_VERSION
|
82
|
-
s.summary = "Stream - Extended External Iterators"
|
83
|
-
s.description = <<-EOF
|
84
|
-
Module Stream defines an interface for external iterators.
|
85
|
-
EOF
|
86
|
-
|
87
|
-
#### Dependencies and requirements.
|
88
|
-
|
89
|
-
#s.add_dependency('log4r', '> 1.0.4')
|
90
|
-
#s.requirements << ""
|
91
|
-
|
92
|
-
#### Which files are to be included in this gem? Everything! (Except CVS directories.)
|
93
|
-
|
94
|
-
s.files = PKG_FILES.to_a
|
44
|
+
# Documentation
|
95
45
|
|
96
|
-
|
46
|
+
YARD::Rake::YardocTask.new
|
97
47
|
|
98
|
-
|
48
|
+
# Tasks for building and installing Stream gem.
|
99
49
|
|
100
|
-
|
101
|
-
|
102
|
-
s.require_path = 'lib' # Use these for libraries.
|
103
|
-
s.autorequire = 'stream'
|
104
|
-
|
105
|
-
#### Documentation and testing.
|
106
|
-
|
107
|
-
s.has_rdoc = true
|
108
|
-
#s.test_suite_file = "test/rmagic-tests.rb"
|
109
|
-
|
110
|
-
#### Author and project details.
|
111
|
-
s.author = "Horst Duchene"
|
112
|
-
s.email = "hd.at.clr@hduchene.de"
|
113
|
-
s.homepage = "http://rgl.rubyforge.org"
|
114
|
-
s.rubyforge_project = "rgl"
|
115
|
-
end
|
116
|
-
|
117
|
-
Rake::GemPackageTask.new(spec) do |pkg|
|
118
|
-
pkg.need_zip = true
|
119
|
-
pkg.need_tar = true
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
# Misc tasks =========================================================
|
124
|
-
|
125
|
-
def count_lines(filename)
|
126
|
-
lines = 0
|
127
|
-
codelines = 0
|
128
|
-
open(filename) { |f|
|
129
|
-
f.each do |line|
|
130
|
-
lines += 1
|
131
|
-
next if line =~ /^\s*$/
|
132
|
-
next if line =~ /^\s*#/
|
133
|
-
codelines += 1
|
134
|
-
end
|
135
|
-
}
|
136
|
-
[lines, codelines]
|
137
|
-
end
|
138
|
-
|
139
|
-
def show_line(msg, lines, loc)
|
140
|
-
printf "%6s %6s %s\n", lines.to_s, loc.to_s, msg
|
141
|
-
end
|
142
|
-
|
143
|
-
desc "Count lines in the main files"
|
144
|
-
task :lines do
|
145
|
-
total_lines = 0
|
146
|
-
total_code = 0
|
147
|
-
show_line("File Name", "LINES", "LOC")
|
148
|
-
SRC_RB.each do |fn|
|
149
|
-
lines, codelines = count_lines(fn)
|
150
|
-
show_line(fn, lines, codelines)
|
151
|
-
total_lines += lines
|
152
|
-
total_code += codelines
|
153
|
-
end
|
154
|
-
show_line("TOTAL", total_lines, total_code)
|
155
|
-
end
|
156
|
-
|
157
|
-
ARCHIVEDIR = '/mnt/flash'
|
158
|
-
|
159
|
-
task :archive => [:package] do
|
160
|
-
cp FileList["pkg/*.tgz", "pkg/*.zip", "pkg/*.gem"], ARCHIVEDIR
|
161
|
-
end
|
50
|
+
Bundler::GemHelper.install_tasks
|