ice_t 0.0.3 → 0.0.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: e836e34bd0669110cda706f4a8d0d378768fcabb
4
- data.tar.gz: 8e95eb9dab2a959d6ad93f31bc749a28e0586633
3
+ metadata.gz: 4f45183041524f2add8f09a2a163212717bd35ca
4
+ data.tar.gz: a4aff30ce9adff183d1b5542e97cb6779fa46d99
5
5
  SHA512:
6
- metadata.gz: fe6cfe556bd2a5f8361fd9ebcc288c3a4a5984e19647f754ec590999a08ea666c3a0570b59b992e054d1575d823cd653db4aff55caec1cc6776939941f695a06
7
- data.tar.gz: baa10bc4ffb1269360a6ffddfc1f2642300badb8b17ff1ebaecbd60b85f4cf5cb75a0cad9a8111c9ec5da5461ff09e1f195fd013dcd46ce2ce3cbe883fd95c18
6
+ metadata.gz: e7a0453d29ab8baadd22ab916b3306c8da871d27d26aee24ec4ee8a8f7db496400f5a12f1433e6aac8e54b7da237df37f41499af71c1a0a2d26568970089fb27
7
+ data.tar.gz: ca7784d2b5274e61409d60dda498071889631629c92babada557d4d13f5b4e3703f3504cad534ef5a35f71d6311db01b7cf09dbe5861389270f08c83e94485b9
data/README.md CHANGED
@@ -1,9 +1,11 @@
1
1
  # IceT
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/ice_t.png)](http://badge.fury.io/rb/ice_t)
3
4
  [![Code Climate](https://codeclimate.com/github/XORwell/ice_t.png)](https://codeclimate.com/github/XORwell/ice_t)
4
5
  [![Build Status](https://travis-ci.org/XORwell/ice_t.png)](https://travis-ci.org/XORwell/ice_t)
6
+ [![Dependency Status](https://gemnasium.com/XORwell/ice_t.png)](https://gemnasium.com/XORwell/ice_t)
5
7
 
6
- TODO: Write a gem description
8
+ IceT is a ruby library for handling repeated events.
7
9
 
8
10
  ## Installation
9
11
 
@@ -21,17 +23,55 @@ Or install it yourself as:
21
23
 
22
24
  ## Usage
23
25
 
24
- TODO: Write usage instructions here
26
+ ### Creating rules
25
27
 
28
+ ```ruby
29
+ rule = IceT::Rule::Secondly.new(42) # => step by 42 seconds
30
+ rule = IceT::Rule::Minutely.new(42) # => step by 42 minutes
31
+ rule = IceT::Rule::Hourly.new(42) # => step by 42 hours
32
+ rule = IceT::Rule::Daily.new(42) # => step by 42 days
33
+ rule = IceT::Rule::Weekly.new(42) # => step by 42 weeks
34
+ rule = IceT::Rule::Monthly.new(42) # => step by 42 months
35
+ rule = IceT::Rule::Yearly.new(42) # => step by 42 years
36
+ ```
26
37
 
27
- ## Tipps
38
+ ### Get time occurrences
28
39
 
29
- ### Sorting rules:
40
+ ```ruby
41
+ rule.occurrences # => Array of times
42
+ ```
30
43
 
31
- [r2,r1,r3].sort.collect(&:interval)
44
+ ### Schedule
45
+ The Schedule helps on dealing with multiple rules.
32
46
 
33
- ### Comparing comparing:
47
+ ```ruby
48
+ schedule = IceT::Schedule.new(start_time: Time.now, end_time: Time.now + 4.months)
49
+ schedule.add_rule my_daily_rule
50
+ schedule.add_rule my_monthly_rule
34
51
 
35
- daily(1) < daily(2)
52
+ schedule.rules # => Array of rules
53
+ schedule.occurrences # => Merged occurrences
54
+ ```
36
55
 
56
+ ### Persistence
57
+
58
+ Lets say you want to your Schedule in your database
59
+ and use it later again. You can do this:
60
+
61
+ ```ruby
62
+ json = schedule.to_json
63
+ schedule = IceT::Schedule.from_json(json)
64
+ ```
65
+
66
+ ## Tipps - doc in development
67
+
68
+ ### Sorting rules:
69
+
70
+ [r2,r1,r3].sort.collect(&:interval)
71
+
72
+ ### Comparing rules:
73
+
74
+ ```ruby
75
+ IceT::Rule::Daily.new(1) < IceT::Rule::Monthly.new(1) # => true
76
+ ```
37
77
  r2.between?(r1, r3)
@@ -0,0 +1,10 @@
1
+ module IceT
2
+ module Rule
3
+ class Weekly < Base
4
+ class << self
5
+ def to_i; 1.week.to_i end
6
+ def unit; :weeks end
7
+ end
8
+ end
9
+ end
10
+ end
data/lib/ice_t/rule.rb CHANGED
@@ -9,6 +9,7 @@ require 'ice_t/rule/secondly'
9
9
  require 'ice_t/rule/minutely'
10
10
  require 'ice_t/rule/hourly'
11
11
  require 'ice_t/rule/daily'
12
+ require 'ice_t/rule/weekly'
12
13
  require 'ice_t/rule/monthly'
13
14
  require 'ice_t/rule/yearly'
14
15
 
data/lib/ice_t/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module IceT
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -0,0 +1,6 @@
1
+ require 'spec_helper'
2
+
3
+ describe IceT::Rule::Weekly do
4
+ let(:klass) { IceT::Rule::Weekly }
5
+ it_behaves_like "a rule"
6
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ice_t
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Nennemann
@@ -136,6 +136,7 @@ files:
136
136
  - lib/ice_t/rule/monthly.rb
137
137
  - lib/ice_t/rule/repository.rb
138
138
  - lib/ice_t/rule/secondly.rb
139
+ - lib/ice_t/rule/weekly.rb
139
140
  - lib/ice_t/rule/yearly.rb
140
141
  - lib/ice_t/schedule.rb
141
142
  - lib/ice_t/time_helper.rb
@@ -149,6 +150,7 @@ files:
149
150
  - spec/rules/monthly_rule_spec.rb
150
151
  - spec/rules/rules_repository_spec.rb
151
152
  - spec/rules/secondly_rule_spec.rb
153
+ - spec/rules/weekly_rule_spec.rb
152
154
  - spec/rules/yearly_rule_spec.rb
153
155
  - spec/schedule_spec.rb
154
156
  - spec/spec_helper.rb
@@ -186,6 +188,7 @@ test_files:
186
188
  - spec/rules/monthly_rule_spec.rb
187
189
  - spec/rules/rules_repository_spec.rb
188
190
  - spec/rules/secondly_rule_spec.rb
191
+ - spec/rules/weekly_rule_spec.rb
189
192
  - spec/rules/yearly_rule_spec.rb
190
193
  - spec/schedule_spec.rb
191
194
  - spec/spec_helper.rb