hiccup 0.5.3 → 0.5.4

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: b30ca9bc9c9e2acf7107c08c0dd88ed0a869585c
4
- data.tar.gz: 68dd036beda7f04cb915eae77a5fe0033b2454f3
3
+ metadata.gz: 76c7bd6b71cf03ea4f9897a640bb377c9b99fbcd
4
+ data.tar.gz: 5d8d072d237f71ce14cc1e31da9ba3bb6917a854
5
5
  SHA512:
6
- metadata.gz: 66f8701394c598462e4178ccc5a10c915591c2206060a37c1724832a66c15712ea07652717e8f7d0bfdf8aa05c854507932b4b04907c219f5da62b8a58d8437f
7
- data.tar.gz: c644a16b5d0c552c04ed193229236764d160f075f6679383f129812057da61ebb7d936976f0dffe70f0944f31a1e96e05dcbd2025f96a623c5ddeb6a22f04522
6
+ metadata.gz: 89735aa481b1b83673566f0aebc0454c8a391a0f385db052d6ca727ce731247b897318ff1df39ad0d6b6d9e98f0c7953bfe1076a8ded0aa54c459556dba099b5
7
+ data.tar.gz: 5867b146eaecda8e888c3399cf7f46e63d163e5acfe09f63696d6856ef775cf3690e4da4f77f92dbbe75ade0a2e102e1aaac9968a2df0f5541ef2045fb89cd5c
data/.travis.yml ADDED
@@ -0,0 +1,6 @@
1
+ # .travis.yml
2
+ language: ruby
3
+ rvm:
4
+ - 2.0.0
5
+ script:
6
+ - bundle exec rake test
data/README.mdown CHANGED
@@ -1,8 +1,11 @@
1
1
  # Hiccup
2
2
 
