school_days 1.0.0 → 1.0.1

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/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