pushy-api 0.0.0 → 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 (5) hide show
  1. data/Rakefile +16 -0
  2. data/VERSION +1 -1
  3. data/lib/pushy.rb +9 -0
  4. data/lib/pushy/application.rb +59 -0
  5. metadata +6 -3
data/Rakefile ADDED
@@ -0,0 +1,16 @@
1
+ begin
2
+ require 'jeweler'
3
+ Jeweler::Tasks.new do |gemspec|
4
+ gemspec.name = "pushy-api"
5
+ gemspec.summary = "Client library for the Pushy API"
6
+ gemspec.description = "Pushy makes the Apple push notification service easy. Just use our API and we handle everything else."
7
+ gemspec.email = "charlie@pushyapp.com"
8
+ gemspec.homepage = "http://github.com/pushy/pushy-ruby"
9
+ gemspec.authors = ["Charlie Melbye"]
10
+
11
+ gemspec.files = FileList["[A-Z]*", "{bin,generators,lib,test}/**/*"]
12
+ gemspec.add_dependency('httparty', '>= 0.5.2')
13
+ end
14
+ rescue LoadError
15
+ puts "Jeweler not available. Install it with: sudo gem install jeweler"
16
+ end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.0
1
+ 0.0.1
data/lib/pushy.rb ADDED
@@ -0,0 +1,9 @@
1
+ require 'rubygems'
2
+ require 'httparty'
3
+ require 'pushy/application'
4
+ #require 'pushy/application/device'
5
+ #require 'pushy/application/notification'
6
+
7
+ module Pushy
8
+
9
+ end
@@ -0,0 +1,59 @@
1
+ module Pushy
2
+ class Application
3
+ include HTTParty
4
+ base_uri 'pushyapp.com/api/v1'
5
+ format :json
6
+
7
+ def initialize(args)
8
+ # We are using the hash argument idea from Rails
9
+ raise TypeError, 'Argument must be a hash' unless args.is_a? Hash
10
+
11
+ # Converting all the args keys to symbols
12
+ args.each_pair do |k,v|
13
+ args.delete(k)
14
+ args[k.to_sym] = v if k.respond_to? :to_sym
15
+ end
16
+
17
+ @api_key = args[:api_key]
18
+ @api_secret = args[:api_secret]
19
+
20
+ raise ArgumentError, 'No API key specified' unless @api_key
21
+ raise ArgumentError, 'No API secret specified' unless @api_secret
22
+ raise TypeError, ":api_key must be a String" unless @api_key.is_a? String
23
+ raise TypeError, ":api_secret must be a String" unless @api_secret.is_a? String
24
+
25
+ self.class.basic_auth @api_key, @api_secret
26
+ end
27
+
28
+ def new_device(device_token, device_alias="")
29
+ params = {}
30
+
31
+ params[:token] = device_token
32
+ params[:alias] = device_alias unless device_alias.empty?
33
+
34
+ self.class.post('/devices.json', :body => params)
35
+ end
36
+
37
+ def send_notification(payload, options)
38
+ params = {}
39
+
40
+ params[:alert] = payload[:alert] if payload[:alert]
41
+ params[:badge] = payload[:badge] if payload[:badge]
42
+ params[:sound] = payload[:sound] if payload[:sound]
43
+
44
+ if options[:aliases].is_a? Array
45
+ options[:aliases].each do |the_alias|
46
+ params["aliases[]"] = the_alias
47
+ end
48
+ end
49
+
50
+ if options[:tokens].is_a? Array
51
+ options[:tokens].each do |the_token|
52
+ params["tokens[]"] = the_token
53
+ end
54
+ end
55
+
56
+ self.class.post('/notifications.json', :body => params)
57
+ end
58
+ end
59
+ end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 0
9
- version: 0.0.0
8
+ - 1
9
+ version: 0.0.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Charlie Melbye
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-03-08 00:00:00 -06:00
17
+ date: 2010-03-09 00:00:00 -06:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -40,7 +40,10 @@ extensions: []
40
40
  extra_rdoc_files: []
41
41
 
42
42
  files:
43
+ - Rakefile
43
44
  - VERSION
45
+ - lib/pushy.rb
46
+ - lib/pushy/application.rb
44
47
  has_rdoc: true
45
48
  homepage: http://github.com/pushy/pushy-ruby
46
49
  licenses: []