runt 0.3.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/CHANGES CHANGED
@@ -1,71 +1,107 @@
1
- = Runt Changelog
2
-
3
- == Version 0.3.0
4
-
5
- * TExpr (finally!) becomes a Module instead of a superclass
6
-
7
- * Added overlap? method for all temporal expressions and DateRange
8
-
9
- * Added REMonth expression which matches a range of dates each month
10
-
11
- * Contributed by Emmett Shear: TExpr#dates method which returns an array of dates occurring within the supplied DateRange
12
-
13
- * Rakefile fixes:
14
- - test path allow gem to be installed with -t switch
15
- - usage of gzip which will break on Win32
16
-
17
- * Removed and then subsequently restored SpecTE
18
-
19
- * General clean-up, including:
20
- - renamed several methods on PDate
21
- - renamed 'dateprecisiontest.rb' to 'dprecisiontest.rb'
22
-
23
- * Fixed Object.id deprecation warning
24
-
25
-
26
- == Version 0.2.0
27
-
28
- * Fixed Schedule class
29
- * Renamed Schedule#is_occurring? to Schedule#include?
30
- * RAA deployment
31
- * GEM deployment
32
- * Renamed file dateprecisiontest.rb to dprecisiontest.rb
33
- * Renamed several methods on PDate:
34
- - second -> sec
35
- - minute -> min
36
- - hour_of_day -> hour
37
- - day_of_month -> day
38
-
39
- == Version 0.1.0
40
-
41
- * Inspired by suggestions[http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/95465] on c.l.r., did massive renaming and refactoring to make source more Ruby-esque:
42
-
43
- - TemporalExpression class => TExpr
44
- - DatePrecision module => DPrecision (file name changed also)
45
- - TimePoint class => PDate (file name changed also)
46
- - Added transparent use of bitwise set operators ( & , | ) for building composite expressions
47
- - Added transparent use of - operator for diff expressions
48
-
49
- * Updated TE Tutorial to reflect new and improved syntax usage
50
- * Skipped several version numbers to celebrate
51
-
52
- == Version 0.0.6
53
-
54
- * TE Tutorial
55
- * Website beautification
56
- * Credits
57
-
58
- == Version 0.0.4
59
-
60
- * Improved Rake[http://rake.rubyforge.org] support
61
- * Better documentation: README, TODO, CHANGES, etc.
62
- * More Ruby-like source code layout and code organization inspired by Rake[http://rake.rubyforge.org] distribution
63
- * Dropped the obviously superfluous 'alpha' from versioning
64
-
65
- == Version 0.0.1
66
-
67
- * Learned Ruby (or began trying, at any rate...)
68
- * RubyForge project setup
69
- * Basic implementation of the Java-based chronicJ[http://chronicJ.org] functionality in Ruby
70
-
71
-
1
+ = Runt Changelog
2
+
3
+ == Version 0.5.0
4
+
5
+ * Refactored Schedule implementation which greatly simplifies customization but does potentially break existing clients who relied on the ability to call add mulitple times (SEE BELOW)
6
+
7
+ * Added update method to Schedule allowing clients to update existing expressions
8
+
9
+ * Added select method to Schedule allowing clients to query Events using arbitrary criteria
10
+
11
+ * Added events method to Schedule which returns an Array of the currrently held Events
12
+
13
+ * Added time-related shortcuts to Runt module contributed by Ara T. Howard
14
+
15
+ * Added ability to work with Time class contributed by Paul Wright
16
+
17
+ * Implemented meaningful to_s methods for TExpr classes
18
+
19
+ * Added include? method to Standard Library Date class allowing Spec class better interaction with other expressions
20
+
21
+ * Applied patch to fix PDate serialization bug contributed by Jodi Showers
22
+
23
+ * Added BeforeTE, AfterTE, enhanced TExpr#dates method, RFC2445 (iCalendar) compliance unit test, contributed by Larry Karnowski
24
+
25
+ * Applied patch by Gordon Thiesfeld which fixes broken Time class compatibility
26
+
27
+ * Applied patch by Gordon Thiesfeld which allows REWeek expressions to span across two weeks
28
+
29
+ * Removed unused context.rb and contexttest.rb
30
+
31
+ * Removed unnecessary test suite alltests.rb
32
+
33
+ == Version 0.4.0
34
+
35
+ * Added DayIntervalTE contributed by Ira Burton which matches every n days past a given date
36
+
37
+ * Added YearTE requested by Pat Maddox
38
+
39
+ == Version 0.3.0
40
+
41
+ * TExpr (finally!) becomes a Module instead of a superclass
42
+
43
+ * Added overlap? method for all temporal expressions and DateRange
44
+
45
+ * Added REMonth expression which matches a range of dates each month
46
+
47
+ * Contributed by Emmett Shear: TExpr#dates method which returns an array of dates occurring within the supplied DateRange
48
+
49
+ * Rakefile fixes:
50
+ - test path allow gem to be installed with -t switch
51
+ - usage of gzip which will break on Win32
52
+
53
+ * Removed and then subsequently restored SpecTE
54
+
55
+ * General clean-up, including:
56
+ - renamed several methods on PDate
57
+ - renamed 'dateprecisiontest.rb' to 'dprecisiontest.rb'
58
+
59
+ * Fixed Object.id deprecation warning
60
+
61
+
62
+ == Version 0.2.0
63
+
64
+ * Fixed Schedule class
65
+ * Renamed Schedule#is_occurring? to Schedule#include?
66
+ * RAA deployment
67
+ * GEM deployment
68
+ * Renamed file dateprecisiontest.rb to dprecisiontest.rb
69
+ * Renamed several methods on PDate:
70
+ - second -> sec
71
+ - minute -> min
72
+ - hour_of_day -> hour
73
+ - day_of_month -> day
74
+
75
+ == Version 0.1.0
76
+
77
+ * Inspired by suggestions[http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/95465] on c.l.r., did massive renaming and refactoring to make source more Ruby-esque:
78
+
79
+ - TemporalExpression class => TExpr
80
+ - DatePrecision module => DPrecision (file name changed also)
81
+ - TimePoint class => PDate (file name changed also)
82
+ - Added transparent use of bitwise set operators ( & , | ) for building composite expressions
83
+ - Added transparent use of - operator for diff expressions
84
+
85
+ * Updated TE Tutorial to reflect new and improved syntax usage
86
+ * Skipped several version numbers to celebrate
87
+
88
+ == Version 0.0.6
89
+
90
+ * TE Tutorial
91
+ * Website beautification
92
+ * Credits
93
+
94
+ == Version 0.0.4
95
+
96
+ * Improved Rake[http://rake.rubyforge.org] support
97
+ * Better documentation: README, TODO, CHANGES, etc.
98
+ * More Ruby-like source code layout and code organization inspired by Rake[http://rake.rubyforge.org] distribution
99
+ * Dropped the obviously superfluous 'alpha' from versioning
100
+
101
+ == Version 0.0.1
102
+
103
+ * Learned Ruby (or began trying, at any rate...)
104
+ * RubyForge project setup
105
+ * Basic implementation of the Java-based chronicJ[http://chronicJ.org] functionality in Ruby
106
+
107
+
@@ -1,44 +1,44 @@
1
- The Apache Software License, Version 1.1
2
-
3
- Copyright (c) 2003-2004 Digital Clash LLC. All rights
4
- reserved.
5
-
6
- Redistribution and use in source and binary forms, with or without
7
- modification, are permitted provided that the following conditions
8
- are met:
9
-
10
- 1. Redistributions of source code must retain the above copyright
11
- notice, this list of conditions and the following disclaimer.
12
-
13
- 2. Redistributions in binary form must reproduce the above copyright
14
- notice, this list of conditions and the following disclaimer in
15
- the documentation and/or other materials provided with the
16
- distribution.
17
-
18
- 3. The end-user documentation included with the redistribution,
19
- if any, must include the following acknowledgment:
20
- "This product includes software developed by the
21
- Runt team (http://runt.rubyforge.org/)."
22
- Alternately, this acknowledgment may appear in the software itself,
23
- if and wherever such third-party acknowledgments normally appear.
24
-
25
- 4. The names "Runt" and "Digital Clash" not be used to endorse or
26
- promote products derived from this software without prior written
27
- permission. For written permission, please contact
28
- info@digitalclash.com.
29
-
30
- 5. Products derived from this software may not be called "Runt",
31
- "Digital Clash", nor may "Runt" or "Digital Clash" appear in
32
- their name, without prior written permission of Digital Clash LLC.
33
-
34
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
35
- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
36
- OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
37
- DISCLAIMED. IN NO EVENT SHALL DIGITAL CLASH LLC OR ITS CONTRIBUTORS
38
- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
39
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
40
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
41
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
42
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
43
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
1
+ The Apache Software License, Version 1.1
2
+
3
+ Copyright (c) 2003-2004 Digital Clash LLC. All rights
4
+ reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions
8
+ are met:
9
+
10
+ 1. Redistributions of source code must retain the above copyright
11
+ notice, this list of conditions and the following disclaimer.
12
+
13
+ 2. Redistributions in binary form must reproduce the above copyright
14
+ notice, this list of conditions and the following disclaimer in
15
+ the documentation and/or other materials provided with the
16
+ distribution.
17
+
18
+ 3. The end-user documentation included with the redistribution,
19
+ if any, must include the following acknowledgment:
20
+ "This product includes software developed by the
21
+ Runt team (http://runt.rubyforge.org/)."
22
+ Alternately, this acknowledgment may appear in the software itself,
23
+ if and wherever such third-party acknowledgments normally appear.
24
+
25
+ 4. The names "Runt" and "Digital Clash" not be used to endorse or
26
+ promote products derived from this software without prior written
27
+ permission. For written permission, please contact
28
+ info@digitalclash.com.
29
+
30
+ 5. Products derived from this software may not be called "Runt",
31
+ "Digital Clash", nor may "Runt" or "Digital Clash" appear in
32
+ their name, without prior written permission of Digital Clash LLC.
33
+
34
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
35
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
36
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
37
+ DISCLAIMED. IN NO EVENT SHALL DIGITAL CLASH LLC OR ITS CONTRIBUTORS
38
+ BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
39
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
40
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
41
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
42
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
43
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
44
44
  THE POSSIBILITY OF SUCH DAMAGE.
data/README CHANGED
@@ -1,94 +1,100 @@
1
- = RUNT -- Ruby Temporal Expressions
2
-
3
- * Runt is a Ruby[http://www.ruby-lang.org/en/] implementation of select Martin Fowler patterns[http://www.martinfowler.com/articles].
4
-
5
- * <em>TemporalExpression</em>s allow a developer to define patterns of date recurrence using set expressions.
6
-
7
- ---
8
-
9
- = INSTALL
10
-
11
- * gem install runt
12
-
13
- <b>or</b>
14
-
15
- * Unpack the Runt distribution.
16
-
17
- $ tar -xzvf runt-<version>.tar.gz
18
-
19
- * cd $UNPACK_DIR/runt/
20
-
21
- * execute:
22
-
23
- $ ruby setup.rb config
24
- $ ruby setup.rb setup
25
- $ ruby setup.rb install (may require root privilege)
26
-
27
- <b>or</b>
28
-
29
- $ ruby setup.rb --help
30
-
31
- for more options.
32
-
33
- ---
34
-
35
- = QUICK START
36
-
37
- * require 'runt'
38
-
39
- * See Runt website[http://runt.rubyforge.org].
40
-
41
- * See $UNPACK_DIR/runt/test/*.rb for example usage.
42
-
43
- * See this mini-TemporalExpression tutorial[http://runt.rubyforge.org/doc/files/doc/tutorial_te_rdoc.html]
44
-
45
- * See http://www.chronicj.org/apidocs/index.html for better commented source (JavaDoc)
46
-
47
- Get in touch if you have questions or if Runt causes your computer to burst into flames...
48
-
49
- Matt[mailto:matt@digitalclash.com]
50
-
51
- ---
52
-
53
- == Credits
54
-
55
- Rubyforge[http://rubyforge.org] for hosting this project.
56
-
57
- M.Fowler[http://martinfowler.com], Matz[http://ruby-lang.org],
58
- T.Funaba (Date/DateTime[http://www.funaba.org/en/ruby.html]),
59
- J.Weirich (Rake[http://rake.rubyforge.org]),
60
- PragmaticProgrammers[http://pragmaticprogrammer.com], and everyone on
61
- ruby-talk[mailto:ruby-talk@ruby-lang.org] for their shameless public display
62
- of smartness.
63
-
64
- Hal Fulton, Mauricio Fernandez, and Mark Hubbart for the
65
- thread[http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/95465] on c.l.r.
66
- that inspired a more Ruby-esque syntax for creating TE's. 2X Thanks to Hal, for
67
- taking the time to exchange ideas off-line.
68
-
69
- The ruby-nyc user's group for their suggestions and feedback.
70
-
71
- BlueRobot[http://www.bluerobot.com/web/layouts/] for the CSS used to prettify the Runt website.
72
-
73
- Emmett Shear for contributed TExpr#dates code and several thought-provoking feature requests.
74
-
75
- The number 12, and the letters E, J, and B.
76
-
77
- ---
78
-
79
- = Etc...
80
-
81
- Author:: Matthew Lipper <matt@digitalclash.com>
82
- Requires:: Ruby 1.8.0 or later, Date/DateTime classes
83
- License:: Copyright 2004 by Digital Clash LLC.
84
- Released under the Apache Software license (see LICENSE.txt)
85
- included in the distribution.
86
-
87
- = Warranty
88
-
89
- This software is provided "as is" and without any express or
90
- implied warranties, including, without limitation, the implied
91
- warranties of merchantibility and fitness for a particular
92
- purpose.
93
-
94
- link://../dcl-small.gif
1
+ = RUNT -- Ruby Temporal Expressions
2
+
3
+ * Runt is a Ruby[http://www.ruby-lang.org/en/] implementation of select Martin Fowler patterns[http://www.martinfowler.com/articles].
4
+
5
+ * <em>TemporalExpression</em>s allow a developer to define patterns of date recurrence using set expressions.
6
+
7
+ = INSTALL
8
+
9
+ * gem install runt
10
+
11
+ <b>or</b>
12
+
13
+ * Unpack the Runt distribution.
14
+
15
+ $ tar -xzvf runt-<version>.tar.gz
16
+
17
+ * cd $UNPACK_DIR/runt/
18
+
19
+ * execute:
20
+
21
+ $ ruby setup.rb config
22
+ $ ruby setup.rb setup
23
+ $ ruby setup.rb install (may require root privilege)
24
+
25
+ <b>or</b>
26
+
27
+ $ ruby setup.rb --help
28
+
29
+ for more options.
30
+
31
+ = QUICK START
32
+
33
+ * require 'runt'
34
+
35
+ * See Runt website[http://runt.rubyforge.org].
36
+
37
+ * See $UNPACK_DIR/runt/test/*.rb for example usage.
38
+
39
+ * See this mini-TemporalExpression tutorial[http://runt.rubyforge.org/doc/files/doc/tutorial_te_rdoc.html]
40
+
41
+ * See http://chronicj.digitalclash.com/apidocs/index.html for commented Java source (JavaDoc)
42
+
43
+ Get in touch if you have questions or if Runt causes your computer to burst into flames...
44
+
45
+ Matt[mailto:mlipper@gmail.com]
46
+
47
+ == Credits
48
+
49
+ Rubyforge[http://rubyforge.org] for hosting this project.
50
+
51
+ M.Fowler[http://martinfowler.com], Matz[http://ruby-lang.org],
52
+ T.Funaba (Date/DateTime[http://www.funaba.org/en/ruby.html]),
53
+ J.Weirich (Rake[http://rake.rubyforge.org]),
54
+ PragmaticProgrammers[http://pragmaticprogrammer.com], and everyone on
55
+ ruby-talk[mailto:ruby-talk@ruby-lang.org] for their shameless public display
56
+ of smartness.
57
+
58
+ Hal Fulton, Mauricio Fernandez, and Mark Hubbart for the
59
+ thread[http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/95465] on c.l.r.
60
+ that inspired a more Ruby-esque syntax for creating TE's. 2X Thanks to Hal, for
61
+ taking the time to exchange ideas off-line.
62
+
63
+ The ruby-nyc user's group for their suggestions and feedback.
64
+
65
+ BlueRobot[http://www.bluerobot.com/web/layouts/] for the CSS used to prettify the Runt website.
66
+
67
+ Emmett Shear for contributed TExpr#dates code and several thought-provoking feature requests.
68
+
69
+ Ira Burton for contributed DayIntervalTE class.
70
+
71
+ Jodi Showers for serialization bug fix.
72
+
73
+ Pat Maddox for YearTE.
74
+
75
+ Paul Wright for Time class compatibility.
76
+
77
+ Ara T. Howard for Numeric class extensions.
78
+
79
+ Larry Karnowski for BeforeTE, AfterTE, TExpr#dates enhancements, RFC2445 (iCalendar) compliance tests.
80
+
81
+ Gordon Thiesfeld for fixed Time integration and extended REWeek functionality
82
+
83
+ The number 12, and the letters E, J, and B.
84
+
85
+ = Etc...
86
+
87
+ Author:: Matthew Lipper <mlipper@gmail.com>
88
+ Requires:: Ruby 1.8.0 or later, Date/DateTime classes
89
+ License:: Copyright 2004 by Digital Clash LLC.
90
+ Released under the Apache Software license (see LICENSE.txt)
91
+ included in the distribution.
92
+
93
+ = Warranty
94
+
95
+ This software is provided "as is" and without any express or
96
+ implied warranties, including, without limitation, the implied
97
+ warranties of merchantibility and fitness for a particular
98
+ purpose.
99
+
100
+ link://../dcl-small.gif