school_days 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -13,7 +13,7 @@ Unlike Business Time, School Days focuses on the demands of keeping a school cal
13
13
 
14
14
  With School Days you can:
15
15
 
16
- * 1.days.from_now.is_school_day
16
+ * 1.days.from_now.school_day?
17
17
  * Date.civil(2011, 05, 31).school_night?
18
18
  * 2.school_days.from_now
19
19
 
@@ -85,8 +85,10 @@ This key has two subkeys:
85
85
  * included_days
86
86
 
87
87
  I've seen schools have school days on a Saturday, in very rare circumstances. included_days list days where you would normally not have school (weekends)... but you do this year.
88
-
89
- Days listed in any exceptions subkey have extreme override abilities - you could set your school year to end on June 1, 2011... but an included_day which includes June 2, 2011 means that June 2, 2011 is a school day.
88
+
89
+ Note that exceptional days should fall in the school year as a whole (see the above note about FixNum#school_days.from)
90
+
91
+ Example configure file can be found at: https://github.com/rwilcox/school_days/blob/master/rails_generators/school_days_config/templates/school_days.yml
90
92
 
91
93
  == WHAT THIS GEM DOES NOT DO:
92
94
 
@@ -110,6 +112,58 @@ This gem also relies on manual configuration every year. It can not possibly kno
110
112
  * I use GitFlow <https://github.com/nvie/gitflow> to develop, so bonus points for that.
111
113
 
112
114
 
115
+ == (GENERATED) Specifications for this gem
116
+
117
+ The following are generated specifications for this gem. Computers know very little about making sense, *however* these should give you some idea of the capability of this gem
118
+
119
+ Config
120
+ Config should load a file with one session with no errors.
121
+ Config should load a file with two sessions correctly.
122
+ exceptional included days should only include exceptional included days, as Ruby date objects.
123
+ holiday exceptions should only include listed holiday exceptions, as Ruby Date objects.
124
+ when loading a file with multiple sessions should be able to find the first start date.
125
+ when loading a file with multiple sessions should be able to find the last end date.
126
+ when loading a file with one session should be able to find the end date.
127
+ when loading a file with one session should be able to find the start date.
128
+ when loading an invalid config file should throw a Runtime error when we're missing start or end dates for a session.
129
+ DateExtension
130
+ Date instances should Date should respond to school_day?.
131
+ Date instances should return false for school_day? if the day is a weekend.
132
+ Date instances should return false for school_day? if the day is flagged as a holiday.
133
+ Date instances should return false if the day is not a school night.
134
+ Date instances should return true before an exceptional included day.
135
+ Date instances should return true for school_day if the day is a weekday.
136
+ Date instances should return true for school_day? if a normally off day is flagged as an included day.
137
+ Date instances should return true if the day is a school night.
138
+ Date instances should return true when the date is equal to the last date of a session.
139
+ Date instances should return true when the date is equal to the start date of a session.
140
+ Date instances when looking at a single school session should return false for school_day? if the date is outside the session (and not in exceptional included days).
141
+ Date instances when looking at a single school session should return true for school_day? if the date is inside the session (and not in exceptional included days).
142
+ Date instances when looking at multiple school sessions should return false for school_day if the weekday is between school sessions.
143
+ Date instances when looking at multiple school sessions should return false for school_day? if a weekday is is outside ALL of the sessions (and not in exceptional included days).
144
+ Date instances when looking at multiple school sessions should return false for school_day? if a weekend is is outside ALL of the sessions (and not in exceptional included days).
145
+ Date instances when looking at multiple school sessions should return true for school_day? if the date is outside one session, but inside another.
146
+ FixnumExtension
147
+ when adding a school day should elegantly handle a situation where we go outside the school year.
148
+ when adding a school day should move forward one week when adding 5 school days.
149
+ when adding a school day should move forward onto an exceptional day.
150
+ when adding a school day should move to Monday (if tomorrow is a weekend).
151
+ when adding a school day should move to the next session if we have multiple sessions.
152
+ when adding a school day should move to tomorrow (if tomorrow is a school day).
153
+ when adding a school day should skip exceptional holidays.
154
+ when subtracting a school day should elegantly handle a situation where we go outside the school year.
155
+ when subtracting a school day should move back one week when adding 5 school days.
156
+ when subtracting a school day should move backwards onto an exceptional day.
157
+ when subtracting a school day should move to Friday (if yesterday is a weekend).
158
+ when subtracting a school day should move to the previous session if we have multiple sessions.
159
+ when subtracting a school day should move to yesterday (if yesterday is a school day).
160
+ when subtracting a school day should skip exceptional holidays.
161
+ SchoolDaysCalculator
162
+ identifying if a date is in the range of the whole school year with a single session should return false when it falls OUTSIDE of the school year.
163
+ identifying if a date is in the range of the whole school year with a single session should return true when it falls in the school year.
164
+ identifying if a date is in the range of the whole school year with many sessions should return false when it falls OUTSIDE of the school year.
165
+ identifying if a date is in the range of the whole school year with many sessions should return true when it falls in the school year.
166
+
113
167
  == LICENSE:
114
168
 
115
169
  (The MIT License)
data/Rakefile CHANGED
@@ -14,11 +14,14 @@ $hoe = Hoe.spec 'school_days' do
14
14
  self.developer 'Ryan Wilcox', 'rwilcox@wilcoxd.com'
15
15
  self.post_install_message = 'PostInstall.txt' # TODO remove if post-install message not required
16
16
  self.rubyforge_name = self.name # TODO this is default value
17
- self.extra_deps = [['activesupport','>= 2.0.2'], ["shoulda", "=2.11.3"]]
17
+ self.extra_deps = [ ['activesupport','>= 2.0.2'] ]
18
+ self.extra_dev_deps = [ ["shoulda", ">= 2.10.0"] ]
18
19
 
19
20
  end
20
21
 
21
22
  require 'newgem/tasks'
23
+ require 'shoulda/tasks'
24
+
22
25
  Dir['tasks/**/*.rake'].each { |t| load t }
23
26
 
24
27
  # TODO - want other tests/tasks run by default? Add them to the list
data/lib/school_days.rb CHANGED
@@ -13,5 +13,5 @@ module SchoolDays
13
13
  end
14
14
 
15
15
  module SchoolDays
16
- VERSION = '1.0.0'
16
+ VERSION = '1.0.1'
17
17
  end
@@ -1,7 +1,7 @@
1
1
  require File.dirname(__FILE__) + '/test_helper.rb'
2
2
 
3
3
 
4
- class TestDateExtensions < Test::Unit::TestCase
4
+ class TestDateExtension < Test::Unit::TestCase
5
5
 
6
6
  context "Date instances" do
7
7
  setup do
@@ -1,7 +1,7 @@
1
1
  require File.dirname(__FILE__) + '/test_helper.rb'
2
2
 
3
3
 
4
- class TestFixnumExtensions < Test::Unit::TestCase
4
+ class TestFixnumExtension < Test::Unit::TestCase
5
5
 
6
6
  context "when adding a school day" do
7
7
  setup do
@@ -1,6 +1,6 @@
1
1
  require File.dirname(__FILE__) + '/test_helper.rb'
2
2
 
3
- class TestSchoolDays < Test::Unit::TestCase
3
+ class TestSchoolDay < Test::Unit::TestCase
4
4
 
5
5
  def setup
6
6
  end
@@ -1,7 +1,7 @@
1
1
  require File.dirname(__FILE__) + '/test_helper.rb'
2
2
 
3
3
 
4
- class TestSchoolDaysCalculatorTest < Test::Unit::TestCase
4
+ class TestSchoolDaysCalculator < Test::Unit::TestCase
5
5
 
6
6
  context "identifying if a date is in the range of the whole school year" do
7
7
  context "with a single session" do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: school_days
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 0
10
- version: 1.0.0
9
+ - 1
10
+ version: 1.0.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ryan Wilcox
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-26 00:00:00 -05:00
18
+ date: 2011-01-27 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -40,15 +40,15 @@ dependencies:
40
40
  requirement: &id002 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
- - - "="
43
+ - - ">="
44
44
  - !ruby/object:Gem::Version
45
- hash: 37
45
+ hash: 39
46
46
  segments:
47
47
  - 2
48
- - 11
49
- - 3
50
- version: 2.11.3
51
- type: :runtime
48
+ - 10
49
+ - 0
50
+ version: 2.10.0
51
+ type: :development
52
52
  version_requirements: *id002
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: hoe