sheha 0.0.0 → 0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e93889e41290d0ac873f1d252c73d75d361436c3
4
- data.tar.gz: d757c8222bc97e6e7a84f25d28d00209262241f5
3
+ metadata.gz: 5f8efa356e26cbe048b15127691da8c5965f9246
4
+ data.tar.gz: 3de5c01d1bf9e7fe9b3db70cb10e39b195527708
5
5
  SHA512:
6
- metadata.gz: 10bae87fdc036d35bb422e4b99682e0185d6682d676fc6d0ef42f719da73d931d6e27c43bd12739ddf32a315d57bc6ad80f35fbf3c3c7fe348e1f64707b43dce
7
- data.tar.gz: b4a7f807895a572c7e636ef20617ef4d1f2dd651661edd42994bd1c9cbbc3cd89c0d1ca380ee8797644ce295abc456d0b1e8de4d57126899020e392650128828
6
+ metadata.gz: cd33e658905c18879aa69d32d3fc0a5298d3269b95fdfa58c767fb01986c0c80c11455104126cedf8b22bb13cf743c5ce6a6a4b8ecf7c9a8fa8d0ba9cd9c83d8
7
+ data.tar.gz: 9a3c538e35b7d7cb4cbe378dd6c2de7660c0de1302cfbbdaf79e3d80347c4539752465773d101f548156835a32fddaaf5c97b85b2bc570d572c7e2c9425d679d
data/README.md CHANGED
@@ -1,4 +1,18 @@
1
1
  Sheha
2
2
  =====
3
3
 
4
- A Simple Holidays & Events Handler
4
+ A Simple Holidays & Events Handler
5
+
6
+ Description
7
+ -----------
8
+
9
+ Sheha is a simple a minimal holidays & events handler. It can identify if a Date is a holiday based on simple rules provided by configuration.
10
+ You may provide just the dates you need to hold (like non-working days, for saying) or specify a name and description for the event.
11
+
12
+ ## Installation
13
+
14
+ As usual, you can install it using rubygems.
15
+
16
+ ```
17
+ $ gem install mote
18
+ ```
@@ -2,7 +2,7 @@ class Sheha::YearlyEvent < Sheha::Event
2
2
  def initialize(month, month_day)
3
3
  Sheha::Helper.validate_month(month)
4
4
  Sheha::Helper.validate_month_day(month_day)
5
- super "#{month}#{month_day}".to_i
5
+ super "#{month}#{two_digits_day(month_day)}".to_i
6
6
  end
7
7
 
8
8
  def month
@@ -20,7 +20,7 @@ class Sheha::YearlyEvent < Sheha::Event
20
20
 
21
21
  def month_day=(month_day)
22
22
  Sheha::Helper.validate_month_day(month_day)
23
- @id = "#{four_digits_id[0..1]}#{month_day}".to_i
23
+ @id = "#{four_digits_id[0..1]}#{two_digits_day(month_day)}".to_i
24
24
  end
25
25
 
26
26
  def event?(date)
@@ -32,6 +32,10 @@ class Sheha::YearlyEvent < Sheha::Event
32
32
  end
33
33
 
34
34
  private
35
+ def two_digits_day(day)
36
+ "%02d" % day
37
+ end
38
+
35
39
  def four_digits_id
36
40
  "%04d" % @id
37
41
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'sheha'
3
- s.version = '0.0.0'
3
+ s.version = '0.0.1'
4
4
  s.date = '2013-06-17'
5
5
  s.summary = "Simple Holidays & Events Handler"
6
6
  s.description = "A Simple Holidays & Events Handler Gem"
@@ -3,6 +3,84 @@ require 'sheha'
3
3
 
4
4
  class ShehaTest < Test::Unit::TestCase
5
5
 
6
+ # def test_sheha_describe
7
+ # sheha = Sheha.new
8
+ # sheha.describe do
9
+ # weekly do
10
+ # on "wednesday" do
11
+ # name "Some Name"
12
+ # description "Some description"
13
+ # end
14
+
15
+ # from_to "saturday", "sunday" do
16
+ # name "Some Other Name"
17
+ # description "Some other description"
18
+ # end
19
+ # end
20
+
21
+ # monthly do
22
+ # on 1 do
23
+ # name "Some Name"
24
+ # description "Some description"
25
+ # end
26
+
27
+ # from_to 25, 31 do
28
+ # name "Some Other Name"
29
+ # description "Some other description"
30
+ # end
31
+ # end
32
+
33
+ # yearly do
34
+ # from_to [1, 1], [1, 7] do
35
+ # name "Some Name"
36
+ # description "Some description"
37
+ # end
38
+
39
+ # on 12, 25 do
40
+ # name "Some Other Name"
41
+ # description "Some other description"
42
+ # end
43
+ # end
44
+
45
+ # one_time do
46
+ # on Date.new(2013, 11, 20) do
47
+ # name "Some Name"
48
+ # description "Some description"
49
+ # end
50
+
51
+ # from_to Date.new(2013, 12, 1), Date.new(2013, 12, 5) do
52
+ # name "Some Other Name"
53
+ # description "Some other description"
54
+ # end
55
+ # end
56
+ # end
57
+
58
+ # assert sheha.event? Date.new(2012, 12, 25) # Validating against a know configured event
59
+ # end
60
+
61
+ # def test_sheha_load
62
+ # sheha = Sheha.new
63
+ # sheha.load("sheha.yml")
64
+ # assert sheha.event? Date.new(2012, 12, 25) # Validating against a know configured event
65
+ # end
66
+
67
+ # def test_sheha_config
68
+ # sheha = Sheha.new
69
+ # sheha_hash = YAML::load(File.read('sheha.yml'))
70
+ # sheha.config(sheha_hash)
71
+ # assert sheha.event? Date.new(2012, 12, 25) # Validating against a know configured event
72
+ # end
73
+
74
+ # def test_sheha_events
75
+ # sheha = Sheha.new
76
+ # sheha.add_one_time_event(Date.new(2012, 12, 25)).with_name("Some Name").with_description("Some description")
77
+ # sheha_hash = sheha.events(Date.new(2012, 12, 25))
78
+ # assert sheha_hash.is_a? Hash
79
+ # assert_equal(Date.new(2012, 12, 25), sheha_hash['date'])
80
+ # assert_equal("Some Name", sheha_hash['name'])
81
+ # assert_equal("Some description", sheha_hash['description'])
82
+ # end
83
+
6
84
  def test_add_event
