siri_cal 0.0.1

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.
Files changed (60) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.md +155 -0
  3. data/Rakefile +37 -0
  4. data/lib/generators/install.rb +16 -0
  5. data/lib/generators/templates/siri_cal.rb +13 -0
  6. data/lib/generators/templates/siri_says/default.rb +3 -0
  7. data/lib/siri_cal.rb +41 -0
  8. data/lib/siri_cal/methods.rb +49 -0
  9. data/lib/siri_cal/say_proxy.rb +63 -0
  10. data/lib/siri_cal/version.rb +3 -0
  11. data/lib/tasks/siri_cal_tasks.rake +4 -0
  12. data/test/dummy/Rakefile +7 -0
  13. data/test/dummy/app/assets/javascripts/application.js +9 -0
  14. data/test/dummy/app/assets/stylesheets/application.css +7 -0
  15. data/test/dummy/app/controllers/application_controller.rb +3 -0
  16. data/test/dummy/app/helpers/application_helper.rb +2 -0
  17. data/test/dummy/app/models/movie.rb +2 -0
  18. data/test/dummy/app/models/user.rb +4 -0
  19. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  20. data/test/dummy/config.ru +4 -0
  21. data/test/dummy/config/application.rb +45 -0
  22. data/test/dummy/config/boot.rb +10 -0
  23. data/test/dummy/config/database.yml +25 -0
  24. data/test/dummy/config/environment.rb +5 -0
  25. data/test/dummy/config/environments/development.rb +30 -0
  26. data/test/dummy/config/environments/production.rb +60 -0
  27. data/test/dummy/config/environments/test.rb +42 -0
  28. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  29. data/test/dummy/config/initializers/inflections.rb +10 -0
  30. data/test/dummy/config/initializers/mime_types.rb +5 -0
  31. data/test/dummy/config/initializers/secret_token.rb +7 -0
  32. data/test/dummy/config/initializers/session_store.rb +8 -0
  33. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  34. data/test/dummy/config/locales/en.yml +5 -0
  35. data/test/dummy/config/routes.rb +58 -0
  36. data/test/dummy/db/development.sqlite3 +0 -0
  37. data/test/dummy/db/migrate/20111105175135_create_users.rb +11 -0
  38. data/test/dummy/db/migrate/20111108194230_create_movies.rb +11 -0
  39. data/test/dummy/db/schema.rb +31 -0
  40. data/test/dummy/db/test.sqlite3 +0 -0
  41. data/test/dummy/lib/siri_says/default.rb +3 -0
  42. data/test/dummy/log/development.log +102 -0
  43. data/test/dummy/log/test.log +4932 -0
  44. data/test/dummy/public/404.html +26 -0
  45. data/test/dummy/public/422.html +26 -0
  46. data/test/dummy/public/500.html +26 -0
  47. data/test/dummy/public/favicon.ico +0 -0
  48. data/test/dummy/script/rails +6 -0
  49. data/test/dummy/test/fixtures/movies.yml +7 -0
  50. data/test/dummy/test/fixtures/users.yml +11 -0
  51. data/test/dummy/test/unit/movie_test.rb +7 -0
  52. data/test/dummy/test/unit/user_test.rb +7 -0
  53. data/test/fixtures/vcr_cassettes/invalid_credentials.yml +36 -0
  54. data/test/fixtures/vcr_cassettes/valid_credentials.yml +38 -0
  55. data/test/fixtures/vcr_cassettes/valid_credentials_with_events.yml +772 -0
  56. data/test/fixtures/vcr_cassettes/valid_credentials_with_events_to_delete.yml +948 -0
  57. data/test/generators/install_test.rb +13 -0
  58. data/test/siri_cal_test.rb +82 -0
  59. data/test/test_helper.rb +23 -0
  60. metadata +216 -0
@@ -0,0 +1,13 @@
1
+ require 'test_helper'
2
+
3
+ class InstallGeneratorTest < Rails::Generators::TestCase
4
+ tests SiriCal::Generators::InstallGenerator
5
+ destination File.expand_path("../../../tmp", __FILE__)
6
+ setup :prepare_destination
7
+
8
+ test "assert a siri_says base step is properly created" do
9
+ run_generator
10
+ assert_file "lib/siri_says/default.rb", /says \/\^\(\?\:\|a \)movie \(\.\+\)\$\//
11
+ assert_file "config/initializers/siri_cal.rb"
12
+ end
13
+ end
@@ -0,0 +1,82 @@
1
+ require 'test_helper'
2
+
3
+ class SiriCalTest < ActiveSupport::TestCase
4
+ fixtures :users
5
+
6
+ should "responds to SiriCal instance methods" do
7
+ assert User.last.respond_to?(:execute_siri!)
8
+ end
9
+
10
+ context '#calendar' do
11
+ should "raises an error with invalid credentials" do
12
+ VCR.use_cassette("invalid_credentials") do
13
+ assert_raise(Google::HTTPAuthorizationFailed) { User.last.calendar }
14
+ end
15
+ end
16
+
17
+ should 'returns an instance of Google::Calendar on valid credentials' do
18
+ VCR.use_cassette("valid_credentials") do
19
+ assert_nothing_raised do
20
+ assert_kind_of Google::Calendar, User.last.calendar
21
+ end
22
+ end
23
+ end
24
+ end
25
+
26
+ context '#execute_siri!' do
27
+ setup do
28
+ @user = User.last
29
+ end
30
+
31
+ should 'fetch cal events and match their title to defined step in siri_says/default.rb' do
32
+ SiriCal.setup { |config| config.delete_event = :none }
33
+ VCR.use_cassette("valid_credentials_with_events") do
34
+ assert_difference('@user.movies.count', 1, 'a movie should be created') { @user.execute_siri! }
35
+ assert_equal "transformers", @user.movies.last.name
36
+ assert_not_nil @user.calendar.events
37
+ end
38
+ end
39
+
40
+ should 'delete event when config.delete is :success' do
41
+ SiriCal.setup { |config| config.delete_event = :success }
42
+ VCR.use_cassette("valid_credentials_with_events_to_delete") do
43
+ assert_difference('@user.movies.count', 1, 'a movie should be created') { @user.execute_siri! }
44
+ assert_equal "transformers", @user.movies.last.name
45
+ assert_nil @user.calendar.events
46
+ end
47
+ end
48
+
49
+ should 'delete event when config.delete is :always' do
50
+ SiriCal.setup { |config| config.delete_event = :always }
51
+ VCR.use_cassette("valid_credentials_with_events_to_delete") do
52
+ assert_difference('@user.movies.count', 1, 'a movie should be created') { @user.execute_siri! }
53
+ assert_equal "transformers", @user.movies.last.name
54
+ assert_nil @user.calendar.events
55
+ end
56
+ end
57
+ end
58
+
59
+ context "#invoke_say" do
60
+ setup do
61
+ @event = Google::Event.new(:title => "I have a foo", :start_time => Time.now)
62
+ end
63
+
64
+ should "handle @object in says block" do
65
+ says /I have a foo/ do
66
+ User.find_by_name(@object.name)
67
+ end
68
+ assert_nothing_thrown { SiriCal::SayProxy.invoke_say(@event, User.last) }
69
+ end
70
+
71
+ should "handle @event in says block" do
72
+ says /I have a foo/ do
73
+ @event.start_time
74
+ end
75
+ assert_nothing_thrown { SiriCal::SayProxy.invoke_say(@event, User.last) }
76
+ end
77
+
78
+ teardown do
79
+ SiriCal::SayProxy.clear
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,23 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
+ require "rails/test_help"
6
+ require 'rails/generators/test_case'
7
+ require 'vcr'
8
+ require 'shoulda-context'
9
+
10
+ VCR.config do |c|
11
+ c.default_cassette_options = { :record => :new_episodes }
12
+ c.cassette_library_dir = 'test/fixtures/vcr_cassettes'
13
+ c.stub_with :fakeweb # or :fakeweb
14
+ end
15
+
16
+ Rails.backtrace_cleaner.remove_silencers!
17
+
18
+ # Load support files
19
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
20
+
21
+ SiriCal.setup do |config|
22
+ config.siri_says_path = "test/dummy/lib/siri_says"
23
+ end
metadata ADDED
@@ -0,0 +1,216 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: siri_cal
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Stephane Bounmy
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-11-09 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: google_calendar
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - "="
27
+ - !ruby/object:Gem::Version
28
+ hash: 23
29
+ segments:
30
+ - 0
31
+ - 2
32
+ - 0
33
+ version: 0.2.0
34
+ type: :runtime
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: rails
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ hash: 3
45
+ segments:
46
+ - 3
47
+ - 1
48
+ - 0
49
+ version: 3.1.0
50
+ type: :development
51
+ version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
53
+ name: sqlite3
54
+ prerelease: false
55
+ requirement: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ hash: 3
61
+ segments:
62
+ - 0
63
+ version: "0"
64
+ type: :development
65
+ version_requirements: *id003
66
+ description: A simple gem provide siri helper by using gcal events
67
+ email:
68
+ - stephanebounmy@gmail.com
69
+ executables: []
70
+
71
+ extensions: []
72
+
73
+ extra_rdoc_files: []
74
+
75
+ files:
76
+ - lib/generators/install.rb
77
+ - lib/generators/templates/siri_cal.rb
78
+ - lib/generators/templates/siri_says/default.rb
79
+ - lib/siri_cal/methods.rb
80
+ - lib/siri_cal/say_proxy.rb
81
+ - lib/siri_cal/version.rb
82
+ - lib/siri_cal.rb
83
+ - lib/tasks/siri_cal_tasks.rake
84
+ - MIT-LICENSE
85
+ - Rakefile
86
+ - README.md
87
+ - test/dummy/app/assets/javascripts/application.js
88
+ - test/dummy/app/assets/stylesheets/application.css
89
+ - test/dummy/app/controllers/application_controller.rb
90
+ - test/dummy/app/helpers/application_helper.rb
91
+ - test/dummy/app/models/movie.rb
92
+ - test/dummy/app/models/user.rb
93
+ - test/dummy/app/views/layouts/application.html.erb
94
+ - test/dummy/config/application.rb
95
+ - test/dummy/config/boot.rb
96
+ - test/dummy/config/database.yml
97
+ - test/dummy/config/environment.rb
98
+ - test/dummy/config/environments/development.rb
99
+ - test/dummy/config/environments/production.rb
100
+ - test/dummy/config/environments/test.rb
101
+ - test/dummy/config/initializers/backtrace_silencers.rb
102
+ - test/dummy/config/initializers/inflections.rb
103
+ - test/dummy/config/initializers/mime_types.rb
104
+ - test/dummy/config/initializers/secret_token.rb
105
+ - test/dummy/config/initializers/session_store.rb
106
+ - test/dummy/config/initializers/wrap_parameters.rb
107
+ - test/dummy/config/locales/en.yml
108
+ - test/dummy/config/routes.rb
109
+ - test/dummy/config.ru
110
+ - test/dummy/db/development.sqlite3
111
+ - test/dummy/db/migrate/20111105175135_create_users.rb
112
+ - test/dummy/db/migrate/20111108194230_create_movies.rb
113
+ - test/dummy/db/schema.rb
114
+ - test/dummy/db/test.sqlite3
115
+ - test/dummy/lib/siri_says/default.rb
116
+ - test/dummy/log/development.log
117
+ - test/dummy/log/test.log
118
+ - test/dummy/public/404.html
119
+ - test/dummy/public/422.html
120
+ - test/dummy/public/500.html
121
+ - test/dummy/public/favicon.ico
122
+ - test/dummy/Rakefile
123
+ - test/dummy/script/rails
124
+ - test/dummy/test/fixtures/movies.yml
125
+ - test/dummy/test/fixtures/users.yml
126
+ - test/dummy/test/unit/movie_test.rb
127
+ - test/dummy/test/unit/user_test.rb
128
+ - test/fixtures/vcr_cassettes/invalid_credentials.yml
129
+ - test/fixtures/vcr_cassettes/valid_credentials.yml
130
+ - test/fixtures/vcr_cassettes/valid_credentials_with_events.yml
131
+ - test/fixtures/vcr_cassettes/valid_credentials_with_events_to_delete.yml
132
+ - test/generators/install_test.rb
133
+ - test/siri_cal_test.rb
134
+ - test/test_helper.rb
135
+ homepage: http://github.com/sbounmy/siri_cal
136
+ licenses: []
137
+
138
+ post_install_message:
139
+ rdoc_options: []
140
+
141
+ require_paths:
142
+ - lib
143
+ required_ruby_version: !ruby/object:Gem::Requirement
144
+ none: false
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ hash: 3
149
+ segments:
150
+ - 0
151
+ version: "0"
152
+ required_rubygems_version: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ hash: 3
158
+ segments:
159
+ - 0
160
+ version: "0"
161
+ requirements: []
162
+
163
+ rubyforge_project:
164
+ rubygems_version: 1.8.11
165
+ signing_key:
166
+ specification_version: 3
167
+ summary: A simple gem provide siri helper by using gcal events
168
+ test_files:
169
+ - test/dummy/app/assets/javascripts/application.js
170
+ - test/dummy/app/assets/stylesheets/application.css
171
+ - test/dummy/app/controllers/application_controller.rb
172
+ - test/dummy/app/helpers/application_helper.rb
173
+ - test/dummy/app/models/movie.rb
174
+ - test/dummy/app/models/user.rb
175
+ - test/dummy/app/views/layouts/application.html.erb
176
+ - test/dummy/config/application.rb
177
+ - test/dummy/config/boot.rb
178
+ - test/dummy/config/database.yml
179
+ - test/dummy/config/environment.rb
180
+ - test/dummy/config/environments/development.rb
181
+ - test/dummy/config/environments/production.rb
182
+ - test/dummy/config/environments/test.rb
183
+ - test/dummy/config/initializers/backtrace_silencers.rb
184
+ - test/dummy/config/initializers/inflections.rb
185
+ - test/dummy/config/initializers/mime_types.rb
186
+ - test/dummy/config/initializers/secret_token.rb
187
+ - test/dummy/config/initializers/session_store.rb
188
+ - test/dummy/config/initializers/wrap_parameters.rb
189
+ - test/dummy/config/locales/en.yml
190
+ - test/dummy/config/routes.rb
191
+ - test/dummy/config.ru
192
+ - test/dummy/db/development.sqlite3
193
+ - test/dummy/db/migrate/20111105175135_create_users.rb
194
+ - test/dummy/db/migrate/20111108194230_create_movies.rb
195
+ - test/dummy/db/schema.rb
196
+ - test/dummy/db/test.sqlite3
197
+ - test/dummy/lib/siri_says/default.rb
198
+ - test/dummy/log/development.log
199
+ - test/dummy/log/test.log
200
+ - test/dummy/public/404.html
201
+ - test/dummy/public/422.html
202
+ - test/dummy/public/500.html
203
+ - test/dummy/public/favicon.ico
204
+ - test/dummy/Rakefile
205
+ - test/dummy/script/rails
206
+ - test/dummy/test/fixtures/movies.yml
207
+ - test/dummy/test/fixtures/users.yml
208
+ - test/dummy/test/unit/movie_test.rb
209
+ - test/dummy/test/unit/user_test.rb
210
+ - test/fixtures/vcr_cassettes/invalid_credentials.yml
211
+ - test/fixtures/vcr_cassettes/valid_credentials.yml
212
+ - test/fixtures/vcr_cassettes/valid_credentials_with_events.yml
213
+ - test/fixtures/vcr_cassettes/valid_credentials_with_events_to_delete.yml
214
+ - test/generators/install_test.rb
215
+ - test/siri_cal_test.rb
216
+ - test/test_helper.rb