3
- Hiccup mixes a-la-cart recurrence features into your recurring model. It doesn't dictate the data structure of your model, just the interface. It works just like Devise does for authenticatable models.
3
+ [![Build Status](https://travis-ci.org/boblail/hiccup.png?branch=master)](https://travis-ci.org/boblail/hiccup)
4
+ [![Code Climate](https://codeclimate.com/github/boblail/hiccup.png)](https://codeclimate.com/github/boblail/hiccup)
4
5
 
5
- Hiccup does provide an extremely lightweight `Schedule` class that mixes in all of Hiccup's feature, but you don't have to use Hiccup's Schedul if you don't want to.
6
+ Hiccup mixes a-la-cart recurrence features into your recurring model. It doesn't dictate the data structure of your model, just the interface. It works like Devise does for authenticatable models.
7
+
8
+ Hiccup does provide a lightweight `Schedule` class that mixes in all of Hiccup's feature, but you don't have to use Hiccup's Schedule if you don't want to.
6
9
 
7
10
  ### Usage
8
11
 
@@ -52,14 +55,57 @@ Schedule.new(:kind => :monthly, :monthly_pattern => [[2, "Sunday"], [4, "Sunday"
52
55
 
53
56
  Supplies methods for creating instances of a recurring pattern
54
57
 
58
+ Examples
59
+
60
+ ```ruby
61
+ schedule = Schedule.new(
62
+ :kind => :weekly,
63
+ :weekly_pattern => %w{Monday Wednesday Friday},
64
+ :start_date => Date.new(2009, 3, 15))
65
+
66
+ # includes?
67
+ schedule.includes? Date.new(2009, 5, 20) # => true
68
+ schedule.includes? Date.new(2009, 3, 15) # => false (3/15/09 is a Sunday)
69
+
70
+ # occurrences_between
71
+ schedule.occurrences_between(
72
+ Date.new(2009, 3, 26),
73
+ Date.new(2009, 3, 31)) #=> [Fri, 27 Mar 2009, Mon, 30 Mar 2009]
74
+
75
+ # n_occurrences_before
76
+ schedule.n_occurrences_before(3, Date.new(2009, 3, 31)) # => [Mon, 30 Mar 2009, Fri, 27 Mar 2009, Wed, 25 Mar 2009]
77
+ ```
78
+
79
+
80
+
55
81
  ### Validatable
56
82
 
57
83
  Mixes in ActiveModel validations for recurrence models
58
84
 
85
+
86
+
59
87
  ### Humanizable
60
88
 
61
89
  Represents a recurring pattern in a human-readable string
62
90
 
91
+ Examples:
92
+
93
+ ```ruby
94
+ # A monthly recurrence
95
+ schedule = Schedule.new(:kind => :monthly, :monthly_pattern => [[-1, "Tuesday"]])
96
+ schedule.humanize # => "The last Tuesday of every month"
97
+
98
+ # With skips
99
+ schedule = Schedule.new(:kind => :weekly, :weekly_pattern => %w[Sunday], :skip => 2)
100
+ schedule.humanize # => "Every other Sunday"
101
+
102
+ # An anniversary
103
+ schedule = Schedule.new(:kind => :annually, start_date: Date.new(2012, 10, 1))
104
+ schedule.humanize # => "Every year on October 1"
105
+ ```
106
+
107
+
108
+
63
109
  ### Inferable
64
110
 
65
111
  Infers a schedule from an array of dates
@@ -77,6 +123,31 @@ schedule = Schedule.infer %w{2012-3-6 2012-3-8 2012-3-15 2012-3-20 2012-3-27 201
77
123
  schedule.humanize # => "Every Tuesday and Thursday"
78
124
  ```
79
125
 
126
+
127
+
80
128
  ### Serializable
81
129
 
82
130
  Supports serializing and deserializing a recurrence pattern to an array of formats
131
+
132
+ Examples:
133
+
134
+ ```ruby
135
+ schedule = Schedule.from_ical <<-ICAL
136
+ DTSTART;VALUE=DATE-TIME:20090101T000000Z
137
+ RRULE:FREQ=WEEKLY;INTERVAL=2;BYDAY=TU,TH
138
+ ICAL
139
+ schedule.humanize # => "Tuesday and Thursday of every other week"
140
+
141
+ schedule = Schedule.new(
142
+ :kind => :weekly,
143
+ :weekly_pattern => %w{Tuesday Thursday},
144
+ :start_date => DateTime.new(2009, 1, 1),
145
+ :skip => 2)
146
+ schedule.to_ical # => "DTSTART;VALUE=DATE-TIME:20090101T000000Z\nRRULE:FREQ=WEEKLY;INTERVAL=2;BYDAY=TU,TH\n"
147
+ ```
148
+
149
+
150
+
151
+ ## License
152
+
153
+ Copyright (c) 2012 Bob Lail, released under the MIT license
data/hiccup.gemspec CHANGED
@@ -13,11 +13,11 @@ Gem::Specification.new do |s|
13
13
 
14
14
  s.rubyforge_project = "hiccup"
15
15
 
16
- s.add_dependency "activesupport", "~> 3.2.8"
16
+ s.add_dependency "activesupport", ">= 3.2.8"
17
17
  s.add_dependency "builder"
18
18
 
19
19
  s.add_development_dependency "ri_cal"
20
- s.add_development_dependency "rails", "~> 3.2.8"
20
+ s.add_development_dependency "rails", ">= 3.2.8"
21
21
  s.add_development_dependency "turn"
22
22
  s.add_development_dependency "simplecov"
23
23
  s.add_development_dependency "shoulda-context"
@@ -53,6 +53,8 @@ module Hiccup
53
53
  date == first_occurrence_on_or_after(date)
54
54
  end
55
55
  alias :contains? :occurs_on
56
+ alias :includes? :occurs_on
57
+ alias :member? :occurs_on
56
58
  alias :predicts? :occurs_on
57
59
 
58
60
 
@@ -1,5 +1,5 @@
1
1
  require "hiccup"
2
- require "active_model/validations"
2
+ require "active_model"
3
3
 
4
4
 
5
5
  module Hiccup
@@ -1,3 +1,3 @@
1
1
  module Hiccup
2
- VERSION = "0.5.3"
2
+ VERSION = "0.5.4"
3
3
  end
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hiccup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bob Lail
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-15 00:00:00.000000000 Z
11
+ date: 2014-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: 3.2.8
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: 3.2.8
27
27
  - !ruby/object:Gem::Dependency
@@ -56,14 +56,14 @@ dependencies:
56
56
  name: rails
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: 3.2.8
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: 3.2.8
69
69
  - !ruby/object:Gem::Dependency
@@ -132,6 +132,7 @@ extra_rdoc_files: []
132
132
  files:
133
133
  - .gitignore
134
134
  - .simplecov
135
+ - .travis.yml
135
136
  - Gemfile
136
137
  - README.mdown
137
138
  - Rakefile
@@ -192,7 +193,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
193
  version: '0'
193
194
  requirements: []
194
195
  rubyforge_project: hiccup
195
- rubygems_version: 2.0.2
196
+ rubygems_version: 2.0.14
196
197
  signing_key:
197
198
  specification_version: 4
198
199
  summary: A library for working with things that recur