google_holiday_calendar 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2d7daf762af6f01eeb55d3776af29583fd092f3e
4
- data.tar.gz: 4dfe7151d30491d132f4ae187bd4fc19737cf167
3
+ metadata.gz: 87ff02c8c74a34ae2db1d25e804e745673a5365f
4
+ data.tar.gz: e025c7f86ea9dcb8922e74c956cb6b9260c549b0
5
5
  SHA512:
6
- metadata.gz: 528765e8b03de7d4a44be7a4b3156bdc45c3af108e9578ddf6b8c0ebde8bcd54964f499a5dc82146468089c939ddf4e677f7904636fc1d7205bf2c972aa46fbf
7
- data.tar.gz: 776c6002ff00ac3b500c8d6421c5b75532b60bb909666d12556b6beb79f48e1df0f56eb6131a929d2afb732aca96ec1b811832b291da0790cd173a3c6bb33fba
6
+ metadata.gz: fa3d7ec59f3e7387b0b4ff9f00e560c7388dcf36817118444d9c7e5da07d7f2f6b5edaf3b3a12ead4db1d6ce0f3cf0537968296e04ff9046c3e3791f776cf41c
7
+ data.tar.gz: b8f6ba4975fda277f2286abe8ad8e883cbf055a79d512c0c20f392380a3561890a1e4b23858f4e3a91a08468d76fb0d1ba4f77f5a9cfa44c40c41c175d465460
@@ -2,8 +2,7 @@ language: ruby
2
2
  rvm:
3
3
  - 2.0.0
4
4
  - 2.1.0
5
- before_install:
6
- - gem install bundler -v '= 1.5.2'
5
+ - 2.1.1
7
6
  branches:
8
7
  only:
9
8
  - master
