recurs 0.0.4.3 → 0.0.4.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2010 Steve Martin
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -15,6 +15,7 @@ Feature:
15
15
  gem 'rails', '3.0.0'
16
16
  gem 'sqlite3-ruby', :require => 'sqlite3'
17
17
  gem 'recurs' #, :path => '../../../'
18
+ gem 'haml'
18
19
  """
19
20
  #And I run "bundle install"
20
21
  And I run "rails generate recurs_widget Event"
@@ -110,8 +111,8 @@ Feature:
110
111
 
111
112
  %table
112
113
  %tr
113
- %th Starts on
114
- %th Ends on date
114
+ %th Start date
115
+ %th End date
115
116
  %th Recurrence
116
117
  %th Summary
117
118
  %th
@@ -120,8 +121,8 @@ Feature:
120
121
 
121
122
  - @events.each do |event|
122
123
  %tr
123
- %td= event.starts_at
124
- %td= event.ends_at
124
+ %td= event.dtstart
125
+ %td= event.dtend
125
126
  %td= event.rrule
126
127
  %td= event.summary
127
128
  %td= link_to 'Show', event
@@ -163,7 +164,7 @@ Feature:
163
164
  @event = Event.new
164
165
  if flash[:repeats]
165
166
  flash[:scheme] = flash[:repeats]
166
- @event_template = Event.scheme(flash[:repeats]).call
167
+ @recurs_template = Event.scheme(flash[:repeats]).call
167
168
  end
168
169
 
169
170
  respond_to do |format|
@@ -181,10 +182,11 @@ Feature:
181
182
  # POST /events.xml
182
183
  def create
183
184
  unless flash[:repeats]
185
+ flash[:dtstart] = params[:event][:dtstart]
184
186
  flash[:repeats] = params[:event][:repeats].to_i
185
187
  redirect_to new_event_path
186
188
  else
187
- #@event = Event.new(params[:event])
189
+ @event = Event.new(params[:event])
188
190
  Event.scheme(flash[:scheme]).call(:set => params[:event])
189
191
  end
190
192
  end
@@ -9,7 +9,7 @@
9
9
  .field
10
10
  .field
11
11
  = f.label :repeats
12
- = f.select :repeats, Event.schemes
12
+ = f.select :repeats, Event.indexed_schemes
13
13
 
14
14
  - if flash[:interval]
15
15
  .field
@@ -2,8 +2,8 @@
2
2
 
3
3
  %table
4
4
  %tr
5
- %th Starts on
6
- %th Ends on date
5
+ %th Start date
6
+ %th End date
7
7
  %th Recurrence
8
8
  %th Summary
9
9
  %th
@@ -12,8 +12,8 @@
12
12
 
13
13
  - @<%= dname %>s.each do |<%= dname %>|
14
14
  %tr
15
- %td= <%= dname %>.starts_at
16
- %td= <%= dname %>.ends_at
15
+ %td= <%= dname %>.dtstart
16
+ %td= <%= dname %>.dtend
17
17
  %td= <%= dname %>.rrule
18
18
  %td= <%= dname %>.summary
19
19
  %td= link_to 'Show', <%= dname %>
@@ -84,9 +84,9 @@ module Recurs
84
84
 
85
85
  def rule(repeats, args = {})
86
86
  @@rule = ""
87
- @@rule = "RRULE" if (args[:rule] == 'r')
88
- @@rule = "EXRULE" if (args[:rule] == 'e')
89
- @@rule += ":FREQ=#{repeats.to_s.upcase}"
87
+ @@rule = "RRULE:" if (args[:rule] == 'r')
88
+ @@rule = "EXRULE:" if (args[:rule] == 'e')
89
+ @@rule += "FREQ=#{repeats.to_s.upcase}"
90
90
  interval(args)
91
91
  args.each { |ar|
92
92
  unless [:rule, :by_set_pos, :by_week_at, :count, :occurrences, :until, :ends_at, :repeats_every, :interval].include? ar[0]
@@ -204,9 +204,14 @@ module Recurs
204
204
  def schemes
205
205
  Recurs::Rules.schemes
206
206
  end
207
+
208
+ def indexed_schemes
209
+ self.schemes.map {|r| [r, self.schemes.find_index(r)]}
210
+ end
207
211
  end
208
212
 
209
213
  module InstanceMethods
214
+ attr_accessor :repeats, :dtstart, :dtend
210
215
  def initialize
211
216
  @rrules ||= []
212
217
  @exrules ||= []
@@ -1,3 +1,3 @@
1
1
  module Recurs
2
- VERSION = "0.0.4.3"
2
+ VERSION = "0.0.4.4"
3
3
  end
@@ -15,12 +15,14 @@ Gem::Specification.new do |s|
15
15
  s.rubyforge_project = "recurs"
16
16
  s.add_dependency('ri_cal', '>= 0.8.7')
17
17
  s.add_dependency('actic')
18
+ s.add_dependency('haml')
18
19
 
19
20
  s.add_development_dependency 'rspec', '~> 2.3.0'
20
21
  s.add_development_dependency 'aruba', '~> 0.2.7'
21
22
  s.add_development_dependency('rake')
22
23
  s.add_development_dependency('cucumber')
23
24
 
25
+
24
26
  s.files = `git ls-files`.split("\n")
25
27
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
26
28
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
@@ -13,6 +13,9 @@ describe Event do
13
13
 
14
14
  it "should act as recurring" do
15
15
  @event.recurs
16
+ @event.repeats
17
+ @event.dtstart
18
+ @event.dtend
16
19
  end
17
20
 
18
21
  it "should have the schemes" do
@@ -27,14 +30,25 @@ describe Event do
27
30
 
28
31
  end
29
32
 
33
+ it "should have indexed schemes" do
34
+ Event.indexed_schemes.should == [["Daily",0],
35
+ ["Every Weekday ( Mon - Fri )",1],
36
+ ["Every Mon, Wed, Fri",2],
37
+ ["Every Tues, Thurs",3],
38
+ ["Every Weekend",4],
39
+ ["Weekly",5],
40
+ ["Monthly",6],
41
+ ["Yearly",7]]
42
+ end
43
+
30
44
  it "should add an rrule" do
31
45
  @event.add_rrule(:daily).should == "RRULE:FREQ=DAILY"
32
46
  @event.recurs.should == "RRULE:FREQ=DAILY"
33
47
  end
34
48
 
35
49
  it "should add a non specific rule" do
36
- @event.add_rule(:daily).should == ":FREQ=DAILY"
37
- @event.recurs.should == ":FREQ=DAILY"
50
+ @event.add_rule(:daily).should == "FREQ=DAILY"
51
+ @event.recurs.should == "FREQ=DAILY"
38
52
  end
39
53
 
40
54
  it "should add an exrule" do
@@ -25,7 +25,7 @@ describe Recurs::Parser do
25
25
  end
26
26
 
27
27
  it "should swicth off rule type" do
28
- Recurs::Parser.rule(:daily).should == ":FREQ=DAILY"
28
+ Recurs::Parser.rule(:daily).should == "FREQ=DAILY"
29
29
  end
30
30
 
31
31
  it "should create a daily recurrence with a two day interval" do
@@ -108,5 +108,9 @@ describe Recurs::Parser do
108
108
  Recurs::Parser.rrule(:weekly, :count => 3, :by_day => ['fer', 0]).should == "RRULE:FREQ=WEEKLY;BYDAY=SU;COUNT=3"
109
109
  Recurs::Parser.rrule(:yearly, :by_month => :january).should == "RRULE:FREQ=YEARLY;BYMONTH=1"
110
110
  end
111
-
111
+
112
+ it "should have bare rulses ( nor rrule or exrule )" do
113
+ Recurs::Parser.rule(:yearly, :by_month => :january).should == "FREQ=YEARLY;BYMONTH=1"
114
+ end
115
+
112
116
  end
metadata CHANGED
@@ -6,8 +6,8 @@ version: !ruby/object:Gem::Version
6
6
  - 0
7
7
  - 0
8
8
  - 4
9
- - 3
10
- version: 0.0.4.3
9
+ - 4
10
+ version: 0.0.4.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Steve Caney Martin
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-16 00:00:00 +00:00
18
+ date: 2010-12-20 00:00:00 +00:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -47,9 +47,22 @@ dependencies:
47
47
  type: :runtime
48
48
  version_requirements: *id002
49
49
  - !ruby/object:Gem::Dependency
50
- name: rspec
50
+ name: haml
51
51
  prerelease: false
52
52
  requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ segments:
58
+ - 0
59
+ version: "0"
60
+ type: :runtime
61
+ version_requirements: *id003
62
+ - !ruby/object:Gem::Dependency
63
+ name: rspec
64
+ prerelease: false
65
+ requirement: &id004 !ruby/object:Gem::Requirement
53
66
  none: false
54
67
  requirements:
55
68
  - - ~>
@@ -60,11 +73,11 @@ dependencies:
60
73
  - 0
61
74
  version: 2.3.0
62
75
  type: :development
63
- version_requirements: *id003
76
+ version_requirements: *id004
64
77
  - !ruby/object:Gem::Dependency
65
78
  name: aruba
66
79
  prerelease: false
67
- requirement: &id004 !ruby/object:Gem::Requirement
80
+ requirement: &id005 !ruby/object:Gem::Requirement
68
81
  none: false
69
82
  requirements:
70
83
  - - ~>
@@ -75,11 +88,11 @@ dependencies:
75
88
  - 7
76
89
  version: 0.2.7
77
90
  type: :development
78
- version_requirements: *id004
91
+ version_requirements: *id005
79
92
  - !ruby/object:Gem::Dependency
80
93
  name: rake
81
94
  prerelease: false
82
- requirement: &id005 !ruby/object:Gem::Requirement
95
+ requirement: &id006 !ruby/object:Gem::Requirement
83
96
  none: false
84
97
  requirements:
85
98
  - - ">="
@@ -88,11 +101,11 @@ dependencies:
88
101
  - 0
89
102
  version: "0"
90
103
  type: :development
91
- version_requirements: *id005
104
+ version_requirements: *id006
92
105
  - !ruby/object:Gem::Dependency
93
106
  name: cucumber
94
107
  prerelease: false
95
- requirement: &id006 !ruby/object:Gem::Requirement
108
+ requirement: &id007 !ruby/object:Gem::Requirement
96
109
  none: false
97
110
  requirements:
98
111
  - - ">="
@@ -101,7 +114,7 @@ dependencies:
101
114
  - 0
102
115
  version: "0"
103
116
  type: :development
104
- version_requirements: *id006
117
+ version_requirements: *id007
105
118
  description: Specifiy you're recurrence pattern in symbols and strings and get an ical format recurrence string
106
119
  email:
107
120
  - steve@shakewell.co.uk
@@ -115,6 +128,7 @@ files:
115
128
  - .gitignore
116
129
  - Gemfile
117
130
  - Gemfile.lock
131
+ - MIT-lICENCE
118
132
  - README
119
133
  - Rakefile
120
134
  - features/generators.feature