class Crusade::APNS::PushPackageGenerator
Attributes
configuration[RW]
Public Class Methods
new(configuration)
click to toggle source
# File lib/crusade/apns/push_package_generator.rb, line 13 def initialize configuration self.configuration = configuration end
Public Instance Methods
clean(push_package)
click to toggle source
# File lib/crusade/apns/push_package_generator.rb, line 42 def clean(push_package) FileUtils.remove_entry_secure push_package rescue Errno::ENOENT => e end
generate(user_id)
click to toggle source
# File lib/crusade/apns/push_package_generator.rb, line 17 def generate user_id info "generating push package for user #{user_id}" FileUtils.remove_entry_secure configuration.temp_dir FileUtils.mkdir configuration.temp_dir push_package = File.join(configuration.temp_dir, file_name(user_id)) DirectoryStructureGenerator.new(configuration).generate website = WebsiteFileGenerator.new(user_id, configuration).generate user_token = user_token website File.open(File.join(configuration.temp_dir, 'website.json'), 'w') { |f| f.write website } manifest = Crusade::APNS::ManifestGenerator.new(configuration.temp_dir).generate File.open(File.join(configuration.temp_dir, 'manifest.json'), 'w') { |f| f.write manifest } Crusade::APNS::SignatureGenerator.new(configuration).sign File.join(configuration.temp_dir, 'manifest.json') Crusade::APNS::ZipFileGenerator.new(configuration, configuration.temp_dir, push_package).generate debug "push package generated #{push_package} - with user token #{user_token}" [ user_token, push_package ] end
Private Instance Methods
file_name(user_token)
click to toggle source
# File lib/crusade/apns/push_package_generator.rb, line 51 def file_name(user_token) "#{Time.now.to_i}-#{user_token}_push_package.zip" end
user_token(json)
click to toggle source
# File lib/crusade/apns/push_package_generator.rb, line 55 def user_token json JSON.parse(json)['authenticationToken'] end