kalindar 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OWYxYTRjNjhkOWMzMTEyMzUxMDQyMzc3ZjEyN2MyNGQ1ZjI2Nzg5Mw==
4
+ ODM4YWQ2ZWIxNzE4NjA1NmZlZmY0NDBhM2QwMTQ1ZWNmMzBlNTg2NQ==
5
5
  data.tar.gz: !binary |-
6
- OTUyYTVhMTU2ZWU5MjkwMTYxMzk2YzA4YWQxZjFjNzVlYmVmYTkzNA==
6
+ Y2E2ZWNiYmI1YmU2NjNkZTdjNzFkZWI4NjEwNTRhNDBiMjBlODdjZA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OWVmOTY4ODFiNWE5Njc5YzVlYjhhZWFlMTc2MTk5OGJhMDVlOGY3NDBkNjc0
10
- NTlmOGVmMGY0MjZjNzlkYmE0YjgxZjhlMjE4NTIzNWYyYWRiZGY5ZjE3NDRk
11
- MWYwMTQ4YWU5YTJjNjBjNzU3OGFjZDhiMmY1Y2E5ODYwMzI3OTk=
9
+ N2JjZDQ1MWY1Mzk3OWVmODExYjNmMmU2NDEyMTNjNzFlYTFiYzA5YjRlNTQz
10
+ ODJmMDNiNzViYzNjZWRkNWU4OWYwYThjN2M3NDVmY2Q5YTQzN2VjMzljMmVm
11
+ OTFkMjg1YWFhZjNiMTZkOTcxNTYyY2Q5YmJjNjQ0OWJmOWZkYTA=
12
12
  data.tar.gz: !binary |-
13
- ODA5YzI2MmM2ODEzZDcxODg2OThmY2UzNWU0ZjA1MTQyMTU2YzJjZjM4YWY0
14
- ZWEyM2IyNzU1NGQ1YWM2OTk5YjM1OTVlNmE5Yzk1YTQxMjUzMzZjN2Q3OWNm
15
- NjU0YTc3OTlmZmIwOTQ2ZmNjZmM3ZDc2YjA1YTZjYTBmOGIzMTM=
13
+ MjRkYmNhYjE2YTg2Nzc2MDAyNTUzM2ExYjlhYzRjYmEwZWY5NjM3NTBlODY1
14
+ M2U2ODVmZDRhNmU4Y2I0NjM3Y2VlZDdmNWVmNzc4Njk2ZjJiMTRmMDllOWIz
15
+ M2JlZjk4ZDI1OTk4ZTE5ZDNhNWJlYjI4YmI5OWJlMjFjOTA4ZTg=
data/Gemfile.lock ADDED
@@ -0,0 +1,57 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ <<<<<<< Updated upstream
5
+ <<<<<<< Updated upstream
6
+ kalindar (0.1.1)
7
+ =======
8
+ kalindar (0.1.0)
9
+ >>>>>>> Stashed changes
10
+ =======
11
+ kalindar (0.1.0)
12
+ >>>>>>> Stashed changes
13
+ i18n (~> 0.6)
14
+ ri_cal (~> 0.8)
15
+ sinatra (~> 1.4)
16
+ slim (~> 2.0)
17
+
18
+ GEM
19
+ remote: https://rubygems.org/
20
+ specs:
21
+ diff-lcs (1.2.5)
22
+ i18n (0.6.9)
23
+ rack (1.5.2)
24
+ rack-protection (1.5.3)
25
+ rack
26
+ rake (10.3.2)
27
+ ri_cal (0.8.8)
28
+ rspec (3.0.0)
29
+ rspec-core (~> 3.0.0)
30
+ rspec-expectations (~> 3.0.0)
31
+ rspec-mocks (~> 3.0.0)
32
+ rspec-core (3.0.3)
33
+ rspec-support (~> 3.0.0)
34
+ rspec-expectations (3.0.3)
35
+ diff-lcs (>= 1.2.0, < 2.0)
36
+ rspec-support (~> 3.0.0)
37
+ rspec-mocks (3.0.3)
38
+ rspec-support (~> 3.0.0)
39
+ rspec-support (3.0.3)
40
+ sinatra (1.4.5)
41
+ rack (~> 1.4)
42
+ rack-protection (~> 1.4)
43
+ tilt (~> 1.3, >= 1.3.4)
44
+ slim (2.0.3)
45
+ temple (~> 0.6.6)
46
+ tilt (>= 1.3.3, < 2.1)
47
+ temple (0.6.8)
48
+ tilt (1.4.1)
49
+
50
+ PLATFORMS
51
+ ruby
52
+
53
+ DEPENDENCIES
54
+ bundler (~> 1.6)
55
+ kalindar!
56
+ rake
57
+ rspec
data/config.json CHANGED
@@ -5,8 +5,10 @@
5
5
  // Specify one or more ics files.