7
85
  sheha = Sheha.new
8
86
  sheha.add(Sheha::OneTimeEvent.new(Date.new(2012, 12, 25)))
@@ -8,6 +8,18 @@ class ShehaEventTest < Test::Unit::TestCase
8
8
  assert event.is_a? Sheha::Event
9
9
  end
10
10
 
11
+ def test_event_can_have_name
12
+ event = Sheha::Event.new 'my_id'
13
+ event.name = "My Name"
14
+ assert_equal("My Name", event.name)
15
+ end
16
+
17
+ def test_event_can_have_name
18
+ event = Sheha::Event.new 'my_id'
19
+ event.description = "My Description"
20
+ assert_equal("My Description", event.description)
21
+ end
22
+
11
23
  def test_event_compare_as_equal
12
24
  event = Sheha::Event.new 'my_id'
13
25
  assert_equal(Sheha::Event.new('my_id'), event)
@@ -8,6 +8,11 @@ class ShehaYearlyEventTest < Test::Unit::TestCase
8
8
  assert event.is_a? Sheha::YearlyEvent
9
9
  end
10
10
 
11
+ def test_new_yearly_event_with_one_digit_month_and_day
12
+ event = Sheha::YearlyEvent.new(2, 5)
13
+ assert event.is_a? Sheha::YearlyEvent
14
+ end
15
+
11
16
  def test_yearly_event_raise_exception_if_invalid_month
12
17
  assert_raise Sheha::InvalidMonthError do
13
18
  Sheha::YearlyEvent.new(13, 25)
@@ -26,6 +31,12 @@ class ShehaYearlyEventTest < Test::Unit::TestCase
26
31
  assert_equal(25, event.month_day)
27
32
  end
28
33
 
34
+ def test_yearly_event_has_given_one_digit_month_and_day
35
+ event = Sheha::YearlyEvent.new(2, 5)
36
+ assert_equal(2, event.month)
37
+ assert_equal(5, event.month_day)
38
+ end
39
+
29
40
  def test_yearly_event_set_month
30
41
  event = Sheha::YearlyEvent.new(12, 25)
31
42
  event.month = 11
@@ -57,11 +68,21 @@ class ShehaYearlyEventTest < Test::Unit::TestCase
57
68
  assert_equal(Sheha::YearlyEvent.new(12, 25), event)
58
69
  end
59
70
 
71
+ def test_yearly_event_with_one_digit_month_and_day_compare_as_equal
72
+ event = Sheha::YearlyEvent.new 2, 5
73
+ assert_equal(Sheha::YearlyEvent.new(2, 5), event)
74
+ end
75
+
60
76
  def test_yearly_event_compare_as_not_equal
61
77
  event = Sheha::YearlyEvent.new 12, 25
62
78
  assert_not_equal(Sheha::YearlyEvent.new(12, 26), event)
63
79
  end
64
80
 
81
+ def test_yearly_event_with_one_digit_month_and_day_compare_as_not_equal
82
+ event = Sheha::YearlyEvent.new 2, 5
83
+ assert_not_equal(Sheha::YearlyEvent.new(2, 6), event)
84
+ end
85
+
65
86
  def test_yearly_event_eql_and_hash_eval_as_equal
66
87
  set = Set.new
67
88
  set.add Sheha::YearlyEvent.new(12, 25)
@@ -81,6 +102,11 @@ class ShehaYearlyEventTest < Test::Unit::TestCase
81
102
  assert_equal(Sheha::YearlyEvent.new(12, 26), event.succ)
82
103
  end
83
104
 
105
+ def test_yearly_event_with_one_digit_month_and_day_has_succ
106
+ event = Sheha::YearlyEvent.new(2, 5)
107
+ assert_equal(Sheha::YearlyEvent.new(2, 6), event.succ)
108
+ end
109
+
84
110
  def test_yearly_events_are_ranges
85
111
  event_1 = Sheha::YearlyEvent.new(12, 25)
86
112
  event_2 = Sheha::YearlyEvent.new(12, 26)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sheha
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Agustin Pelliza