texp 0.0.3 → 0.0.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.
- data/ChangeLog +36 -2
- data/README +92 -0
- data/Rakefile +26 -1
- data/TAGS +369 -0
- data/lib/texp.rb +6 -1
- data/lib/texp/base.rb +139 -10
- data/lib/texp/builder.rb +254 -0
- data/lib/texp/day_interval.rb +19 -15
- data/lib/texp/day_of_month.rb +1 -7
- data/lib/texp/day_of_week.rb +1 -7
- data/lib/texp/dsl.rb +338 -0
- data/lib/texp/errors.rb +18 -0
- data/lib/texp/every_day.rb +1 -5
- data/lib/texp/logic.rb +16 -40
- data/lib/texp/month.rb +1 -6
- data/lib/texp/operators.rb +53 -0
- data/lib/texp/parse.rb +9 -27
- data/lib/texp/time_ext.rb +7 -0
- data/lib/texp/version.rb +3 -0
- data/lib/texp/week.rb +1 -7
- data/lib/texp/window.rb +30 -12
- data/lib/texp/year.rb +1 -6
- data/test/texp/base_test.rb +82 -0
- data/test/texp/day_interval_test.rb +24 -12
- data/test/texp/day_of_month_test.rb +10 -10
- data/test/texp/day_of_week_test.rb +14 -14
- data/test/texp/dsl_test.rb +288 -0
- data/test/texp/every_day_test.rb +1 -1
- data/test/texp/ext_test.rb +3 -3
- data/test/texp/logic_test.rb +18 -18
- data/test/texp/month_test.rb +3 -3
- data/test/texp/operators_test.rb +52 -0
- data/test/texp/parse_test.rb +39 -39
- data/test/texp/time_ext_test.rb +8 -0
- data/test/texp/week_test.rb +19 -19
- data/test/texp/window_test.rb +41 -12
- data/test/texp/year_test.rb +7 -7
- data/test/texp_tests.rb +27 -0
- metadata +14 -6
- data/lib/texp/core.rb +0 -41
- data/lib/texp/hash_builder.rb +0 -44
- data/test/texp/hash_test.rb +0 -26
- data/test/texp/logic_text_test.rb +0 -0
data/ChangeLog
CHANGED
@@ -1,8 +1,42 @@
|
|
1
|
+
2008-03-08 Jim Weirich <jim@tardis.local>
|
2
|
+
|
3
|
+
* lib/texp/dsl.rb (TExp::DSL): Added DSL like methods to TExp and
|
4
|
+
texp { ... }.
|
5
|
+
|
6
|
+
* lib/texp/version.rb (TExp): Bumped to version 0.0.7
|
7
|
+
|
8
|
+
* Rakefile (RCov): Added an rcov task. Removed a number of unused
|
9
|
+
functions.
|
10
|
+
|
11
|
+
* (svn): Removed to_hash for now, may revisit later. Removed
|
12
|
+
core.rb.
|
13
|
+
|
14
|
+
* lib/texp/day_interval.rb (TExp::DayInterval::include): Interval
|
15
|
+
now properaly handling intervals without start dates.
|
16
|
+
|
17
|
+
* lib/texp/operators.rb (TExp::Base): Added operators.
|
18
|
+
|
19
|
+
2008-03-07 Jim Weirich <jim@tardis.local>
|
20
|
+
|
21
|
+
* lib/texp/base.rb (TExp::SingleTermBase): Created a
|
22
|
+
SingleTermBase class and moved all base classes into base.rb.
|
23
|
+
(TExp::SingleTermBase::each): Added Enumerable to TExp.
|
24
|
+
(TExp::Base::reanchor): Renamed set_anchor_date to reanchor.
|
25
|
+
Temporal Expressions are now immutable value objects.
|
26
|
+
|
27
|
+
* Rakefile (Tags): Added a TExp::VERSION constant (and bumped to
|
28
|
+
version 0.0.6).
|
29
|
+
|
30
|
+
* lib/texp/day_interval.rb (TExp::DayInterval::set_anchor_date):
|
31
|
+
Added set_anchor_date to temporal expressions.
|
32
|
+
|
1
33
|
2008-03-06 Jim Weirich <jim@tardis.local>
|
2
34
|
|
3
|
-
* Rakefile
|
35
|
+
* Rakefile: Beefed up README. Bumped to verison 0.0.4.
|
36
|
+
|
37
|
+
* Rakefile: Bumped Version to 0.0.3.
|
4
38
|
|
5
|
-
*
|
39
|
+
* Added addition RDocs.
|
6
40
|
|
7
41
|
* lib/texp/hash_builder.rb (TExp::HashBuilder): Moved the hash
|
8
42
|
builder to its own file.
|
data/README
CHANGED
@@ -1,2 +1,94 @@
|
|
1
|
+
= Temporal Expressions for Ruby
|
2
|
+
|
1
3
|
TExp is a temporal expression library for Ruby with a modular,
|
2
4
|
extensible expression serialization language.
|
5
|
+
|
6
|
+
Temporal expressions are a way of concisely expressing recuring
|
7
|
+
events. For example, Christmas falls on the 25th of December every
|
8
|
+
year. A temporal expression that represented the recurring event
|
9
|
+
called "Christmas" would return true for any date that falls on the
|
10
|
+
25th of December.
|
11
|
+
|
12
|
+
dec25 = Date.parse("Dec 25, 2008")
|
13
|
+
christmas_texp.includes?(dec25) # => true
|
14
|
+
christmas_texp.includes?(dec25 + 1) # => false
|
15
|
+
|
16
|
+
Temporal expressions can be combined using operators. For example, if
|
17
|
+
I have a temporal expression for Christmas and one for Thanksgiving, I
|
18
|
+
can combine them into a single holiday expression thusly:
|
19
|
+
|
20
|
+
holidays_texp = christmas_texp + thanksgiving_texp
|
21
|
+
|
22
|
+
== +TExp+ Features
|
23
|
+
|
24
|
+
* Basic Expressions for:
|
25
|
+
* Day of Week (see DayOfWeek)
|
26
|
+
* Day of Month (see DayOfMonth)
|
27
|
+
* Week of Month (See Week)
|
28
|
+
* Speicifc Month (See Month)
|
29
|
+
* Specific Year (See Year)
|
30
|
+
|
31
|
+
* Composite Expressions for:
|
32
|
+
* Logical AND (date must be included by all sub-expressions)
|
33
|
+
* Logical OR (date is included by any sub-expression)
|
34
|
+
* Logical NOT (include any date not included in the sub-expression)
|
35
|
+
* Windows (specify a windows of days around any date matching the sub-expression)
|
36
|
+
|
37
|
+
* Human readable descriptions via inspect
|
38
|
+
|
39
|
+
* Compact, parsable encoding via to_s
|
40
|
+
|
41
|
+
* User expandable with custom temporal expression types, that
|
42
|
+
interoperates with the compact, parsable encoding.
|
43
|
+
|
44
|
+
== Examples
|
45
|
+
|
46
|
+
=== Match any Monday
|
47
|
+
|
48
|
+
te = TExp::DayOfWeek.new(Date::DAYNAMES.index("Monday"))
|
49
|
+
te.include?(Date.parse("Mar 3, 2008")) # => true
|
50
|
+
te.include?(Date.parse("Mar 4, 2008")) # => false
|
51
|
+
te.include?(Date.parse("Mar 10, 2008")) # => true
|
52
|
+
|
53
|
+
=== Match any date in March
|
54
|
+
|
55
|
+
te = TExp::Month.new(3)
|
56
|
+
te.include?(Date.parse("Mar 1, 2008")) # => true
|
57
|
+
te.include?(Date.parse("Mar 31, 2008")) # => true
|
58
|
+
te.include?(Date.parse("Mar 15, 1995")) # => true
|
59
|
+
|
60
|
+
te.include?(Date.parse("Feb 28, 2008")) # => false
|
61
|
+
|
62
|
+
=== Match Valentine's day (any year)
|
63
|
+
|
64
|
+
te = TExp::And.new(
|
65
|
+
TExp::DayOfMonth.new(14),
|
66
|
+
TExp::Month.new(2))
|
67
|
+
|
68
|
+
te.include?(Date.parse("Feb 14, 2008")) # => true
|
69
|
+
te.include?(Date.parse("Feb 14, 2007")) # => true
|
70
|
+
|
71
|
+
|
72
|
+
=== Match Valentine's day in 2008
|
73
|
+
|
74
|
+
te = TExp::And.new(
|
75
|
+
TExp::DayOfMonth.new(14),
|
76
|
+
TExp::Month.new(2),
|
77
|
+
TExp::Year.new(2008))
|
78
|
+
|
79
|
+
te.include?(Date.parse("Feb 14, 2008")) # => true
|
80
|
+
te.include?(Date.parse("Feb 14, 2007")) # => false
|
81
|
+
|
82
|
+
=== Match any Monday in March
|
83
|
+
|
84
|
+
te = TExp::And.new(
|
85
|
+
TExp::Month.new(3),
|
86
|
+
TExp::DayOfWeek.new(Date::DAYNAMES.index("Monday")))
|
87
|
+
|
88
|
+
te.include?(Date.parse("Mar 3, 2008")) # => true
|
89
|
+
te.include?(Date.parse("Mar 10, 2008")) # => true
|
90
|
+
|
91
|
+
te.include?(Date.parse("Mar 11, 2008")) # => false
|
92
|
+
te.include?(Date.parse("Apr 7, 2008")) # => false
|
93
|
+
|
94
|
+
|
data/Rakefile
CHANGED
@@ -5,8 +5,19 @@ require 'rake/testtask'
|
|
5
5
|
require 'rake/rdoctask'
|
6
6
|
require 'rake/gempackagetask'
|
7
7
|
|
8
|
+
$:.unshift 'lib'
|
9
|
+
require 'texp/version'
|
10
|
+
PACKAGE_VERSION = TExp::VERSION
|
11
|
+
|
12
|
+
CLEAN.include("*.tmp")
|
13
|
+
CLOBBER.include('coverage', 'rcov_aggregate')
|
14
|
+
|
8
15
|
task :default => "test:units"
|
9
16
|
|
17
|
+
task :version do
|
18
|
+
puts "TExp Version #{PACKAGE_VERSION}"
|
19
|
+
end
|
20
|
+
|
10
21
|
namespace "test" do
|
11
22
|
Rake::TestTask.new(:units) do |t|
|
12
23
|
t.verbose = true
|
@@ -31,6 +42,21 @@ end
|
|
31
42
|
desc "Generate the TAGS file"
|
32
43
|
task :tags => ["tags:emacs"]
|
33
44
|
|
45
|
+
begin
|
46
|
+
require 'rcov/rcovtask'
|
47
|
+
|
48
|
+
Rcov::RcovTask.new do |t|
|
49
|
+
t.libs << "test"
|
50
|
+
t.rcov_opts = [
|
51
|
+
'-xRakefile', '-xrakefile', '-xpublish.rf', '--text-report',
|
52
|
+
]
|
53
|
+
t.test_files = FileList['test/**/*_test.rb']
|
54
|
+
t.output_dir = 'coverage'
|
55
|
+
t.verbose = true
|
56
|
+
end
|
57
|
+
rescue LoadError
|
58
|
+
puts "RCov is not available"
|
59
|
+
end
|
34
60
|
|
35
61
|
# RDoc Task
|
36
62
|
rd = Rake::RDocTask.new("rdoc") { |rdoc|
|
@@ -54,7 +80,6 @@ PKG_FILES = FileList[
|
|
54
80
|
'test/**/*.rb',
|
55
81
|
'doc/**/*'
|
56
82
|
]
|
57
|
-
PACKAGE_VERSION = '0.0.3'
|
58
83
|
|
59
84
|
if ! defined?(Gem)
|
60
85
|
puts "Package Target requires RubyGEMs"
|
data/TAGS
ADDED
@@ -0,0 +1,369 @@
|
|
1
|
+
|
2
|
+
doc/jamis.rb,43
|
3
|
+
module RDocRDoc1,0
|
4
|
+
module PagePage2,12
|
5
|
+
|
6
|
+
lib/texp.rb,0
|
7
|
+
|
8
|
+
lib/texp/base.rb,1465
|
9
|
+
module TExpTExp1,0
|
10
|
+
class BaseBase5,143
|
11
|
+
def to_sto_s10,287
|
12
|
+
def reanchor(date)reanchor17,430
|
13
|
+
def first_day_of_window(date)first_day_of_window24,664
|
14
|
+
def last_day_of_window(date)last_day_of_window31,931
|
15
|
+
def each() # :yield: temporal_expressioneach37,1094
|
16
|
+
def window(*args)window77,2628
|
17
|
+
def listize(arg)listize86,2886
|
18
|
+
def encode_date(codes, date)encode_date96,3046
|
19
|
+
def encode_list(codes, list)encode_list101,3185
|
20
|
+
def ordinal_list(list, connector='or')ordinal_list121,3720
|
21
|
+
def humanize_list(list, connector='or', &block)humanize_list128,3979
|
22
|
+
def humanize_date(date)humanize_date143,4444
|
23
|
+
def ordinal(n)ordinal166,4945
|
24
|
+
def suffix(n)suffix180,5259
|
25
|
+
def encoding_tokenencoding_token185,5391
|
26
|
+
def build_hashbuild_hash190,5511
|
27
|
+
def register_parse_callback(token, callback=self)register_parse_callback202,5851
|
28
|
+
def parse_callback(stack)parse_callback209,6158
|
29
|
+
class SingleTermBase < BaseSingleTermBase218,6436
|
30
|
+
def initialize(term)initialize220,6514
|
31
|
+
def reanchor(date)reanchor225,6630
|
32
|
+
def each() # :yield: temporal_expressioneach232,6846
|
33
|
+
class MultiTermBase < BaseMultiTermBase241,7140
|
34
|
+
def initialize(*terms)initialize244,7218
|
35
|
+
def reanchor(date)reanchor249,7338
|
36
|
+
def each() # :yield: temporal_expressioneach260,7618
|
37
|
+
def parse_callback(stack)parse_callback269,7953
|
38
|
+
|
39
|
+
lib/texp/day_interval.rb,369
|
40
|
+
module TExpTExp1,0
|
41
|
+
class DayInterval < BaseDayInterval2,12
|
42
|
+
def initialize(base_date, interval)initialize7,101
|
43
|
+
def includes?(date)includes?13,292
|
44
|
+
def reanchor(new_anchor_date)reanchor22,518
|
45
|
+
def inspectinspect27,667
|
46
|
+
def encode(codes)encode36,932
|
47
|
+
def base_mjdbase_mjd47,1125
|
48
|
+
def parse_callback(stack)parse_callback52,1190
|
49
|
+
|
50
|
+
lib/texp/day_of_month.rb,212
|
51
|
+
module TExpTExp1,0
|
52
|
+
class DayOfMonth < BaseDayOfMonth2,12
|
53
|
+
def initialize(days)initialize5,72
|
54
|
+
def includes?(date)includes?10,187
|
55
|
+
def inspectinspect15,308
|
56
|
+
def encode(codes)encode21,451
|
57
|
+
|
58
|
+
lib/texp/day_of_week.rb,210
|
59
|
+
module TExpTExp1,0
|
60
|
+
class DayOfWeek < BaseDayOfWeek2,12
|
61
|
+
def initialize(days)initialize5,71
|
62
|
+
def includes?(date)includes?10,186
|
63
|
+
def inspectinspect15,308
|
64
|
+
def encode(codes)encode21,473
|
65
|
+
|
66
|
+
lib/texp/dsl.rb,1112
|
67
|
+
module TExpTExp1,0
|
68
|
+
module DSLDSL7,216
|
69
|
+
class EvalEnvironmentEvalEnvironment9,230
|
70
|
+
def initialize(containing_env)initialize12,275
|
71
|
+
def method_missing(sym, *args, &block)method_missing16,372
|
72
|
+
def expression(&block)expression21,480
|
73
|
+
def day(*days_of_month)day33,895
|
74
|
+
def week(*weeks)week55,1870
|
75
|
+
def month(*month)month70,2364
|
76
|
+
def year(*years)year81,2688
|
77
|
+
def on(*args)on130,4191
|
78
|
+
def dow(*dow)dow173,5431
|
79
|
+
def every(n, unit, start_date=Date.today)every177,5505
|
80
|
+
def normalize_units(args) # :nodoc:normalize_units182,5642
|
81
|
+
def apply_units(unit, value)apply_units210,6359
|
82
|
+
def try_parsing(string)try_parsing214,6438
|
83
|
+
def dm_args(args)dm_args220,6554
|
84
|
+
def dmy_args(args)dmy_args227,6709
|
85
|
+
def check_valid_day_month(day, month)check_valid_day_month234,6877
|
86
|
+
def normalize_months(months)normalize_months245,7139
|
87
|
+
def normalize_month(month_thing)normalize_month249,7229
|
88
|
+
def normalize_dows(dow_list)normalize_dows258,7415
|
89
|
+
def normalize_dow(dow_thing)normalize_dow262,7509
|
90
|
+
def TExp(&block)TExp277,7709
|
91
|
+
|
92
|
+
lib/texp/errors.rb,166
|
93
|
+
module TExpTExp1,0
|
94
|
+
class Error < StandardErrorError4,58
|
95
|
+
class DateArgumentError < ErrorDateArgumentError11,236
|
96
|
+
class ParseError < ErrorParseError16,364
|
97
|
+
|
98
|
+
lib/texp/every_day.rb,220
|
99
|
+
module TExpTExp1,0
|
100
|
+
class EveryDay < BaseEveryDay2,12
|
101
|
+
def includes?(date)includes?6,123
|
102
|
+
def inspectinspect11,224
|
103
|
+
def encode(codes)encode16,318
|
104
|
+
def parse_callback(stack)parse_callback21,397
|
105
|
+
|
106
|
+
lib/texp/ext.rb,57
|
107
|
+
module TExpTExp1,0
|
108
|
+
module ExtensionsExtensions2,12
|
109
|
+
|
110
|
+
lib/texp/logic.rb,467
|
111
|
+
module TExpTExp1,0
|
112
|
+
class And < MultiTermBaseAnd6,212
|
113
|
+
def includes?(date)includes?10,327
|
114
|
+
def inspectinspect15,463
|
115
|
+
def encode(codes)encode20,598
|
116
|
+
class Or < MultiTermBaseOr29,903
|
117
|
+
def includes?(date)includes?33,1017
|
118
|
+
def inspectinspect38,1153
|
119
|
+
def encode(codes)encode43,1281
|
120
|
+
class Not < SingleTermBaseNot52,1576
|
121
|
+
def includes?(date)includes?56,1690
|
122
|
+
def inspectinspect61,1810
|
123
|
+
def encode(codes)encode66,1935
|
124
|
+
|
125
|
+
lib/texp/month.rb,204
|
126
|
+
module TExpTExp1,0
|
127
|
+
class Month < BaseMonth2,12
|
128
|
+
def initialize(months)initialize5,67
|
129
|
+
def includes?(date)includes?10,188
|
130
|
+
def inspectinspect15,313
|
131
|
+
def encode(codes)encode21,472
|
132
|
+
|
133
|
+
lib/texp/operators.rb,143
|
134
|
+
module TExpTExp1,0
|
135
|
+
class BaseBase2,12
|
136
|
+
def +(texp)+12,303
|
137
|
+
def *(texp)*24,634
|
138
|
+
def -(texp)-36,983
|
139
|
+
def -@()-@49,1373
|
140
|
+
|
141
|
+
lib/texp/parse.rb,316
|
142
|
+
module TExpTExp1,0
|
143
|
+
def register_parse_callback(token, callback)register_parse_callback26,799
|
144
|
+
def parse(string)parse31,955
|
145
|
+
def compile(tok)compile43,1221
|
146
|
+
class ParseCallbackParseCallback62,1669
|
147
|
+
def initialize(&block)initialize63,1691
|
148
|
+
def parse_callback(stack)parse_callback66,1750
|
149
|
+
|
150
|
+
lib/texp/time_ext.rb,49
|
151
|
+
class TimeTime1,0
|
152
|
+
def to_dateto_date3,51
|
153
|
+
|
154
|
+
lib/texp/version.rb,21
|
155
|
+
module TExpTExp1,0
|
156
|
+
|
157
|
+
lib/texp/week.rb,419
|
158
|
+
module TExpTExp3,16
|
159
|
+
class Week < BaseWeek4,28
|
160
|
+
def initialize(weeks)initialize7,82
|
161
|
+
def includes?(date)includes?12,200
|
162
|
+
def encode(codes)encode18,378
|
163
|
+
def inspectinspect24,529
|
164
|
+
def week_from_front(date)week_from_front30,632
|
165
|
+
def week_from_back(date)week_from_back34,707
|
166
|
+
def self.days_in_month(month)days_in_month39,827
|
167
|
+
def last_day_of_month(date)last_day_of_month50,1046
|
168
|
+
|
169
|
+
lib/texp/window.rb,496
|
170
|
+
module TExpTExp1,0
|
171
|
+
class Window < SingleTermBaseWindow2,12
|
172
|
+
def initialize(texp, prewindow_days, postwindow_days)initialize5,78
|
173
|
+
def includes?(date)includes?12,302
|
174
|
+
def first_day_of_window(date)first_day_of_window18,474
|
175
|
+
def last_day_of_window(date)last_day_of_window25,701
|
176
|
+
def find_pivot(date)find_pivot31,864
|
177
|
+
def inspectinspect41,1110
|
178
|
+
def encode(codes)encode48,1320
|
179
|
+
def days(n)days55,1455
|
180
|
+
def parse_callback(stack)parse_callback61,1596
|
181
|
+
|
182
|
+
lib/texp/year.rb,201
|
183
|
+
module TExpTExp1,0
|
184
|
+
class Year < BaseYear2,12
|
185
|
+
def initialize(years)initialize5,66
|
186
|
+
def includes?(date)includes?10,184
|
187
|
+
def inspectinspect15,307
|
188
|
+
def encode(codes)encode20,428
|
189
|
+
|
190
|
+
test/texp_tests.rb,230
|
191
|
+
def d(date_string)d5,76
|
192
|
+
module TExpAssertionsTExpAssertions9,126
|
193
|
+
def assert_includes(te, *dates)assert_includes10,148
|
194
|
+
def assert_not_includes(te, *dates)assert_not_includes17,341
|
195
|
+
class Test::Unit::TestCaseTest25,548
|
196
|
+
|
197
|
+
test/texp/base_test.rb,733
|
198
|
+
class BaseEachTest < Test::Unit::TestCaseBaseEachTest4,36
|
199
|
+
def test_each_on_basetest_each_on_base5,78
|
200
|
+
def test_each_on_single_termtest_each_on_single_term10,173
|
201
|
+
def test_each_on_multi_termtest_each_on_multi_term15,294
|
202
|
+
def basic_texpbasic_texp22,423
|
203
|
+
def single_term_texpsingle_term_texp26,484
|
204
|
+
def multi_term_texpmulti_term_texp30,554
|
205
|
+
class BaseAnchorTest < Test::Unit::TestCaseBaseAnchorTest36,627
|
206
|
+
def test_setting_anchor_datetest_setting_anchor_date37,671
|
207
|
+
def assert_cycle(te, start_date, n)assert_cycle48,948
|
208
|
+
def test_that_complex_expression_propagate_anchor_datetest_that_complex_expression_propagate_anchor_date58,1160
|
209
|
+
def assert_complex_cycle(te, start_date)assert_complex_cycle75,1687
|
210
|
+
|
211
|
+
test/texp/day_interval_test.rb,305
|
212
|
+
class DayIntervalTest < Test::Unit::TestCaseDayIntervalTest5,48
|
213
|
+
def test_day_intervaltest_day_interval7,94
|
214
|
+
def test_day_interval_without_start_datetest_day_interval_without_start_date20,667
|
215
|
+
def test_day_interval_excludes_dates_before_starttest_day_interval_excludes_dates_before_start27,890
|
216
|
+
|
217
|
+
test/texp/day_of_month_test.rb,223
|
218
|
+
class DayOfMonthTest < Test::Unit::TestCaseDayOfMonthTest7,72
|
219
|
+
def test_day_of_month_with_single_argtest_day_of_month_with_single_arg9,117
|
220
|
+
def test_day_of_include_with_one_daytest_day_of_include_with_one_day16,356
|
221
|
+
|
222
|
+
test/texp/day_of_week_test.rb,249
|
223
|
+
class DayOfWeekTest < Test::Unit::TestCaseDayOfWeekTest7,72
|
224
|
+
def test_day_of_week_include_with_one_daytest_day_of_week_include_with_one_day9,116
|
225
|
+
def test_day_of_week_include_with_several_daystest_day_of_week_include_with_several_days20,577
|
226
|
+
|
227
|
+
test/texp/dsl_test.rb,2445
|
228
|
+
class BuilderTest < Test::Unit::TestCaseBuilderTest4,42
|
229
|
+
def test_day_buildertest_day_builder5,83
|
230
|
+
def test_day_builder_with_liststest_day_builder_with_lists13,256
|
231
|
+
def test_week_buildertest_week_builder21,471
|
232
|
+
def test_week_builder_with_liststest_week_builder_with_lists29,634
|
233
|
+
def test_month_buildertest_month_builder37,830
|
234
|
+
def test_month_builder_with_liststest_month_builder_with_lists45,988
|
235
|
+
def test_month_builder_with_string_monthstest_month_builder_with_string_months53,1168
|
236
|
+
def test_year_buildertest_year_builder61,1367
|
237
|
+
def test_year_builder_with_listtest_year_builder_with_list69,1527
|
238
|
+
def test_on_builder_with_day_monthtest_on_builder_with_day_month77,1727
|
239
|
+
def test_on_builder_with_day_and_string_monthtest_on_builder_with_day_and_string_month85,1916
|
240
|
+
def test_on_builder_with_string_datetest_on_builder_with_string_date93,2120
|
241
|
+
def test_on_builder_with_datetest_on_builder_with_date101,2320
|
242
|
+
def test_on_builder_with_day_month_yeartest_on_builder_with_day_month_year109,2503
|
243
|
+
def test_on_builder_with_day_string_month_and_yeartest_on_builder_with_day_string_month_and_year117,2703
|
244
|
+
def test_on_builder_with_timetest_on_builder_with_time125,2920
|
245
|
+
def test_on_builder_arbitrary_to_stringtest_on_builder_arbitrary_to_string133,3100
|
246
|
+
def obj.to_sto_s135,3163
|
247
|
+
def test_on_builder_with_invalid_argumentstest_on_builder_with_invalid_arguments146,3360
|
248
|
+
def test_dow_buildertest_dow_builder162,4147
|
249
|
+
def test_dow_builder_with_liststest_dow_builder_with_lists174,4389
|
250
|
+
def test_interval_builder_with_daystest_interval_builder_with_days186,4695
|
251
|
+
def test_interval_builder_with_weekstest_interval_builder_with_weeks194,4934
|
252
|
+
def test_interval_builder_with_monthstest_interval_builder_with_months203,5244
|
253
|
+
def test_interval_builder_with_yearstest_interval_builder_with_years212,5561
|
254
|
+
def test_window_buildertest_window_builder221,5881
|
255
|
+
def test_window_builder_with_symetrical_sidestest_window_builder_with_symetrical_sides229,6069
|
256
|
+
def test_window_builder_with_unitstest_window_builder_with_units237,6285
|
257
|
+
def test_window_builder_with_asymetrical_unitstest_window_builder_with_asymetrical_units245,6513
|
258
|
+
def test_window_builder_with_bad_unitstest_window_builder_with_bad_units253,6763
|
259
|
+
def test_evaltest_eval259,6899
|
260
|
+
def test_eval_with_eternal_referencestest_eval_with_eternal_references268,7074
|
261
|
+
def favorite_monthfavorite_month277,7283
|
262
|
+
|
263
|
+
test/texp/every_day_test.rb,103
|
264
|
+
class EveryDayTest < Test::Unit::TestCaseEveryDayTest8,73
|
265
|
+
def test_every_daytest_every_day10,116
|
266
|
+
|
267
|
+
test/texp/ext_test.rb,486
|
268
|
+
module TExpTExp7,72
|
269
|
+
module ExtensionsExtensions10,144
|
270
|
+
module MyExtMyExt14,302
|
271
|
+
class Never < BaseNever23,635
|
272
|
+
def includes?(date)includes?32,995
|
273
|
+
def encode(codes)encode42,1407
|
274
|
+
def parse_callback(stack)parse_callback56,1948
|
275
|
+
class ExtensionsTest < Test::Unit::TestCaseExtensionsTest67,2117
|
276
|
+
def test_nevertest_never68,2161
|
277
|
+
def test_parse_nevertest_parse_never73,2267
|
278
|
+
def test_parsing_round_triptest_parsing_round_trip78,2373
|
279
|
+
|
280
|
+
test/texp/inspect_test.rb,156
|
281
|
+
class InspectTest < Test::Unit::TestCaseInspectTest9,172
|
282
|
+
def test_inspecttest_inspect10,213
|
283
|
+
def assert_inspect(texp, string)assert_inspect62,2711
|
284
|
+
|
285
|
+
test/texp/logic_test.rb,188
|
286
|
+
class LogicTest < Test::Unit::TestCaseLogicTest7,72
|
287
|
+
def test_constantstest_constants17,284
|
288
|
+
def test_andtest_and28,564
|
289
|
+
def test_ortest_or36,753
|
290
|
+
def test_nottest_not44,936
|
291
|
+
|
292
|
+
test/texp/month_test.rb,139
|
293
|
+
class MonthTest < Test::Unit::TestCaseMonthTest7,72
|
294
|
+
def setupsetup9,112
|
295
|
+
def test_initial_conditionstest_initial_conditions13,170
|
296
|
+
|
297
|
+
test/texp/operators_test.rb,253
|
298
|
+
class OperatorsTest < Test::Unit::TestCaseOperatorsTest6,57
|
299
|
+
def setupsetup7,100
|
300
|
+
def test_uniontest_union15,334
|
301
|
+
def test_intersectiontest_intersection25,585
|
302
|
+
def test_differencetest_difference33,774
|
303
|
+
def test_negatetest_negate43,1034
|
304
|
+
|
305
|
+
test/texp/parse_test.rb,2161
|
306
|
+
class TExpParseLexicalTest < Test::Unit::TestCaseTExpParseLexicalTest9,172
|
307
|
+
def setupsetup10,222
|
308
|
+
def test_letterstest_letters16,355
|
309
|
+
def test_numberstest_numbers20,417
|
310
|
+
def test_positive_numberstest_positive_numbers24,483
|
311
|
+
def test_negative_numberstest_negative_numbers28,562
|
312
|
+
def test_punctuationtest_punctuation32,641
|
313
|
+
def test_datestest_dates36,731
|
314
|
+
def test_bad_datestest_bad_dates40,797
|
315
|
+
def test_extension_tokenstest_extension_tokens44,873
|
316
|
+
def test_mixedtest_mixed53,1092
|
317
|
+
def test_mixed_with_spacestest_mixed_with_spaces57,1184
|
318
|
+
def assert_lex(string, *tokens)assert_lex63,1305
|
319
|
+
class ParseTest < Test::Unit::TestCaseParseTest71,1478
|
320
|
+
def setupsetup72,1517
|
321
|
+
def test_bad_parse_stringtest_bad_parse_string76,1575
|
322
|
+
def test_unbalanced_listtest_unbalanced_list82,1682
|
323
|
+
def test_unbalanced_list2test_unbalanced_list288,1784
|
324
|
+
def test_parse_datetest_parse_date94,1887
|
325
|
+
def test_parse_intervaltest_parse_interval98,1986
|
326
|
+
def test_parse_day_of_monthtest_parse_day_of_month105,2155
|
327
|
+
def test_parse_listtest_parse_list110,2243
|
328
|
+
def test_parse_day_of_month_with_multiple_argstest_parse_day_of_month_with_multiple_args115,2332
|
329
|
+
def test_parse_day_of_week_with_single_argtest_parse_day_of_week_with_single_arg122,2519
|
330
|
+
def test_parse_day_of_week_with_multiple_argstest_parse_day_of_week_with_multiple_args128,2663
|
331
|
+
def test_parse_month_with_single_argtest_parse_month_with_single_arg135,2847
|
332
|
+
def test_parse_month_with_multiple_argstest_parse_month_with_multiple_args141,2988
|
333
|
+
def test_parse_year_with_single_argtest_parse_year_with_single_arg148,3172
|
334
|
+
def test_parse_year_with_multiple_argstest_parse_year_with_multiple_args154,3316
|
335
|
+
def test_parse_windowtest_parse_window161,3507
|
336
|
+
def test_parse_nottest_parse_not171,3886
|
337
|
+
def test_parse_andtest_parse_and177,4010
|
338
|
+
def test_parse_ortest_parse_or186,4256
|
339
|
+
def test_parse_every_daytest_parse_every_day193,4421
|
340
|
+
class ParseReverseTest < Test::Unit::TestCaseParseReverseTest200,4591
|
341
|
+
def setupsetup201,4637
|
342
|
+
def test_round_triptest_round_trip205,4695
|
343
|
+
def assert_round_trip(string)assert_round_trip228,5310
|
344
|
+
|
345
|
+
test/texp/time_ext_test.rb,105
|
346
|
+
class TimeExtTest < Test::Unit::TestCaseTimeExtTest4,42
|
347
|
+
def test_time_to_datetest_time_to_date5,83
|
348
|
+
|
349
|
+
test/texp/week_test.rb,411
|
350
|
+
class WeekTest < Test::Unit::TestCaseWeekTest7,72
|
351
|
+
def test_week_include_with_one_weektest_week_include_with_one_week9,111
|
352
|
+
def test_week_include_with_several_weekstest_week_include_with_several_weeks20,544
|
353
|
+
def test_week_with_last_week_of_monthtest_week_with_last_week_of_month32,1054
|
354
|
+
def test_week_from_backtest_week_from_back42,1379
|
355
|
+
def test_last_day_of_monthtest_last_day_of_month49,1663
|
356
|
+
|
357
|
+
test/texp/window_test.rb,408
|
358
|
+
class WindowTest < Test::Unit::TestCaseWindowTest7,72
|
359
|
+
def test_windowtest_window9,113
|
360
|
+
def test_narrow_windowtest_narrow_window20,520
|
361
|
+
def test_window_reportingtest_window_reporting31,934
|
362
|
+
def test_window_reporting_when_outside_windowtest_window_reporting_when_outside_window40,1178
|
363
|
+
def test_windows_on_non_window_temporal_expressionstest_windows_on_non_window_temporal_expressions49,1422
|
364
|
+
|
365
|
+
test/texp/year_test.rb,166
|
366
|
+
class YearTest < Test::Unit::TestCaseYearTest7,72
|
367
|
+
def setupsetup9,111
|
368
|
+
def test_single_argtest_single_arg13,169
|
369
|
+
def test_single_argtest_single_arg20,334
|