texp 0.0.3 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- 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
|