6
6
  // You can skip the list (['one.ics', 'two.ics']) syntax for single ones.
7
7
  // The first calender is the one to be edited.
8
- "calendar_files": "kalindar.ics",
8
+ "calendar_files": ["kalindar.ics", "spec/testcal.ics"],
9
9
 
10
10
  // Specify the locale (currently 'de' or 'en').
11
- "locale": "de"
11
+ "locale": "de",
12
+
13
+ "preset_locations": ["Kneipe", "gr. Seminarraum"]
12
14
  }
data/config.ru CHANGED
@@ -1,2 +1,4 @@
1
1
  require 'kalindar'
2
+ require 'kalindar/app'
3
+
2
4
  run KalindarApp
data/kalindar.gemspec CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.add_dependency "sinatra", "~> 1.4"
23
23
  spec.add_dependency "slim", "~> 2.0"
24
24
  spec.add_dependency "i18n", "~> 0.6"
25
+ spec.add_dependency "listen"
25
26
 
26
27
  spec.add_development_dependency "bundler", "~> 1.6"
27
28
  spec.add_development_dependency "rake"
data/lib/kalindar/app.rb CHANGED
@@ -5,17 +5,33 @@ require 'sinatra/base'
5
5
  require 'slim'
6
6
  require 'i18n'
7
7
  require 'i18n/backend/fallbacks'
8
+ require 'listen'
8
9
 
9
10
  # Sinatra App for Kalindar, show ics files.
10
11
  class KalindarApp < Sinatra::Base
11
12
  $conf = JSON.load(File.new('config.json'))
12
- $cal = EventCalendar.new($conf['calendar_files'])
13
+
14
+ # Read in calendar files, fill global cal var.
15
+ def load_global_cal
16
+ $cal = EventCalendar.new($conf['calendar_files'])
17
+ end
18
+
19
+ load_global_cal
13
20
 
14
21
  configure do
15
22
  I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)
16
23
  I18n.load_path = Dir[File.join(settings.root, 'locales', '*.yml')]
17
24
  I18n.backend.load_translations
18
25
  I18n.default_locale = $conf['locale'].to_sym
