cloud_five_push 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.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZGUxNGVhYmQ5ZjdkMjhjOTZmOTk0ZTZhYTA3ODA5YjU1NWEyMmFmNw==
5
+ data.tar.gz: !binary |-
6
+ YjJiYzg3ODNiNDJjODhlNmNhZTYyMmQ0MWNmMmQ1ODI1YzYzZDUxMg==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ MDc4YTEzNDg0YThiOGQ3ZDQ1ZDNhZWIyNzhkZjQ2NWFjY2Q3YjEwN2E1ZjFm
10
+ Nzk3ZjdmNTQyZmNlN2E5YmQ1NTgxMGIxMzUxODJhYzM4NmQ2YjNmNmU0ZTMw
11
+ NzFjMTRlZThkMTYxMWIxZjZiMmI4MTY2M2FkNGM3ZDc1YTIzMzI=
12
+ data.tar.gz: !binary |-
13
+ YmE5NDk2YjdhMWFhYTMwZjYzMGJhZmE0NDRlZjgwNzc2MzdlYmI0NTQ3MGVh
14
+ NDA4NWEzNGVhY2NmZTFjM2MyOTczOThkMWNhMjYyYTg0YWUxMTliNGVhZjZl
15
+ MDFjMzA5NzU2MDRjZjIzODA1YzhhZDcxNDI0NjA2N2YxYzBlZjM=
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in cloud_five_push.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Brian Samson
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,49 @@
1
+ # CloudFivePush
2
+
3
+ Dead simple push notifications. This rubygem is just a very simple wrapper around the Cloud Five push notification API. With it (and an account on http://cloudfiveapp.com), you can painlessly schedule push notifications to android and ios devices from your server.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'cloud_five_push'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install cloud_five_push
18
+
19
+ ## Usage
20
+
21
+ Global configuration:
22
+
23
+ CloudFivePush.api_key = "my_api_key"
24
+
25
+ Sending a notification immediately to all your users:
26
+
27
+ CloudFivePush.broadcast! "Hello from Cloud Five!"
28
+
29
+ Send a notification to just some of your users:
30
+
31
+ message = CloudFivePush::Message.new
32
+ message.message = "Hello from Cloud Five"
33
+ message.user_identifiers = [123, 345, "something@example.com"] # use whatever you registered with on the mobile app
34
+ message.send!
35
+
36
+ Schedule a notification to be sent in the future:
37
+
38
+ message = CloudFivePush::Message.new
39
+ message.message = "Hello from Cloud Five"
40
+ message.scheduled_at = Time.now + 3600 # 1 hour from now
41
+ message.send!
42
+
43
+ ## Contributing
44
+
45
+ 1. Fork it ( http://github.com/cloudfive/pushapi-ruby/fork )
46
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
47
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
48
+ 4. Push to the branch (`git push origin my-new-feature`)
49
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'cloud_five_push/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "cloud_five_push"
8
+ spec.version = CloudFivePush::VERSION
9
+ spec.authors = ["Brian Samson"]
10
+ spec.email = ["brian@tenforwardconsulting.com"]
11
+ spec.summary = %q{Wraps the API for push.cloudfiveapp.com}
12
+ spec.description = %q{Dead simple push notifications}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.5"
22
+ spec.add_development_dependency "rake"
23
+
24
+ spec.add_dependency "httparty"
25
+ end
@@ -0,0 +1,20 @@
1
+ require "cloud_five_push/version"
2
+ require "cloud_five_push/message"
3
+
4
+ module CloudFivePush
5
+ @api_key = nil
6
+ def self.api_key=(api_key)
7
+ @api_key = api_key
8
+ end
9
+
10
+ def self.api_key
11
+ @api_key
12
+ end
13
+
14
+ def self.broadcast!(message)
15
+ m = CloudFivePush::Message.new
16
+ m.broadcast = true
17
+ m.message = message
18
+ m.send!
19
+ end
20
+ end
@@ -0,0 +1,51 @@
1
+ require 'httparty'
2
+ module CloudFivePush
3
+ class Message
4
+ attr_accessor :user_identifiers, :message, :badge, :scheduled_at, :broadcast, :api_key
5
+
6
+ include HTTParty
7
+ base_uri 'https://www.cloudfiveapp.com'
8
+ # debug_output $stderr
9
+
10
+ def initialize(api_key=nil)
11
+ @api_key = api_key || CloudFivePush.api_key
12
+ if @api_key.nil?
13
+ raise "api_key is required (or set CloudFivePush.api_key)"
14
+ end
15
+ @broadcast = false
16
+ @user_identifiers = []
17
+ end
18
+
19
+ def send!
20
+ if blank_param?(@user_identifiers) && (@broadcast == false)
21
+ raise "Please set user_identifiers or set broadcast=true"
22
+ end
23
+ if blank_param?(@message) && blank_param?(@badge)
24
+ raise "Please set message or badge"
25
+ end
26
+ params = {
27
+ api_key: @api_key,
28
+ alert: @message,
29
+ badge: @badge
30
+ }
31
+ if @scheduled_at
32
+ params[:when] = @scheduled_at.iso8601
33
+ end
34
+
35
+ if @broadcast
36
+ params[:audience] = "broadcast"
37
+ else
38
+ params[:user_identifiers] = @user_identifiers
39
+ end
40
+
41
+ self.class.post('/push/notify', body: params)
42
+ end
43
+
44
+ private
45
+
46
+ def blank_param?(param)
47
+ param.nil? || param.empty?
48
+ end
49
+
50
+ end
51
+ end
@@ -0,0 +1,3 @@
1
+ module CloudFivePush
2
+ VERSION = "0.0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,95 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cloud_five_push
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Brian Samson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-07-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.5'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: httparty
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: Dead simple push notifications
56
+ email:
57
+ - brian@tenforwardconsulting.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - .gitignore
63
+ - Gemfile
64
+ - LICENSE.txt
65
+ - README.md
66
+ - Rakefile
67
+ - cloud_five_push.gemspec
68
+ - lib/cloud_five_push.rb
69
+ - lib/cloud_five_push/message.rb
70
+ - lib/cloud_five_push/version.rb
71
+ homepage: ''
72
+ licenses:
73
+ - MIT
74
+ metadata: {}
75
+ post_install_message:
76
+ rdoc_options: []
77
+ require_paths:
78
+ - lib
79
+ required_ruby_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ! '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ required_rubygems_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ requirements: []
90
+ rubyforge_project:
91
+ rubygems_version: 2.2.2
92
+ signing_key:
93
+ specification_version: 4
94
+ summary: Wraps the API for push.cloudfiveapp.com
95
+ test_files: []