stamina 0.4.0 → 0.5.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.
- data/CHANGELOG.md +22 -5
- data/LICENCE.md +2 -2
- data/bin/stamina +1 -7
- data/lib/stamina.rb +10 -19
- metadata +54 -333
- data/.gemtest +0 -0
- data/Gemfile +0 -2
- data/Gemfile.lock +0 -37
- data/Manifest.txt +0 -16
- data/README.md +0 -78
- data/Rakefile +0 -23
- data/example/adl/automaton.adl +0 -49
- data/example/adl/sample.adl +0 -53
- data/example/basic/characteristic_sample.adl +0 -32
- data/example/basic/target.adl +0 -9
- data/example/competition/31_test.adl +0 -1500
- data/example/competition/31_training.adl +0 -1759
- data/lib/stamina/abbadingo.rb +0 -2
- data/lib/stamina/abbadingo/random_dfa.rb +0 -48
- data/lib/stamina/abbadingo/random_sample.rb +0 -146
- data/lib/stamina/adl.rb +0 -298
- data/lib/stamina/automaton.rb +0 -1263
- data/lib/stamina/automaton/complete.rb +0 -36
- data/lib/stamina/automaton/equivalence.rb +0 -55
- data/lib/stamina/automaton/metrics.rb +0 -78
- data/lib/stamina/automaton/minimize.rb +0 -25
- data/lib/stamina/automaton/minimize/hopcroft.rb +0 -116
- data/lib/stamina/automaton/minimize/pitchies.rb +0 -64
- data/lib/stamina/automaton/strip.rb +0 -16
- data/lib/stamina/automaton/walking.rb +0 -363
- data/lib/stamina/classifier.rb +0 -52
- data/lib/stamina/command.rb +0 -45
- data/lib/stamina/command/abbadingo_dfa.rb +0 -81
- data/lib/stamina/command/abbadingo_samples.rb +0 -40
- data/lib/stamina/command/adl2dot.rb +0 -71
- data/lib/stamina/command/classify.rb +0 -48
- data/lib/stamina/command/help.rb +0 -27
- data/lib/stamina/command/infer.rb +0 -141
- data/lib/stamina/command/metrics.rb +0 -51
- data/lib/stamina/command/robustness.rb +0 -22
- data/lib/stamina/command/score.rb +0 -35
- data/lib/stamina/errors.rb +0 -23
- data/lib/stamina/ext/math.rb +0 -20
- data/lib/stamina/induction/blue_fringe.rb +0 -265
- data/lib/stamina/induction/commons.rb +0 -156
- data/lib/stamina/induction/rpni.rb +0 -186
- data/lib/stamina/induction/union_find.rb +0 -377
- data/lib/stamina/input_string.rb +0 -123
- data/lib/stamina/loader.rb +0 -1
- data/lib/stamina/markable.rb +0 -42
- data/lib/stamina/sample.rb +0 -267
- data/lib/stamina/scoring.rb +0 -213
- data/lib/stamina/utils.rb +0 -1
- data/lib/stamina/utils/decorate.rb +0 -81
- data/lib/stamina/version.rb +0 -14
- data/stamina.gemspec +0 -191
- data/stamina.noespec +0 -32
- data/tasks/debug_mail.rake +0 -78
- data/tasks/debug_mail.txt +0 -13
- data/tasks/gem.rake +0 -68
- data/tasks/spec_test.rake +0 -79
- data/tasks/unit_test.rake +0 -77
- data/tasks/yard.rake +0 -51
- data/test/stamina/abbadingo/random_dfa_test.rb +0 -16
- data/test/stamina/abbadingo/random_sample_test.rb +0 -78
- data/test/stamina/adl_test.rb +0 -516
- data/test/stamina/automaton/classifier_test.rb +0 -259
- data/test/stamina/automaton/complete_test.rb +0 -58
- data/test/stamina/automaton/equivalence_test.rb +0 -120
- data/test/stamina/automaton/metrics_test.rb +0 -36
- data/test/stamina/automaton/minimize/hopcroft_test.rb +0 -15
- data/test/stamina/automaton/minimize/minimize_test.rb +0 -55
- data/test/stamina/automaton/minimize/pitchies_test.rb +0 -15
- data/test/stamina/automaton/minimize/rice_edu_10.adl +0 -16
- data/test/stamina/automaton/minimize/rice_edu_10.min.adl +0 -13
- data/test/stamina/automaton/minimize/rice_edu_13.adl +0 -13
- data/test/stamina/automaton/minimize/rice_edu_13.min.adl +0 -7
- data/test/stamina/automaton/minimize/should_strip_1.adl +0 -8
- data/test/stamina/automaton/minimize/should_strip_1.min.adl +0 -6
- data/test/stamina/automaton/minimize/unknown_1.adl +0 -16
- data/test/stamina/automaton/minimize/unknown_1.min.adl +0 -12
- data/test/stamina/automaton/strip_test.rb +0 -36
- data/test/stamina/automaton/to_dot_test.rb +0 -64
- data/test/stamina/automaton/walking/dfa_delta_test.rb +0 -39
- data/test/stamina/automaton/walking_test.rb +0 -206
- data/test/stamina/automaton_additional_test.rb +0 -190
- data/test/stamina/automaton_test.rb +0 -1104
- data/test/stamina/exit.rb +0 -3
- data/test/stamina/induction/blue_fringe_test.rb +0 -83
- data/test/stamina/induction/induction_test.rb +0 -70
- data/test/stamina/induction/redblue_mergesamestatebug_expected.adl +0 -19
- data/test/stamina/induction/redblue_mergesamestatebug_pta.dot +0 -64
- data/test/stamina/induction/redblue_mergesamestatebug_sample.adl +0 -9
- data/test/stamina/induction/redblue_universal_expected.adl +0 -4
- data/test/stamina/induction/redblue_universal_sample.adl +0 -5
- data/test/stamina/induction/rpni_inria_expected.adl +0 -7
- data/test/stamina/induction/rpni_inria_sample.adl +0 -9
- data/test/stamina/induction/rpni_test.rb +0 -129
- data/test/stamina/induction/rpni_test_pta.dot +0 -22
- data/test/stamina/induction/rpni_universal_expected.adl +0 -4
- data/test/stamina/induction/rpni_universal_sample.adl +0 -4
- data/test/stamina/induction/union_find_test.rb +0 -124
- data/test/stamina/input_string_test.rb +0 -323
- data/test/stamina/markable_test.rb +0 -70
- data/test/stamina/randdfa.adl +0 -66
- data/test/stamina/sample.adl +0 -4
- data/test/stamina/sample_classify_test.rb +0 -149
- data/test/stamina/sample_test.rb +0 -290
- data/test/stamina/scoring_test.rb +0 -63
- data/test/stamina/small_dfa.dot +0 -16
- data/test/stamina/small_dfa.gif +0 -0
- data/test/stamina/small_nfa.dot +0 -18
- data/test/stamina/small_nfa.gif +0 -0
- data/test/stamina/stamina_test.rb +0 -80
- data/test/stamina/utils/decorate_test.rb +0 -65
- data/test/test_all.rb +0 -7
data/lib/stamina/utils.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require 'stamina/utils/decorate'
|
@@ -1,81 +0,0 @@
|
|
1
|
-
module Stamina
|
2
|
-
module Utils
|
3
|
-
#
|
4
|
-
# Decorates states of an automaton by applying a propagation rule
|
5
|
-
# until a fix point is reached.
|
6
|
-
#
|
7
|
-
class Decorate
|
8
|
-
|
9
|
-
# The key to use to maintain the decoration on states (:invariant
|
10
|
-
# is used by default)
|
11
|
-
attr_writer :decoration_key
|
12
|
-
|
13
|
-
# Creates a decoration algorithm instance
|
14
|
-
def initialize(decoration_key = :invariant)
|
15
|
-
@decoration_key = decoration_key
|
16
|
-
@suppremum = nil
|
17
|
-
@propagate = nil
|
18
|
-
end
|
19
|
-
|
20
|
-
# Installs a suppremum function through a block.
|
21
|
-
def set_suppremum(&block)
|
22
|
-
raise ArgumentError, 'Suppremum expected through a block' if block.nil?
|
23
|
-
raise ArgumentError, 'Block of arity 2 expected' unless block.arity==2
|
24
|
-
@suppremum = block
|
25
|
-
end
|
26
|
-
|
27
|
-
# Installs a propagate function through a block.
|
28
|
-
def set_propagate(&block)
|
29
|
-
raise ArgumentError, 'Propagate expected through a block' if block.nil?
|
30
|
-
raise ArgumentError, 'Block of arity 2 expected' unless block.arity==2
|
31
|
-
@propagate = block
|
32
|
-
end
|
33
|
-
|
34
|
-
# Computes the suppremum between two decorations. By default, this method
|
35
|
-
# looks for a suppremum function installed with set_suppremum. If not found,
|
36
|
-
# it tries calling a suppremum method on d0. If not found it raises an error.
|
37
|
-
# This method may be overriden.
|
38
|
-
def suppremum(d0, d1)
|
39
|
-
return @suppremum.call(d0, d1) if @suppremum
|
40
|
-
return d0.suppremum(d1) if d0.respond_to?(:suppremum)
|
41
|
-
raise "No suppremum function installed or implemented by decorations"
|
42
|
-
end
|
43
|
-
|
44
|
-
# Computes the propagation rule. By default, this method looks for a propagate
|
45
|
-
# function installed with set_propagate. If not found, it tries calling a +
|
46
|
-
# method on deco. If not found it raises an error.
|
47
|
-
# This method may be overriden.
|
48
|
-
def propagate(deco, edge)
|
49
|
-
return @propagate.call(deco, edge) if @propagate
|
50
|
-
return deco.+(edge) if deco.respond_to?(:+)
|
51
|
-
raise "No propagate function installed or implemented by decorations"
|
52
|
-
end
|
53
|
-
|
54
|
-
# Executes the propagation algorithm on a given automaton.
|
55
|
-
def execute(fa, bottom, d0)
|
56
|
-
# install initial decoration
|
57
|
-
fa.states.each do |s|
|
58
|
-
s[@decoration_key] = (s.initial? ? d0 : bottom)
|
59
|
-
end
|
60
|
-
|
61
|
-
# fix-point loop starting with initial states
|
62
|
-
to_explore = fa.initial_states
|
63
|
-
until to_explore.empty?
|
64
|
-
source = to_explore.pop
|
65
|
-
source.out_edges.each do |edge|
|
66
|
-
target = edge.target
|
67
|
-
p_decor = propagate(source[@decoration_key], edge)
|
68
|
-
p_decor = suppremum(target[@decoration_key], p_decor)
|
69
|
-
unless p_decor == target[@decoration_key]
|
70
|
-
target[@decoration_key] = p_decor
|
71
|
-
to_explore << target unless to_explore.include?(target)
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
fa
|
77
|
-
end
|
78
|
-
|
79
|
-
end # class Decorate
|
80
|
-
end # module Utils
|
81
|
-
end # module Stamina
|
data/lib/stamina/version.rb
DELETED
data/stamina.gemspec
DELETED
@@ -1,191 +0,0 @@
|
|
1
|
-
# We require your library, mainly to have access to the VERSION number.
|
2
|
-
# Feel free to set $version manually.
|
3
|
-
$LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
|
4
|
-
require "stamina/version"
|
5
|
-
$version = Stamina::Version.to_s
|
6
|
-
|
7
|
-
#
|
8
|
-
# This is your Gem specification. Default values are provided so that your library
|
9
|
-
# should be correctly packaged given what you have described in the .noespec file.
|
10
|
-
#
|
11
|
-
Gem::Specification.new do |s|
|
12
|
-
|
13
|
-
################################################################### ABOUT YOUR GEM
|
14
|
-
|
15
|
-
# Gem name (required)
|
16
|
-
s.name = "stamina"
|
17
|
-
|
18
|
-
# Gem version (required)
|
19
|
-
s.version = $version
|
20
|
-
|
21
|
-
# A short summary of this gem
|
22
|
-
#
|
23
|
-
# This is displayed in `gem list -d`.
|
24
|
-
s.summary = "Automaton and Regular Inference Toolkit"
|
25
|
-
|
26
|
-
# A long description of this gem (required)
|
27
|
-
#
|
28
|
-
# The description should be more detailed than the summary. For example,
|
29
|
-
# you might wish to copy the entire README into the description.
|
30
|
-
s.description = "Stamina is an automaton and regular inference toolkit initially developped for the baseline \nof the Stamina Competition (stamina.chefbe.net)."
|
31
|
-
|
32
|
-
# The URL of this gem home page (optional)
|
33
|
-
s.homepage = "http://stamina.chefbe.net/"
|
34
|
-
|
35
|
-
# Gem publication date (required but auto)
|
36
|
-
#
|
37
|
-
# Today is automatically used by default, uncomment only if
|
38
|
-
# you know what you do!
|
39
|
-
#
|
40
|
-
# s.date = Time.now.strftime('%Y-%m-%d')
|
41
|
-
|
42
|
-
# The license(s) for the library. Each license must be a short name, no
|
43
|
-
# more than 64 characters.
|
44
|
-
#
|
45
|
-
# s.licences = %w{}
|
46
|
-
|
47
|
-
# The rubyforge project this gem lives under (optional)
|
48
|
-
#
|
49
|
-
# s.rubyforge_project = nil
|
50
|
-
|
51
|
-
################################################################### ABOUT THE AUTHORS
|
52
|
-
|
53
|
-
# The list of author names who wrote this gem.
|
54
|
-
#
|
55
|
-
# If you are providing multiple authors and multiple emails they should be
|
56
|
-
# in the same order.
|
57
|
-
#
|
58
|
-
s.authors = ["Bernard Lambeau"]
|
59
|
-
|
60
|
-
# Contact emails for this gem
|
61
|
-
#
|
62
|
-
# If you are providing multiple authors and multiple emails they should be
|
63
|
-
# in the same order.
|
64
|
-
#
|
65
|
-
# NOTE: Somewhat strangly this attribute is always singular!
|
66
|
-
# Don't replace by s.emails = ...
|
67
|
-
s.email = ["blambeau@gmail.com"]
|
68
|
-
|
69
|
-
################################################################### PATHS, FILES, BINARIES
|
70
|
-
|
71
|
-
# Paths in the gem to add to $LOAD_PATH when this gem is
|
72
|
-
# activated (required).
|
73
|
-
#
|
74
|
-
# The default 'lib' is typically sufficient.
|
75
|
-
s.require_paths = ["lib"]
|
76
|
-
|
77
|
-
# Files included in this gem.
|
78
|
-
#
|
79
|
-
# By default, we take all files included in the Manifest.txt file on root
|
80
|
-
# of the project. Entries of the manifest are interpreted as Dir[...]
|
81
|
-
# patterns so that lazy people may use wilcards like lib/**/*
|
82
|
-
#
|
83
|
-
here = File.expand_path(File.dirname(__FILE__))
|
84
|
-
s.files = File.readlines(File.join(here, 'Manifest.txt')).
|
85
|
-
inject([]){|files, pattern| files + Dir[File.join(here, pattern.strip)]}.
|
86
|
-
collect{|x| x[(1+here.size)..-1]}
|
87
|
-
|
88
|
-
# Test files included in this gem.
|
89
|
-
#
|
90
|
-
s.test_files = Dir["test/**/*"] + Dir["spec/**/*"]
|
91
|
-
|
92
|
-
# The path in the gem for executable scripts (optional)
|
93
|
-
#
|
94
|
-
s.bindir = "bin"
|
95
|
-
|
96
|
-
# Executables included in the gem.
|
97
|
-
#
|
98
|
-
s.executables = (Dir["bin/*"]).collect{|f| File.basename(f)}
|
99
|
-
|
100
|
-
################################################################### REQUIREMENTS & INSTALL
|
101
|
-
# Remember the gem version requirements operators and schemes:
|
102
|
-
# = Equals version
|
103
|
-
# != Not equal to version
|
104
|
-
# > Greater than version
|
105
|
-
# < Less than version
|
106
|
-
# >= Greater than or equal to
|
107
|
-
# <= Less than or equal to
|
108
|
-
# ~> Approximately greater than
|
109
|
-
#
|
110
|
-
# Don't forget to have a look at http://lmgtfy.com/?q=Ruby+Versioning+Policies
|
111
|
-
# for setting your gem version.
|
112
|
-
#
|
113
|
-
# For your requirements to other gems, remember that
|
114
|
-
# ">= 2.2.0" (optimistic: specify minimal version)
|
115
|
-
# ">= 2.2.0", "< 3.0" (pessimistic: not greater than the next major)
|
116
|
-
# "~> 2.2" (shortcut for ">= 2.2.0", "< 3.0")
|
117
|
-
# "~> 2.2.0" (shortcut for ">= 2.2.0", "< 2.3.0")
|
118
|
-
#
|
119
|
-
|
120
|
-
#
|
121
|
-
# One call to add_dependency('gem_name', 'gem version requirement') for each
|
122
|
-
# runtime dependency. These gems will be installed with your gem.
|
123
|
-
# One call to add_development_dependency('gem_name', 'gem version requirement')
|
124
|
-
# for each development dependency. These gems are required for developers
|
125
|
-
#
|
126
|
-
s.add_development_dependency("rake", "~> 0.8.7")
|
127
|
-
s.add_development_dependency("bundler", "~> 1.0")
|
128
|
-
s.add_development_dependency("rspec", "~> 2.4.0")
|
129
|
-
s.add_development_dependency("yard", "~> 0.6.4")
|
130
|
-
s.add_development_dependency("bluecloth", "~> 2.0.9")
|
131
|
-
s.add_development_dependency("wlang", "~> 0.10.1")
|
132
|
-
s.add_development_dependency("gnuplot", "~> 2.3.6")
|
133
|
-
s.add_dependency("quickl", "~> 0.2.0")
|
134
|
-
|
135
|
-
# The version of ruby required by this gem
|
136
|
-
#
|
137
|
-
# Uncomment and set this if your gem requires specific ruby versions.
|
138
|
-
#
|
139
|
-
# s.required_ruby_version = ">= 0"
|
140
|
-
|
141
|
-
# The RubyGems version required by this gem
|
142
|
-
#
|
143
|
-
# s.required_rubygems_version = ">= 0"
|
144
|
-
|
145
|
-
# The platform this gem runs on. See Gem::Platform for details.
|
146
|
-
#
|
147
|
-
# s.platform = nil
|
148
|
-
|
149
|
-
# Extensions to build when installing the gem.
|
150
|
-
#
|
151
|
-
# Valid types of extensions are extconf.rb files, configure scripts
|
152
|
-
# and rakefiles or mkrf_conf files.
|
153
|
-
#
|
154
|
-
s.extensions = []
|
155
|
-
|
156
|
-
# External (to RubyGems) requirements that must be met for this gem to work.
|
157
|
-
# It’s simply information for the user.
|
158
|
-
#
|
159
|
-
s.requirements = nil
|
160
|
-
|
161
|
-
# A message that gets displayed after the gem is installed
|
162
|
-
#
|
163
|
-
# Uncomment and set this if you want to say something to the user
|
164
|
-
# after gem installation
|
165
|
-
#
|
166
|
-
s.post_install_message = nil
|
167
|
-
|
168
|
-
################################################################### SECURITY
|
169
|
-
|
170
|
-
# The key used to sign this gem. See Gem::Security for details.
|
171
|
-
#
|
172
|
-
# s.signing_key = nil
|
173
|
-
|
174
|
-
# The certificate chain used to sign this gem. See Gem::Security for
|
175
|
-
# details.
|
176
|
-
#
|
177
|
-
# s.cert_chain = []
|
178
|
-
|
179
|
-
################################################################### RDOC
|
180
|
-
|
181
|
-
# An ARGV style array of options to RDoc
|
182
|
-
#
|
183
|
-
# See 'rdoc --help' about this
|
184
|
-
#
|
185
|
-
s.rdoc_options = []
|
186
|
-
|
187
|
-
# Extra files to add to RDoc such as README
|
188
|
-
#
|
189
|
-
s.extra_rdoc_files = Dir["README.md"] + Dir["CHANGELOG.md"] + Dir["LICENCE.md"]
|
190
|
-
|
191
|
-
end
|
data/stamina.noespec
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
# Noe template for ruby gem libraries (https://github.com/blambeau/noe) - short version
|
2
|
-
# Run 'noe show-spec' and 'noe help show-spec' for additional details.
|
3
|
-
template-info:
|
4
|
-
name: "ruby"
|
5
|
-
version: 1.3.0
|
6
|
-
variables:
|
7
|
-
lower:
|
8
|
-
stamina
|
9
|
-
upper:
|
10
|
-
Stamina
|
11
|
-
version:
|
12
|
-
0.4.0
|
13
|
-
summary: |-
|
14
|
-
Automaton and Regular Inference Toolkit
|
15
|
-
description: |-
|
16
|
-
Stamina is an automaton and regular inference toolkit initially developped for the baseline
|
17
|
-
of the Stamina Competition (stamina.chefbe.net).
|
18
|
-
authors:
|
19
|
-
- name: Bernard Lambeau
|
20
|
-
email: blambeau@gmail.com
|
21
|
-
links:
|
22
|
-
- http://stamina.chefbe.net/
|
23
|
-
- http://github.com/blambeau/stamina
|
24
|
-
dependencies:
|
25
|
-
- {name: quickl, version: "~> 0.2.0", groups: [runtime]}
|
26
|
-
- {name: rake, version: "~> 0.8.7", groups: [development]}
|
27
|
-
- {name: bundler, version: "~> 1.0", groups: [development]}
|
28
|
-
- {name: rspec, version: "~> 2.4.0", groups: [development]}
|
29
|
-
- {name: yard, version: "~> 0.6.4", groups: [development]}
|
30
|
-
- {name: bluecloth, version: "~> 2.0.9", groups: [development]}
|
31
|
-
- {name: wlang, version: "~> 0.10.1", groups: [development]}
|
32
|
-
- {name: gnuplot, version: "~> 2.3.6", groups: [development]}
|
data/tasks/debug_mail.rake
DELETED
@@ -1,78 +0,0 @@
|
|
1
|
-
# Installs a rake task for debuging the announcement mail.
|
2
|
-
#
|
3
|
-
# This file installs the 'rake debug_mail' that flushes an announcement mail
|
4
|
-
# for your library on the standard output. It is automatically generated
|
5
|
-
# by Noe from your .noespec file, and should therefore be configured there,
|
6
|
-
# under the variables/rake_tasks/debug_mail entry, as illustrated below:
|
7
|
-
#
|
8
|
-
# variables:
|
9
|
-
# rake_tasks:
|
10
|
-
# debug_mail:
|
11
|
-
# rx_changelog_sections: /^#/
|
12
|
-
# nb_changelog_sections: 1
|
13
|
-
# ...
|
14
|
-
#
|
15
|
-
# If you have specific needs requiring manual intervention on this file,
|
16
|
-
# don't forget to set safe-override to false in your noe specification:
|
17
|
-
#
|
18
|
-
# template-info:
|
19
|
-
# manifest:
|
20
|
-
# tasks/debug_mail.rake:
|
21
|
-
# safe-override: false
|
22
|
-
#
|
23
|
-
# The mail template used can be found in debug_mail.txt. That file may be
|
24
|
-
# changed to tune the mail you want to send. If you do so, don't forget to
|
25
|
-
# add a manifest entry in your .noespec file to avoid overriding you
|
26
|
-
# changes. The mail template uses wlang, with parentheses for block
|
27
|
-
# delimiters.
|
28
|
-
#
|
29
|
-
# template-info:
|
30
|
-
# manifest:
|
31
|
-
# tasks/debug_mail.txt:
|
32
|
-
# safe-override: false
|
33
|
-
#
|
34
|
-
begin
|
35
|
-
require 'wlang'
|
36
|
-
require 'yaml'
|
37
|
-
|
38
|
-
desc "Debug the release announcement mail"
|
39
|
-
task :debug_mail do
|
40
|
-
# Check that a .noespec file exists
|
41
|
-
noespec_file = File.expand_path('../../stamina.noespec', __FILE__)
|
42
|
-
unless File.exists?(noespec_file)
|
43
|
-
raise "Unable to find .noespec project file, sorry."
|
44
|
-
end
|
45
|
-
|
46
|
-
# Load it as well as variables and options
|
47
|
-
noespec = YAML::load(File.read(noespec_file))
|
48
|
-
vars = noespec['variables'] || {}
|
49
|
-
|
50
|
-
# Changes are taken from CHANGELOG
|
51
|
-
logs = Dir[File.expand_path("../../CHANGELOG.*", __FILE__)]
|
52
|
-
unless logs.size == 1
|
53
|
-
abort "Unable to find a changelog file"
|
54
|
-
end
|
55
|
-
|
56
|
-
# Load interesting changesets
|
57
|
-
changes, end_found = [], 0
|
58
|
-
File.readlines(logs.first).select{|line|
|
59
|
-
if line =~ /^#/
|
60
|
-
break if end_found >= 1
|
61
|
-
end_found += 1
|
62
|
-
end
|
63
|
-
changes << line
|
64
|
-
}
|
65
|
-
vars['changes'] = changes.join
|
66
|
-
|
67
|
-
# WLang template
|
68
|
-
template = File.expand_path('../debug_mail.txt', __FILE__)
|
69
|
-
|
70
|
-
# Let's go!
|
71
|
-
$stdout << WLang::file_instantiate(template, vars, "wlang/active-text")
|
72
|
-
end
|
73
|
-
|
74
|
-
rescue LoadError
|
75
|
-
task :debug_mail do
|
76
|
-
abort "wlang is not available. Try 'gem install wlang'"
|
77
|
-
end
|
78
|
-
end
|
data/tasks/debug_mail.txt
DELETED
data/tasks/gem.rake
DELETED
@@ -1,68 +0,0 @@
|
|
1
|
-
# Installs rake tasks for gemming and packaging
|
2
|
-
#
|
3
|
-
# This file installs the 'rake package', 'rake gem' tasks and associates
|
4
|
-
# (clobber_package, repackage, ...). It is automatically generated by Noe
|
5
|
-
# from your .noespec file, and should therefore be configured there, under
|
6
|
-
# the variables/rake_tasks/gem entry, as illustrated below:
|
7
|
-
#
|
8
|
-
# variables:
|
9
|
-
# rake_tasks:
|
10
|
-
# gem:
|
11
|
-
# package_dir: pkg
|
12
|
-
# need_tar: false
|
13
|
-
# need_tar_gz: false
|
14
|
-
# need_tar_bz2: false
|
15
|
-
# need_zip: false
|
16
|
-
# ...
|
17
|
-
#
|
18
|
-
# If you have specific needs requiring manual intervention on this file,
|
19
|
-
# don't forget to set safe-override to false in your noe specification:
|
20
|
-
#
|
21
|
-
# template-info:
|
22
|
-
# manifest:
|
23
|
-
# tasks/gem.rake:
|
24
|
-
# safe-override: false
|
25
|
-
#
|
26
|
-
begin
|
27
|
-
require 'rubygems/package_task'
|
28
|
-
Gem::PackageTask.new($gemspec) do |t|
|
29
|
-
|
30
|
-
# Name of the package
|
31
|
-
t.name = $gemspec.name
|
32
|
-
|
33
|
-
# Version of the package
|
34
|
-
t.version = $gemspec.version
|
35
|
-
|
36
|
-
# Directory used to store the package files
|
37
|
-
t.package_dir = "pkg"
|
38
|
-
|
39
|
-
# True if a gzipped tar file (tgz) should be produced
|
40
|
-
t.need_tar = false
|
41
|
-
|
42
|
-
# True if a gzipped tar file (tar.gz) should be produced
|
43
|
-
t.need_tar_gz = false
|
44
|
-
|
45
|
-
# True if a bzip2'd tar file (tar.bz2) should be produced
|
46
|
-
t.need_tar_bz2 = false
|
47
|
-
|
48
|
-
# True if a zip file should be produced (default is false)
|
49
|
-
t.need_zip = false
|
50
|
-
|
51
|
-
# List of files to be included in the package.
|
52
|
-
t.package_files = $gemspec.files
|
53
|
-
|
54
|
-
# Tar command for gzipped or bzip2ed archives.
|
55
|
-
t.tar_command = "tar"
|
56
|
-
|
57
|
-
# Zip command for zipped archives.
|
58
|
-
t.zip_command = "zip"
|
59
|
-
|
60
|
-
end
|
61
|
-
rescue LoadError
|
62
|
-
task :gem do
|
63
|
-
abort 'rubygems/package_task is not available. You should verify your rubygems installation'
|
64
|
-
end
|
65
|
-
task :package do
|
66
|
-
abort 'rubygems/package_task is not available. You should verify your rubygems installation'
|
67
|
-
end
|
68
|
-
end
|