26
+
27
+ # Watch for calendar file changes.
28
+ [*$conf['calendar_files']].each do |file|
29
+ path = Pathname.new(file).realpath
30
+ dir = path.dirname.to_s
31
+ base = path.basename.to_s
32
+ listener = Listen.to(dir, only: /#{base}/) { load_global_cal }
33
+ listener.start
34
+ end
19
35
  end
20
36
 
21
37
  # Will use http-verb PUT
@@ -69,11 +85,14 @@ class KalindarApp < Sinatra::Base
69
85
  get '/events/twoday' do
70
86
  @events = {}
71
87
  # events from today to in 30 days
72
- (DateTime.now .. DateTime.now + 30).each do |day|
88
+ (DateTime.now .. DateTime.now + 2).each do |day|
73
89
  #@events[d] = $cal.events_for(d)
74
90
  @events[day] = $cal.find_events day.to_date
75
91
  end
76
- @events = @events.values.flatten.sort_by {|e| e.start_time}
92
+
93
+ #@events = @events.values.flatten.sort_by {|e| e.start_time}
94
+ @today = Date.today
95
+ @tomorrow = @today + 1
77
96
  slim :twoday_list
78
97
  end
79
98
 
@@ -85,7 +104,9 @@ class KalindarApp < Sinatra::Base
85
104
  end
86
105
  begin
87
106
  event = Event.create_from_params params
88
- rescue
107
+ rescue Exception => e
108
+ puts e.inspect
109
+ puts e.backtrace
89
110
  return 502, "Eingabefehler"
90
111
  end
91
112
 
@@ -140,4 +161,16 @@ class KalindarApp < Sinatra::Base
140
161
  $cal.calendars.first.write_back!
141
162
  redirect '/'
142
163
  end
164
+
165
+ post '/events/full' do
166
+ params[:calendars]
167
+ @events = {}
168
+ # events from today to in 30 days
169
+ (DateTime.now .. DateTime.now + 30).each do |day|
170
+ #@events[d] = $cal.events_for(d)
171
+ # bring chosen calendars into equation
172
+ @events[day] = $cal.find_events day.to_date
173
+ end
174
+ slim :event_list
175
+ end
143
176
  end
@@ -22,6 +22,8 @@ de:
22
22
  1w: "eine Woche"
23
23
  save: "speichern"
24
24
  cancel: "abbrechen"
25
+ today: "heute"
26
+ tomorrow: "morgen"
25
27
  time:
26
28
  formats:
27
29
  short: "%d.%m.%Y"
@@ -22,6 +22,8 @@ en:
22
22
  1w: "a week"
23
23
  save: "save"
24
24
  cancel: "cancel"
25
+ today: "today"
26
+ tomorrow: "tomorrow"
25
27
  time:
26
28
  formats:
27
29
  short: "%Y/%m/%d"
@@ -6,6 +6,11 @@
6
6
  margin: 0 0 0 0;
7
7
  padding: 0 0 0 0;
8
8
  border-bottom: solid 1px black;
9
+ background-image: -moz-linear-gradient(
10
+ center top,
11
+ rgb(180,180,180) 0%,
12
+ rgb(220,220,220) 100%
13
+ );
9
14
  }
