cronofy 0.3.2 → 0.4.0

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: 7c32a02fcae77c417a0f447f8249323e76ada663
4
- data.tar.gz: 4fab44893e5c7189e712ee2ec63e8f1215e26b09
3
+ metadata.gz: 87327b745d5c41ca1cb19a4058f895095d0bd13b
4
+ data.tar.gz: b5a255411695294ec9b97eb855d1109f36dd3e23
5
5
  SHA512:
6
- metadata.gz: 2847a4504e4e17974941c3040749d85d0b477333dd2c0a26cccf1b99e189c57aaa8ce5674a76827bec1090f26bc454ae03545f2ca6de9458fd2eb15d684469e4
7
- data.tar.gz: 638ec645d4380a93e1653561dc36b6ef56471c0070e9112aaff663a43431f3e6d7ec6642186c88173a11a076a7d08cf8de470e42e660ff2a287288d2e480e897
6
+ metadata.gz: b4236b61a9a7874dda9f09be63c83dc432487331159ab6030953fe650e0af8f9c488d9bdb77ecf5658c4dece165730e3b99737538ead79edd56e50ef0b21346e
7
+ data.tar.gz: 2df716944fb437daf393892d68cb0bcbdaaaaf61b13a09e39113c324580e821db56fdbe507797eb5e5678acbfda3b5d2e8f0899771419c3a85662b7efbfd8f3a
@@ -103,13 +103,29 @@ module Cronofy
103
103
  def upsert_event(calendar_id, event)
104
104
  body = event.dup
105
105
 
106
- body[:start] = to_iso8601(body[:start])
107
- body[:end] = to_iso8601(body[:end])
106
+ body[:start] = encode_event_time(body[:start])
107
+ body[:end] = encode_event_time(body[:end])
108
108
 
109
109
  post("/v1/calendars/#{calendar_id}/events", body)
110
110
  nil
111
111
  end
112
112
 
113
+ def encode_event_time(time)
114
+ result = time
115
+
116
+ case time
117
+ when Hash
118
+ if time[:time]
119
+ encoded_time = encode_event_time(time[:time])
120
+ time.merge(time: encoded_time)
121
+ else
122
+ time
123
+ end
124
+ else
125
+ to_iso8601(time)
126
+ end
127
+ end
128
+
113
129
  # Public: Alias for #upsert_event
114
130
  alias_method :create_or_update_event, :upsert_event
115
131
 
@@ -1,3 +1,3 @@
1
1
  module Cronofy
2
- VERSION = "0.3.2".freeze
2
+ VERSION = "0.4.0".freeze
3
3
  end
@@ -180,8 +180,8 @@ describe Cronofy::Client do
180
180
  hash_including(:event_id => "qTtZdczOccgaPncGJaCiLg",
181
181
  :summary => "Board meeting",
182
182
  :description => "Discuss plans for the next quarter.",
183
- :start => start_datetime_string,
184
- :end => end_datetime_string,
183
+ :start => encoded_start_datetime,
184
+ :end => encoded_end_datetime,
185
185
  :location => {
186
186
  :description => "Board room"
187
187
  })
@@ -194,8 +194,37 @@ describe Cronofy::Client do
194
194
  context 'when start/end are Times' do
195
195
  let(:start_datetime) { Time.utc(2014, 8, 5, 15, 30, 0) }
196
196
  let(:end_datetime) { Time.utc(2014, 8, 5, 17, 0, 0) }
197
- let(:start_datetime_string) { "2014-08-05T15:30:00Z" }
198
- let(:end_datetime_string) { "2014-08-05T17:00:00Z" }
197
+ let(:encoded_start_datetime) { "2014-08-05T15:30:00Z" }
198
+ let(:encoded_end_datetime) { "2014-08-05T17:00:00Z" }
199
+
200
+ it_behaves_like 'a Cronofy request'
201
+ end
202
+
203
+ context 'when start/end are complex times' do
204
+ let(:start_datetime) do
205
+ {
206
+ :time => Time.utc(2014, 8, 5, 15, 30, 0),
207
+ :tzid => "Europe/London",
208
+ }
209
+ end
210
+ let(:end_datetime) do
211
+ {
212
+ :time => Time.utc(2014, 8, 5, 17, 0, 0),
213
+ :tzid => "America/Los_Angeles",
214
+ }
215
+ end
216
+ let(:encoded_start_datetime) do
217
+ {
218
+ :time => "2014-08-05T15:30:00Z",
219
+ :tzid => "Europe/London",
220
+ }
221
+ end
222
+ let(:encoded_end_datetime) do
223
+ {
224
+ :time => "2014-08-05T17:00:00Z",
225
+ :tzid => "America/Los_Angeles",
226
+ }
227
+ end
199
228
 
200
229
  it_behaves_like 'a Cronofy request'
201
230
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cronofy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergii Paryzhskyi
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-06-02 00:00:00.000000000 Z
12
+ date: 2015-07-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: oauth2
@@ -142,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
142
142
  version: '0'
143
143
  requirements: []
144
144
  rubyforge_project:
145
- rubygems_version: 2.4.5
145
+ rubygems_version: 2.4.8
146
146
  signing_key:
147
147
  specification_version: 4
148
148
  summary: Cronofy - one API for all the calendars