@@ -0,0 +1,11 @@
1
+ ## master
2
+ [full changelog](http://github.com/sue445/google_holiday_calendar/compare/v0.0.2...master)
3
+
4
+ ## v0.0.2
5
+ [full changelog](http://github.com/sue445/google_holiday_calendar/compare/v0.0.1...v0.0.2)
6
+
7
+ * bugfix: NoMethodError if not exists holidays
8
+ * Impl `GoogleHolidayCalendar::Calendar#holiday?`
9
+
10
+ ## v0.0.1
11
+ * first release
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # GoogleHolidayCalendar [![Build Status](https://travis-ci.org/sue445/google_holiday_calendar.png?branch=master)](https://travis-ci.org/sue445/google_holiday_calendar) [![Coverage Status](https://coveralls.io/repos/sue445/google_holiday_calendar/badge.png)](https://coveralls.io/r/sue445/google_holiday_calendar) [![Dependency Status](https://gemnasium.com/sue445/google_holiday_calendar.png)](https://gemnasium.com/sue445/google_holiday_calendar) [![Code Climate](https://codeclimate.com/github/sue445/google_holiday_calendar.png)](https://codeclimate.com/github/sue445/google_holiday_calendar)
1
+ # GoogleHolidayCalendar [![Gem Version](https://badge.fury.io/rb/google_holiday_calendar.png)](http://badge.fury.io/rb/google_holiday_calendar) [![Build Status](https://travis-ci.org/sue445/google_holiday_calendar.png?branch=master)](https://travis-ci.org/sue445/google_holiday_calendar) [![Coverage Status](https://coveralls.io/repos/sue445/google_holiday_calendar/badge.png)](https://coveralls.io/r/sue445/google_holiday_calendar) [![Dependency Status](https://gemnasium.com/sue445/google_holiday_calendar.png)](https://gemnasium.com/sue445/google_holiday_calendar) [![Code Climate](https://codeclimate.com/github/sue445/google_holiday_calendar.png)](https://codeclimate.com/github/sue445/google_holiday_calendar)
2
2
 
3
3
  Get holidays via Google Calendar.
4
4
 
@@ -26,13 +26,19 @@ require "google_holiday_calendar"
26
26
 
27
27
  usa_calendar = GoogleHolidayCalendar::Calendar.new(country: "usa", lang: "en")
28
28
 
29
- usa_calendar.holidays(start_date: "2014-01-01", end_date: "2014-03-01, limit: 5")
29
+ usa_calendar.holidays(start_date: "2014-01-01", end_date: "2014-03-01", limit: 5)
30
30
  # => {Wed, 01 Jan 2014=>"New Year's Day", Mon, 20 Jan 2014=>"Martin Luther King Day", Fri, 14 Feb 2014=>"Valentine's Day", Mon, 17 Feb 2014=>"Presidents' Day (Washington's Birthday)"}
31
31
 
32
32
  japan_calendar = GoogleHolidayCalendar::Calendar.new(country: "japanese", lang: "ja")
33
33
 
34
- japan_calendar.holidays(start_date: "2014-01-01", end_date: "2014-03-01, limit: 5")
34
+ japan_calendar.holidays(start_date: "2014-01-01", end_date: "2014-03-01", limit: 5)
35
35
  # => {Wed, 01 Jan 2014=>"元日", Thu, 02 Jan 2014=>"銀行休業日", Fri, 03 Jan 2014=>"銀行休業日", Mon, 13 Jan 2014=>"成人の日", Tue, 11 Feb 2014=>"建国記念の日"}
36
+
37
+ japan_calendar.holiday?("2014-01-01")
38
+ # => true
39
+
40
+ japan_calendar.holiday?("2014-02-01")
41
+ # => false
36
42
  ```
37
43
 
38
44
  ## Usage (via bash)
@@ -44,7 +50,9 @@ $ date +"%Y-%m-%d"
44
50
 
45
51
  $ google_holiday_calendar
46
52
  2014-03-09: Daylight Saving Time starts
53
+ ```
47
54
 
55
+ ```sh
48
56
  # get holidays (2014/01/01 - 2014/07/01)
49
57
  $ google_holiday_calendar --start-date=2014-01-01 --end-date=2014-07-01
50
58
  2014-01-01: New Year's Day
@@ -57,14 +65,17 @@ $ google_holiday_calendar --start-date=2014-01-01 --end-date=2014-07-01
57
65
  2014-05-11: Mothers' Day
58
66
  2014-05-26: Memorial Day
59
67
  2014-06-15: Fathers' Day
68
+ ```
60
69
 
70
+ ```sh
61
71
  # get holidays (with limit)
62
72
  $ google_holiday_calendar --start-date=2014-01-01 --end-date=2014-07-01 --limit=3
63
- google_holiday_calendar --start-date=2014-01-01 --end-date=2014-07-01 --limit=3
64
73
  2014-02-14: Valentine's Day
65
74
  2014-02-17: Presidents' Day (Washington's Birthday)
66
75
  2014-04-13: Thomas Jefferson's Birthday
76
+ ```
67
77
 
78
+ ```sh
68
79
  # get holidays (specify country and language)
69
80
  $ google_holiday_calendar --start-date=2014-01-01 --end-date=2014-07-01 --country=japanese --lang=ja
70
81
  2014-01-01: 元日
@@ -79,6 +90,9 @@ $ google_holiday_calendar --start-date=2014-01-01 --end-date=2014-07-01 --countr
79
90
  2014-05-06: みどりの日 振替休日
80
91
  ```
81
92
 
93
+ ## More reference
94
+ http://rubydoc.info/github/sue445/google_holiday_calendar
95
+
82
96
  ## Contributing
83
97
 
84
98
  1. Fork it ( http://github.com/sue445/google_holiday_calendar/fork )
@@ -16,6 +16,7 @@ module GoogleHolidayCalendar
16
16
  # @param end_date [String,Date] end date ("YYYY-MM-DD" or Date). not contain this date. default: 1 month after the start_date
17
17
  # @param limit [Integer]
18
18
  # @return [Hash] key: date, value: holiday title
19
+ # @return [{}] if found no holidays, return empty hash
19
20
  def holidays(start_date: nil, end_date: nil, limit: 10)
20
21
  start_date = Date.today unless start_date
21
22
  end_date = to_date(start_date) + 1.month unless end_date
@@ -31,7 +32,10 @@ module GoogleHolidayCalendar
31
32
 
32
33
  calendar_response = fetch(url)
33
34
 
34
- holidays = calendar_response["feed"]["entry"].inject({}){ |res, entry|
35
+ entries = calendar_response["feed"]["entry"]
36
+ return {} unless entries
37
+
38
+ holidays = entries.inject({}){ |res, entry|
35
39
  date = Date.parse(entry["gd$when"][0]["startTime"])
36
40
  title = entry["title"]["$t"]
37
41
  res[date] =title
@@ -41,6 +45,13 @@ module GoogleHolidayCalendar
41
45
  Hash[holidays.sort_by{|k,v| k }]
42
46
  end
43
47
 
48
+ # whether arg is holiday
49
+ # @param arg [#to_date, String] {Date}, {Time}, or date like String (ex. "YYYY-MM-DD")
50
+ def holiday?(arg)
51
+ date = to_date(arg)
52
+ holidays(start_date: date, end_date: date + 1.day, limit: 1).length > 0
53
+ end
54
+
44
55
  private
45
56
 
46
57
  # @param url [String]
@@ -62,6 +73,8 @@ module GoogleHolidayCalendar
62
73
  def to_date(arg)
63
74
  if arg.is_a?(String)
64
75
  Date.parse(arg)
76
+ elsif arg.respond_to?(:to_date)
77
+ arg.to_date
65
78
  else
66
79
  arg
67
80
  end
@@ -1,3 +1,3 @@
1
1
  module GoogleHolidayCalendar
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -43,6 +43,13 @@ describe GoogleHolidayCalendar::Calendar do
43
43
 
44
44
  it_behaves_like :holidays_in_japan_at_jan
45
45
  end
46
+
47
+ context "When not found holidays" do
48
+ let(:start_date){ "2014-06-01" }
49
+ let(:end_date) { "2014-07-01" }
50
+
51
+ it{ should == {}}
52
+ end
46
53
  end
47
54
 
48
55
  context "When holidays in America" do
@@ -53,4 +60,24 @@ describe GoogleHolidayCalendar::Calendar do
53
60
  end
54
61
  end
55
62
  end
63
+
64
+ describe "#holiday?" do
65
+ subject{ calendar.holiday?(date) }
66
+
67
+ let(:calendar){ GoogleHolidayCalendar::Calendar.new(country: country, lang: lang) }
68
+ let(:country) { "japanese" }
69
+ let(:lang) { "ja" }
70
+
71
+ context "arg is holiday" do
72
+ let(:date){ Date.parse("2014-01-01") }
73
+
74
+ it{ should be true }
75
+ end
76
+
77
+ context "arg is not holiday" do
78
+ let(:date){ Date.parse("2014-02-01") }
79
+
80
+ it{ should be false }
81
+ end
82
+ end
56
83
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google_holiday_calendar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - sue445
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-23 00:00:00.000000000 Z
11
+ date: 2014-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -163,6 +163,7 @@ files:
163
163
  - ".rspec"
164
164
  - ".travis.yml"
165
165
  - ".yardopts"
166
+ - CHANGELOG.md
166
167
  - Gemfile
167
168
  - LICENSE.txt
168
169
  - README.md
@@ -198,7 +199,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
198
199
  version: '0'
199
200
  requirements: []
200
201
  rubyforge_project:
201
- rubygems_version: 2.2.0
202
+ rubygems_version: 2.2.2
202
203
  signing_key:
203
204
  specification_version: 4
204
205
  summary: Get holidays via Google Calendar.