pushcrew 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8f7df4fa10bbbbd5be4c1f32532bf0484eed6ae3
4
+ data.tar.gz: ce3d4000b95a0667af89ef919b5df08c7c6b0398
5
+ SHA512:
6
+ metadata.gz: 54b18a4bef41d6439182ad6a61af60cf28ddfe2681eb0c351508c0c91de756a6af870bc5acead13853f1de10cdf259e991746b155115c7b6432fac1f22d0d096
7
+ data.tar.gz: 5291a27405ecc79b19d806324c0561d93fa80b2e760da069ae428790171d80e31b854b7a0c49fc3f2ba6b022e9c4904132729a952f1a217afbf8815524304fa2
data/.gitignore ADDED
@@ -0,0 +1,12 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+
11
+ # rspec failure tracking
12
+ .rspec_status
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.3.0
5
+ before_install: gem install bundler -v 1.14.6
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at clayton_mvc31@hotmail.com. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [http://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: http://contributor-covenant.org
74
+ [version]: http://contributor-covenant.org/version/1/4/
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in pushcrew.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2017 clayton
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,83 @@
1
+ # Pushcrew
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/pushcrew`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
6
+
7
+ ## Reference
8
+ http://api.pushcrew.com/docs/introduction-to-rest-api
9
+
10
+ ## Installation
11
+
12
+ Add this line to your application's Gemfile:
13
+
14
+ ```ruby
15
+ gem 'pushcrew'
16
+ ```
17
+
18
+ And then execute:
19
+
20
+ $ bundle
21
+
22
+ Or install it yourself as:
23
+
24
+ $ gem install pushcrew
25
+
26
+ ## Usage
27
+
28
+ Please set a ENV['PUSHCREW_TOKEN'] in your project.
29
+
30
+ ### Send to All Subscribers
31
+ Pushcrew::PushNotification.send_to_all_subscribers({title:"Your_Title",message:"Your_Message",url:"Your_URL"})
32
+
33
+ ### Send to Subscribers of a Particular Segment
34
+ Pushcrew::PushNotification.send_to_subscribers_a_particular_segment({title:"Your_Title",message:"Your_Message",url:"Your_URL"}, "Your_SEGMENT_ID")
35
+
36
+ ### Send to a List of Subscribers
37
+ Pushcrew::PushNotification.send_to_a_list_subscribers({title:"Your_Title",message:"Your_Message",url:"Your_URL", subscriber_list: {"subscriber_list":["Your_SUBSCRIBER_ID"]}.to_json})
38
+
39
+ ### Send to an Individual Subscriber
40
+ Pushcrew::PushNotification.send_to_an_individual_subscribers(title:"Só uma",message:"Uma Mensagem",url:"Your_URL",subscriber_id:"Your_SUBSCRIBER_ID")
41
+
42
+ ### Check Status of Notification Request
43
+ Pushcrew::CheckStatus.notification_request("Your_NOTIFICATION_ID")
44
+
45
+ ### Add A Segment
46
+ Pushcrew::Segment.add_segment({name:"Your_SEGMENT_NAME"})
47
+
48
+ ### Get List of Segments
49
+ Pushcrew::Segment.get_list_segments
50
+
51
+ ### Add Subscribers to a Segment
52
+ Pushcrew::Segment.add_subscribers_to_segment({subscriber_list: {"subscriber_list":["Your_SUBSCRIBER_ID"]}.to_json},"Your_SEGMENT_ID")
53
+
54
+ ### Get Subscribers in a Segment
55
+ Pushcrew::Segment.get_subscribers_segment("Your_SEGMENT_ID")
56
+
57
+ ### Get Segments for a Subscriber
58
+ Pushcrew::Segment.get_segments_for_a_subscriber("Your_SUBSCRIBER_ID" )
59
+
60
+ ### Remove Subscribers from a Segment
61
+ Pushcrew::Segment.remove_subscribers_from_a_segment({"delete_list":["Your_SUBSCRIBER_ID"]}.to_json,"Your_SEGMENT_ID")
62
+
63
+ ### Delete A Segment
64
+ Pushcrew::Segment.delete_segment("Your_SEGMENT_ID")
65
+
66
+ ### Get SubscriberID of current user(In your web console)
67
+ console.log(pushcrew.subscriberId);
68
+
69
+ ## Development
70
+
71
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
72
+
73
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
74
+
75
+ ## Contributing
76
+
77
+ Bug reports and pull requests are welcome on GitHub at https://github.com/super-evil-unicorn/pushcrew/. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
78
+
79
+
80
+ ## License
81
+
82
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
83
+
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "pushcrew"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
data/lib/pushcrew.rb ADDED
@@ -0,0 +1,226 @@
1
+ require "pushcrew/version"
2
+
3
+ module Pushcrew
4
+
5
+ require 'rest-client'
6
+ require 'json'
7
+
8
+ @@end_point = "https://pushcrew.com/api/v1/"
9
+
10
+ @@SERVICE_HEADERS = {
11
+ :Authorization => "key=#{ENV['PUSHCREW_TOKEN']}"
12
+ }
13
+
14
+ # funcao de post generica
15
+ def postRequest(payload, url)
16
+ begin
17
+ response = RestClient.post("#{@@end_point}#{url}", payload, headers=@@SERVICE_HEADERS)
18
+ rescue RestClient::ExceptionWithResponse => err
19
+ handle_error_response(err)
20
+ response = err.response
21
+ end
22
+
23
+ JSON.load response
24
+ rescue JSON::ParserError => err
25
+ response
26
+ end
27
+
28
+ # funcao patch generica
29
+ def patchRequest(payload, url)
30
+ begin
31
+ response = RestClient.patch("#{@@end_point}#{url}", payload, headers=@@SERVICE_HEADERS)
32
+ rescue RestClient::ExceptionWithResponse => err
33
+ handle_error_response(err)
34
+ response = err.response
35
+ end
36
+
37
+ JSON.load response
38
+ rescue JSON::ParserError => err
39
+ response
40
+ end
41
+
42
+ # funcao de delete generica
43
+ def deleteRequest(url)
44
+ begin
45
+ response = RestClient.delete("#{@@end_point}#{url}", headers=@@SERVICE_HEADERS)
46
+ rescue RestClient::ExceptionWithResponse => err
47
+ handle_error_response(err)
48
+ response = err.response
49
+ end
50
+
51
+ JSON.load response
52
+ rescue JSON::ParserError => err
53
+ response
54
+ end
55
+
56
+ # funcao get generica
57
+ def getRequest(url)
58
+ begin
59
+ response = RestClient.get("#{@@end_point}#{url}", headers=@@SERVICE_HEADERS)
60
+ rescue RestClient::ExceptionWithResponse => err
61
+ handle_error_response(err)
62
+ response = err.response
63
+ end
64
+
65
+ v = JSON.load response
66
+ return v["data"] if v["data"] != nil
67
+ return v
68
+ rescue JSON::ParserError => err
69
+ response
70
+ end
71
+
72
+ # funcao get generica
73
+ def putRequest(payload, url)
74
+ begin
75
+ response = RestClient.put("#{@@end_point}#{url}", payload, headers=@@SERVICE_HEADERS)
76
+ rescue RestClient::ExceptionWithResponse => err
77
+ handle_error_response(err)
78
+ response = err.response
79
+ end
80
+
81
+ v = JSON.load response
82
+ return v["data"] if v["data"] != nil
83
+ return v
84
+ rescue JSON::ParserError => err
85
+ response
86
+ end
87
+
88
+ def handle_error_response(err)
89
+ # MundipaggV1Sdk::AuthenticationError.new
90
+ err_response = JSON.load(err.response)
91
+ puts err_response["message"]
92
+ puts JSON.pretty_generate(err_response["errors"]) unless err_response["errors"].nil?
93
+ raise(::Exception.new( err_response["message"] ))
94
+ end
95
+
96
+ # Your code goes here...
97
+ end
98
+
99
+ class Pushcrew::PushNotification
100
+
101
+ extend Pushcrew
102
+
103
+ # Send to All Subscribers
104
+ #
105
+ # == Parameters:
106
+ # @param notification [Hash]
107
+ # @return [JSON]
108
+ def self.send_to_all_subscribers(notification)
109
+ postRequest(notification, "send/all")
110
+ end
111
+
112
+ # Send to Subscribers of a Particular Segment
113
+ #
114
+ # == Parameters:
115
+ # @param notification [Hash]
116
+ # @param segment_id [String]
117
+ # @return [JSON]
118
+ def self.send_to_subscribers_a_particular_segment(notification, segment_id)
119
+ postRequest(notification, "send/segment/#{segment_id}")
120
+ end
121
+
122
+ # Send to a List of Subscribers!
123
+ #
124
+ # == Parameters:
125
+ # @param notification [Hash]
126
+ # @return [JSON]
127
+ def self.send_to_a_list_subscribers(notification)
128
+ postRequest(notification, "send/list")
129
+ end
130
+
131
+ # Send to an Individual Subscriber
132
+ #
133
+ # == Parameters:
134
+ # @param notification [Hash]
135
+ # @return [JSON]
136
+ def self.send_to_an_individual_subscribers(notification)
137
+ postRequest(notification, "send/individual")
138
+ end
139
+
140
+ end
141
+
142
+ class Pushcrew::CheckStatus
143
+
144
+ extend Pushcrew
145
+
146
+ # Check Status of Notification Request
147
+ #
148
+ # == Parameters:
149
+ # @param request_id [String]
150
+ # @return [JSON]
151
+ def self.notification_request(request_id)
152
+ getRequest("checkstatus/#{request_id}")
153
+ end
154
+
155
+ end
156
+
157
+ class Pushcrew::Segment
158
+
159
+ extend Pushcrew
160
+
161
+ # Add A Segment
162
+ #
163
+ # == Parameters:
164
+ # @param segment [Hash]
165
+ # @return [JSON]
166
+ def self.add_segment(segment)
167
+ postRequest(segment, "segments")
168
+ end
169
+
170
+ # Get List of Segments
171
+ #
172
+ # @return [JSON]
173
+ def self.get_list_segments()
174
+ getRequest("segments")
175
+ end
176
+
177
+ # Add Subscribers to a Segment
178
+ #
179
+ # == Parameters:
180
+ # @param subscribers_id [Hash]
181
+ # @param segment_id [String]
182
+ # @return [JSON]
183
+ def self.add_subscribers_to_segment(subscribers_id, segment_id)
184
+ postRequest(subscribers_id ,"segments/#{segment_id}/subscribers")
185
+ end
186
+
187
+ # Get Subscribers in a Segment
188
+ #
189
+ # == Parameters:
190
+ # @param segment_id [String]
191
+ # @param page_number [Interger]
192
+ # @param items_per_page [Interger]
193
+ # @return [JSON]
194
+ def self.get_subscribers_segment(segment_id, page_number=1, items_per_page=2)
195
+ getRequest("segments/#{segment_id}/subscribers?page=#{page_number}&per_page=#{items_per_page}")
196
+ end
197
+
198
+ # Get Segments for a Subscriber
199
+ #
200
+ # == Parameters:
201
+ # @param segment_id [String]
202
+ # @return [JSON]
203
+ def self.get_segments_for_a_subscriber(segment_id)
204
+ getRequest("subscribers/#{segment_id}/segments")
205
+ end
206
+
207
+ # Remove Subscribers from a Segment
208
+ #
209
+ # == Parameters:
210
+ # @param subscribers_id [Hash]
211
+ # @param segment_id [String]
212
+ # @return [JSON]
213
+ def self.remove_subscribers_from_a_segment(subscribers_id, segment_id)
214
+ putRequest(subscribers_id, "segments/#{segment_id}/subscribers")
215
+ end
216
+
217
+ # Delete A Segment
218
+ #
219
+ # == Parameters:
220
+ # @param segment_id [String]
221
+ # @return [JSON]
222
+ def self.delete_segment(segment_id)
223
+ deleteRequest ("segments/#{segment_id}")
224
+ end
225
+
226
+ end
@@ -0,0 +1,3 @@
1
+ module Pushcrew
2
+ VERSION = "0.1.0"
3
+ end
data/pushcrew.gemspec ADDED
@@ -0,0 +1,38 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'pushcrew/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "pushcrew"
8
+ spec.version = Pushcrew::VERSION
9
+ spec.authors = ["Marmotex"]
10
+ spec.email = ["admin@marmotex.com"]
11
+
12
+ spec.summary = %q{Marmotex implementation of pushcrew API}
13
+ spec.description = %q{Marmotex implementation of pushcrew API}
14
+ spec.homepage = "https://rubygems.org/gems/pushcrew"
15
+ spec.license = "MIT"
16
+
17
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
19
+ # if spec.respond_to?(:metadata)
20
+ # spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
21
+ # else
22
+ # raise "RubyGems 2.0 or newer is required to protect against " \
23
+ # "public gem pushes."
24
+ # end
25
+
26
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
27
+ f.match(%r{^(test|spec|features)/})
28
+ end
29
+ spec.bindir = "exe"
30
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
+ spec.require_paths = ["lib"]
32
+
33
+ spec.add_development_dependency "bundler", "~> 1.14"
34
+ spec.add_development_dependency "rake", "~> 10.0"
35
+ spec.add_development_dependency "rspec", "~> 3.0"
36
+ spec.add_development_dependency "simplecov"
37
+ spec.add_development_dependency "rest-client"
38
+ end
metadata ADDED
@@ -0,0 +1,127 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pushcrew
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Marmotex
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-06-01 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.14'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.14'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: simplecov
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rest-client
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: Marmotex implementation of pushcrew API
84
+ email:
85
+ - admin@marmotex.com
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - ".gitignore"
91
+ - ".rspec"
92
+ - ".travis.yml"
93
+ - CODE_OF_CONDUCT.md
94
+ - Gemfile
95
+ - LICENSE.txt
96
+ - README.md
97
+ - Rakefile
98
+ - bin/console
99
+ - bin/setup
100
+ - lib/pushcrew.rb
101
+ - lib/pushcrew/version.rb
102
+ - pushcrew.gemspec
103
+ homepage: https://rubygems.org/gems/pushcrew
104
+ licenses:
105
+ - MIT
106
+ metadata: {}
107
+ post_install_message:
108
+ rdoc_options: []
109
+ require_paths:
110
+ - lib
111
+ required_ruby_version: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
116
+ required_rubygems_version: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ requirements: []
122
+ rubyforge_project:
123
+ rubygems_version: 2.6.12
124
+ signing_key:
125
+ specification_version: 4
126
+ summary: Marmotex implementation of pushcrew API
127
+ test_files: []