From f57a864912b12c77bd6f9c9b0d1de77777de7f18 Mon Sep 17 00:00:00 2001 From: Tatsuya Suzuki Date: Tue, 16 Nov 2010 14:03:01 +0000 Subject: [PATCH 1/4] Read 38 bytes from SSL socket. --- lib/apn_on_rails/libs/feedback.rb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/apn_on_rails/libs/feedback.rb b/lib/apn_on_rails/libs/feedback.rb index 10c67571..258ed22e 100644 --- a/lib/apn_on_rails/libs/feedback.rb +++ b/lib/apn_on_rails/libs/feedback.rb @@ -13,10 +13,9 @@ class << self def devices(cert, &block) devices = [] return if cert.nil? - APN::Connection.open_for_feedback({:cert => cert}) do |conn, sock| - while line = sock.gets # Read lines from the socket - line.strip! - feedback = line.unpack('N1n1H140') + APN::Connection.open_for_feedback({:cert => cert}) do |conn, sock| + while line = conn.read(38) # Read 38 bytes from the SSL socket + feedback = line.unpack('N1n1H140') token = feedback[2].scan(/.{0,8}/).join(' ').strip device = APN::Device.find(:first, :conditions => {:token => token}) if device From c69bf3bde138a4a098523d950193dd0902d2670e Mon Sep 17 00:00:00 2001 From: Tatsuya Suzuki Date: Wed, 17 Nov 2010 11:36:07 +0000 Subject: [PATCH 2/4] Read 38 bytes from the SSL socket. --- spec/apn_on_rails/libs/feedback_spec.rb | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/spec/apn_on_rails/libs/feedback_spec.rb b/spec/apn_on_rails/libs/feedback_spec.rb index f5ae9d45..9b20cd8f 100644 --- a/spec/apn_on_rails/libs/feedback_spec.rb +++ b/spec/apn_on_rails/libs/feedback_spec.rb @@ -9,14 +9,12 @@ @device = DeviceFactory.create @cert = mock('cert_mock') - @data_mock = mock('data_mock') - @data_mock.should_receive(:strip!) + @data_mock = mock('data_mock') @data_mock.should_receive(:unpack).with('N1n1H140').and_return([@time.to_i, 12388, @device.token.delete(' ')]) - @ssl_mock = mock('ssl_mock') + @ssl_mock = mock('ssl_mock') + @ssl_mock.should_receive(:read).with(38).twice.and_return(@data_mock, nil) @sock_mock = mock('sock_mock') - @sock_mock.should_receive(:gets).twice.and_return(@data_mock, nil) - end it 'should an Array of devices that need to be processed' do From 51c47140d87dcdbaaa5847a31bae2b9c2bc1fd34 Mon Sep 17 00:00:00 2001 From: Ryan D Johnson Date: Tue, 23 Nov 2010 18:12:45 -0800 Subject: [PATCH 3/4] Fix rake task crash when not using default app (so there is no pem file) --- lib/apn_on_rails/app/models/apn/app.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/apn_on_rails/app/models/apn/app.rb b/lib/apn_on_rails/app/models/apn/app.rb index 29a813d5..59354b39 100644 --- a/lib/apn_on_rails/app/models/apn/app.rb +++ b/lib/apn_on_rails/app/models/apn/app.rb @@ -31,8 +31,8 @@ def self.send_notifications apps.each do |app| app.send_notifications end - global_cert = File.read(configatron.apn.cert) - if global_cert + if !configatron.apn.cert.blank? + global_cert = File.read(configatron.apn.cert) send_notifications_for_cert(global_cert, nil) end end @@ -123,8 +123,8 @@ def self.process_devices apps.each do |app| app.process_devices end - global_cert = File.read(configatron.apn.cert) - if global_cert + if !configatron.apn.cert.blank? + global_cert = File.read(configatron.apn.cert) APN::App.process_devices_for_cert(global_cert) end end From cc5c412a293fed78e0195fa0f1255dcb4ecff536 Mon Sep 17 00:00:00 2001 From: chrisrhoden Date: Tue, 4 Jan 2011 15:17:04 -0500 Subject: [PATCH 4/4] fix problems with gemspec dependencies --- Gemfile | 8 ++++---- Gemfile.lock | 44 ++++++++++++++++++++++---------------------- apn_on_rails.gemspec | 29 ++++++++++++++--------------- 3 files changed, 40 insertions(+), 41 deletions(-) diff --git a/Gemfile b/Gemfile index 39d8f6ad..8152e528 100644 --- a/Gemfile +++ b/Gemfile @@ -11,9 +11,9 @@ group :development do gem 'autotest' gem 'sqlite3-ruby' gem "rspec", ">= 2.0.0" - gem "bundler", ">= 1.0.0.rc.5" - gem "jeweler", "~> 1.5.0.pre2" + gem "bundler", "~> 1.0.0" + gem "jeweler", "~> 1.5.0" gem "rcov", ">= 0" - gem "actionpack", '~> 2.3.8' - gem 'activerecord', "~> 2.3.8", :require => 'active_record' + gem "actionpack", '~> 2.3.0' + gem 'activerecord', "~> 2.3.0", :require => 'active_record' end diff --git a/Gemfile.lock b/Gemfile.lock index 36ce3271..a3dd84fb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,47 +1,47 @@ GEM remote: http://rubygems.org/ specs: - actionpack (2.3.9) - activesupport (= 2.3.9) + ZenTest (4.4.2) + actionpack (2.3.10) + activesupport (= 2.3.10) rack (~> 1.1.0) - activerecord (2.3.9) - activesupport (= 2.3.9) - activesupport (2.3.9) - autotest (4.3.2) + activerecord (2.3.10) + activesupport (= 2.3.10) + activesupport (2.3.10) + autotest (4.4.6) + ZenTest (>= 4.4.1) configatron (2.6.4) yamler (>= 0.1.0) diff-lcs (1.1.2) git (1.2.5) - jeweler (1.5.0.pre3) + jeweler (1.5.2) bundler (~> 1.0.0) git (>= 1.2.5) rake rack (1.1.0) rake (0.8.7) rcov (0.9.9) - rspec (2.0.1) - rspec-core (~> 2.0.1) - rspec-expectations (~> 2.0.1) - rspec-mocks (~> 2.0.1) - rspec-core (2.0.1) - rspec-expectations (2.0.1) - diff-lcs (>= 1.1.2) - rspec-mocks (2.0.1) - rspec-core (~> 2.0.1) - rspec-expectations (~> 2.0.1) - sqlite3-ruby (1.3.1) + rspec (2.4.0) + rspec-core (~> 2.4.0) + rspec-expectations (~> 2.4.0) + rspec-mocks (~> 2.4.0) + rspec-core (2.4.0) + rspec-expectations (2.4.0) + diff-lcs (~> 1.1.2) + rspec-mocks (2.4.0) + sqlite3-ruby (1.3.2) yamler (0.1.0) PLATFORMS ruby DEPENDENCIES - actionpack (~> 2.3.8) - activerecord (~> 2.3.8) + actionpack (~> 2.3.0) + activerecord (~> 2.3.0) autotest - bundler (>= 1.0.0.rc.5) + bundler (~> 1.0.0) configatron - jeweler (~> 1.5.0.pre2) + jeweler (~> 1.5.0) rcov rspec (>= 2.0.0) sqlite3-ruby diff --git a/apn_on_rails.gemspec b/apn_on_rails.gemspec index 67b81a34..26d5aee3 100644 --- a/apn_on_rails.gemspec +++ b/apn_on_rails.gemspec @@ -1,6 +1,6 @@ # Generated by jeweler # DO NOT EDIT THIS FILE DIRECTLY -# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command +# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec' # -*- encoding: utf-8 -*- Gem::Specification.new do |s| @@ -9,7 +9,7 @@ Gem::Specification.new do |s| s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= s.authors = ["markbates", "Rebecca Nesson"] - s.date = %q{2010-11-09} + s.date = %q{2011-01-04} s.description = %q{APN on Rails is a Ruby on Rails gem that allows you to easily add Apple Push Notification (iPhone) support to your Rails application. } @@ -20,7 +20,6 @@ easily add Apple Push Notification (iPhone) support to your Rails application. "README.textile" ] s.files = [ - ".gitignore", ".rspec", ".specification", "Gemfile", @@ -113,32 +112,32 @@ easily add Apple Push Notification (iPhone) support to your Rails application. s.add_development_dependency(%q, [">= 0"]) s.add_development_dependency(%q, [">= 0"]) s.add_development_dependency(%q, [">= 2.0.0"]) - s.add_development_dependency(%q, [">= 1.0.0.rc.5"]) - s.add_development_dependency(%q, ["~> 1.5.0.pre2"]) + s.add_development_dependency(%q, ["~> 1.0.0"]) + s.add_development_dependency(%q, ["~> 1.5.0"]) s.add_development_dependency(%q, [">= 0"]) - s.add_development_dependency(%q, ["~> 2.3.8"]) - s.add_development_dependency(%q, ["~> 2.3.8"]) + s.add_development_dependency(%q, ["~> 2.3.0"]) + s.add_development_dependency(%q, ["~> 2.3.0"]) else s.add_dependency(%q, [">= 0"]) s.add_dependency(%q, [">= 0"]) s.add_dependency(%q, [">= 0"]) s.add_dependency(%q, [">= 2.0.0"]) - s.add_dependency(%q, [">= 1.0.0.rc.5"]) - s.add_dependency(%q, ["~> 1.5.0.pre2"]) + s.add_dependency(%q, ["~> 1.0.0"]) + s.add_dependency(%q, ["~> 1.5.0"]) s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, ["~> 2.3.8"]) - s.add_dependency(%q, ["~> 2.3.8"]) + s.add_dependency(%q, ["~> 2.3.0"]) + s.add_dependency(%q, ["~> 2.3.0"]) end else s.add_dependency(%q, [">= 0"]) s.add_dependency(%q, [">= 0"]) s.add_dependency(%q, [">= 0"]) s.add_dependency(%q, [">= 2.0.0"]) - s.add_dependency(%q, [">= 1.0.0.rc.5"]) - s.add_dependency(%q, ["~> 1.5.0.pre2"]) + s.add_dependency(%q, ["~> 1.0.0"]) + s.add_dependency(%q, ["~> 1.5.0"]) s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, ["~> 2.3.8"]) - s.add_dependency(%q, ["~> 2.3.8"]) + s.add_dependency(%q, ["~> 2.3.0"]) + s.add_dependency(%q, ["~> 2.3.0"]) end end