10
15
  ul.day_list {
11
16
  list-style: none;
@@ -23,6 +28,20 @@ li.day {
23
28
  border-right: solid 1px;
24
29
  background-color: #F4F4F4;
25
30
  margin-bottom: 0.5em;
31
+ background-image: -webkit-gradient(
32
+ linear,
33
+ left top,
34
+ left bottom,
35
+ color-stop(0.5, rgb(221,221,221)),
36
+ color-stop(0.5, rgb(255,255,255))
37
+ );
38
+ background-image: -moz-linear-gradient(
39
+ center top,
40
+ rgb(221,221,221) 50%,
41
+ rgb(255,255,255) 50%
42
+ );
43
+ -moz-box-shadow: inset 0 0 10px #000000;
44
+ box-shadow: inset 0 0 10px #000000;
26
45
  }
27
46
 
28
47
  li.saturday {
@@ -53,6 +72,18 @@ ul.event_list {
53
72
  ul.event_list li {
54
73
  margin-left: 0.1em;
55
74
  clear: both;
75
+ background-image: -webkit-gradient(
76
+ linear,
77
+ left top,
78
+ left bottom,
79
+ color-stop(0.5, rgb(000,221,221)),
80
+ color-stop(0.5, rgb(255,255,255))
81
+ );
82
+ background-image: -moz-linear-gradient(
83
+ center top,
84
+ rgb(180,180,180) 0%,
85
+ rgb(220,220,220) 100%
86
+ );
56
87
  }
57
88
 
58
89
  #event {
@@ -86,3 +117,9 @@ ul.event_list li {
86
117
  #edit_event_link {
87
118
  margin-left: 1em;
88
119
  }
120
+
121
+ ul.twoday_list {
122
+ }
123
+
124
+ ul.twoday_list {
125
+ }
@@ -18,6 +18,9 @@
18
18
  "#show_new_event_link".onClick(function() {
19
19
  console.log(this.parent().first('#day_hidden_input').value());
20
20
  day = this.parent().first('#day_hidden_input').value();
21
+ /*
22
+ * this.parent().first('.new_event_mask').load('/event/new/' + day);
23
+ */
21
24
  this.parent().first('.hidden_new_event_mask').fade();
22
25
  return false;
23
26
  });
@@ -1,3 +1,3 @@
1
1
  module Kalindar
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -28,10 +28,12 @@ form.pure-form.pure-form-stacked action="/event/edit/#{event.uid}" method="post"
28
28
  option value="60m" = t '60m'
29
29
  option value="90m" = t '90m'
30
30
  option value="120m" = t '120m'
31
- option value="whole" = t 'whole_day'
31
+ /option value="whole" = t 'whole_day'
32
32
  option value="1d" = t '1d'
33
33
  option value="2d" = t '2d'
34
34
  option value="5d" = t '5d'
35
35
  option value="1w" = t '1w'
36
- button.pure-button name="submitbutton" type="submit" value="save" text= t 'save'
37
- button.pure-button name="submitbutton" type="submit" value="cancel" text= t 'cancel'
36
+ button.pure-button name="submitbutton" type="submit" value="save"
37
+ = t 'save'
38
+ button.pure-button name="submitbutton" type="submit" value="cancel"
39
+ = t 'cancel'
data/lib/kalindar.rb CHANGED
@@ -2,8 +2,6 @@ require "kalindar/version"
2
2
  require 'kalindar/event'
3
3
  require 'kalindar/calendar'
4
4
  require 'kalindar/event_calendar'
5
- require 'kalindar/app'
6
5
 
7
6
  module Kalindar
8
- # Your code goes here...
9
7
  end
@@ -60,15 +60,13 @@ describe EventCalendar do
60
60
  event_names = events.map(&:summary)
61
61
  expect(event_names).to eq ["allday", "onehour", "daily", "daily"]
62
62
  end
63
- end
64
-
65
- describe "#events_in" do
66
63
  it '#events_in by day' do
67
64
  events = subject.events_in(Date.new(2014, 7, 27), Date.new(2014, 7, 28))
68
65
  event_names = events.map(&:summary)
69
66
  expect(event_names).to eq ["allday", "onehour", "daily", "allday", "daily"]
70
67
  expect(event_names.class).to eq({}.class)
71
68
  end
69
+ # multiday events!
72
70
  it 'wraps in Event Delegate' do
73
71
  events = subject.events_in(Date.new(2014, 7, 27), Date.new(2014, 7, 28))
74
72
  expect(events.collect{|e| e.is_a? Event}.length).to eq events.length
@@ -124,6 +122,7 @@ describe "Event" do
124
122
  expect(multiday_event.time_f Date.new(2014, 7, 27)).to eq "..."
125
123
  end
126
124
  end
125
+
127
126
  describe "#from_to_f" do
128
127
  it "returns the from to time" do
129
128
  expect(events[0].from_to_f).to eq "27.08. 12:00 - 28.08. 13:00"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kalindar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Wolfsteller
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-21 00:00:00.000000000 Z
11
+ date: 2014-08-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ri_cal
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0.6'
69
+ - !ruby/object:Gem::Dependency
70
+ name: listen
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: bundler
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -119,6 +133,7 @@ files:
119
133
  - .rspec
120
134
  - .travis.yml
121
135
  - Gemfile
136
+ - Gemfile.lock
122
137
  - LICENSE.txt
123
138
  - Procfile
124
139
  - README.md
@@ -177,3 +192,4 @@ test_files:
177
192
  - spec/kalindar_spec.rb
178
193
  - spec/spec_helper.rb
179
194
  - spec/testcal.ics
195
+ has_rdoc: