siri_cal 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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