ruby_http_client 3.2.0 → 3.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.codeclimate.yml +16 -0
- data/.env_sample +1 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +47 -0
- data/.travis.yml +34 -13
- data/CHANGELOG.md +87 -0
- data/CODE_OF_CONDUCT.md +73 -0
- data/CONTRIBUTING.md +36 -50
- data/FIRST_TIMERS.md +79 -0
- data/Gemfile +3 -0
- data/ISSUE_TEMPLATE.md +30 -0
- data/{LICENSE.txt → LICENSE.md} +8 -8
- data/Makefile +7 -0
- data/PULL_REQUEST_TEMPLATE.md +31 -0
- data/README.md +54 -18
- data/Rakefile +25 -2
- data/TROUBLESHOOTING.md +17 -0
- data/USAGE.md +108 -0
- data/examples/example.rb +29 -1
- data/lib/ruby_http_client.rb +119 -22
- data/ruby_http_client.gemspec +16 -13
- data/static/img/github-fork.png +0 -0
- data/static/img/github-sign-up.png +0 -0
- data/test/test_helper.rb +7 -0
- data/test/test_ruby_http_client.rb +237 -11
- data/twilio_sendgrid_logo.png +0 -0
- data/use_cases/README.md +3 -0
- metadata +80 -9
- data/.github/ISSUE_TEMPLATE +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b0319ff91ddd522b5dd70bd67121289331e678d194f600d37c9fcf821d717203
|
4
|
+
data.tar.gz: cc2d4d5d4f5b913ad2c5130febd6def93d61788f2b905dd7098532c4bde02968
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80c39d7776bb3302b28ac3177f6e67f1e44547246319d3314e1e67f2fcd972aca77e639f96eef0725f317bf8fd1bfa8cd69daf07c7e0db67be78f5dc9b30ba96
|
7
|
+
data.tar.gz: fd255039aee276fb40bda796c8c13629adf400dbbe5fe3a7d5fcc42fbddcc98ec8c6b75852ffa67db4c9df2c572b7e3e279a36bcc6304424b1f6a2a5574ba710
|
data/.codeclimate.yml
ADDED
data/.env_sample
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
export SENDGRID_API_KEY=''
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
AllCops:
|
2
|
+
Exclude:
|
3
|
+
- bin/**/*
|
4
|
+
- script/**/*
|
5
|
+
- vendor/**/*
|
6
|
+
- cookbooks/**/*
|
7
|
+
|
8
|
+
ClassLength:
|
9
|
+
Enabled: false
|
10
|
+
CyclomaticComplexity:
|
11
|
+
Enabled: false
|
12
|
+
Documentation:
|
13
|
+
Enabled: false
|
14
|
+
Encoding:
|
15
|
+
Enabled: false
|
16
|
+
Layout/EmptyLinesAroundBlockBody:
|
17
|
+
Enabled: true
|
18
|
+
Layout/ExtraSpacing:
|
19
|
+
Enabled: true
|
20
|
+
AllowForAlignment: false
|
21
|
+
ForceEqualSignAlignment: false
|
22
|
+
Layout/SpaceBeforeFirstArg:
|
23
|
+
Enabled: true
|
24
|
+
LineLength:
|
25
|
+
Enabled: false
|
26
|
+
MethodLength:
|
27
|
+
Enabled: false
|
28
|
+
Metrics/AbcSize:
|
29
|
+
Enabled: false
|
30
|
+
Metrics/BlockLength:
|
31
|
+
Enabled: false
|
32
|
+
Metrics/ModuleLength:
|
33
|
+
Enabled: false
|
34
|
+
Naming/FileName:
|
35
|
+
Enabled: true
|
36
|
+
PerceivedComplexity:
|
37
|
+
Enabled: false
|
38
|
+
Style/ClassAndModuleChildren:
|
39
|
+
Enabled: false
|
40
|
+
Style/RescueModifier:
|
41
|
+
Enabled: true
|
42
|
+
Style/StringLiterals:
|
43
|
+
Enabled: true
|
44
|
+
Style/NumericLiterals:
|
45
|
+
Enabled: false
|
46
|
+
Style/FrozenStringLiteralComment:
|
47
|
+
Enabled: false
|
data/.travis.yml
CHANGED
@@ -1,17 +1,38 @@
|
|
1
|
+
env:
|
2
|
+
global:
|
3
|
+
- CC_TEST_REPORTER_ID=$CC_TEST_REPORTER_ID
|
1
4
|
language: ruby
|
2
5
|
rvm:
|
3
|
-
-
|
4
|
-
|
5
|
-
-
|
6
|
+
- ruby-head
|
7
|
+
- 2.7
|
8
|
+
- 2.6
|
9
|
+
- 2.5
|
10
|
+
- 2.4
|
11
|
+
- jruby-9.2
|
12
|
+
before_script:
|
13
|
+
- make install
|
14
|
+
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
15
|
+
- chmod +x ./cc-test-reporter
|
16
|
+
- "./cc-test-reporter before-build"
|
17
|
+
script:
|
18
|
+
- make test
|
19
|
+
after_script:
|
20
|
+
- "./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT"
|
21
|
+
deploy:
|
22
|
+
provider: rubygems
|
23
|
+
api_key:
|
24
|
+
secure: ubaCqrwnHN4TzLhFyM7/2WPicNya2FSeKbZiG9zqGGTklTNi3T/pP1BUDdVQGNSOsvBl/s20P6M+aKL6KTH9t4JpS4laFgI3iwBWyg4Q4fcchDMOrtMaChR7FvIfvOOFcCQYvvMB/U+Mr9GSnKkVHmcu2JQgZM/kBSst3FymAQeRa8+64IKg2s/DjPejT4aTvyuqJ75xN+pkCbv36KHic1jrKZgpSdWZ7UaOZfBJ7xdReCXYXignKFJs1240O1yfIyikFrgTs75Ch7/OmI792CaFIKIvODg97wYlCnu0FYCOxNfZw2JVwp+oYqXRkI5l2ljXWFvjPxdckGSP7rM4lL9GxSgVqgqBd1orXyab2Ad+POlbx97wEmoYLbIF4BHGoe7nXV7BXquQDWIm2o5vx5RxenTnWMOZNLbRBVUAdRbxrxW8iQhTRs+jjeJu3Cj9alWd7UPB/t2v8/c9MpOCNdH+QyAJW6dvZrKTyy75CofGAYbzezp2DA91IXAELiFQaPhCXXzkOTVHCh9+mBYG7b0t1iXQoN+MMcyQ3q89coZDxI1l77keNPbj8GcQQ35fRxRhmgsID+mQfuYXgkx8aTs5MYwJWy+sxyOrEBMAyehDhdk0JZjJdYhgsh+zIqfpy9meZIxNxNQ7+s1EGoFW4RggKark2t9Y8NML7hX+xIc=
|
25
|
+
gem: ruby_http_client
|
26
|
+
on:
|
27
|
+
tags: true
|
28
|
+
rvm: '2.4'
|
29
|
+
skip_cleanup: true
|
30
|
+
|
6
31
|
notifications:
|
7
|
-
|
32
|
+
slack:
|
33
|
+
if: branch = main
|
34
|
+
on_pull_requests: false
|
35
|
+
on_success: never
|
36
|
+
on_failure: change
|
8
37
|
rooms:
|
9
|
-
secure:
|
10
|
-
template:
|
11
|
-
- '<a href="https://travis-ci.org/%{repository}/builds/%{build_id}">%{repository}
|
12
|
-
Build %{build_number}</a> on branch <i>%{branch}</i> by %{author}: <strong>%{message}</strong>
|
13
|
-
<a href="https://github.com/sendgrid/%{repository}/commits/%{commit}">View on GitHub</a>'
|
14
|
-
format: html
|
15
|
-
notify: false
|
16
|
-
script:
|
17
|
-
- rake
|
38
|
+
- secure: k9NxCTK/mvoRHWJ6QQ5ErM/+T7yy6KcUjNtb5WgsiA+OyjRgQb5qcm83pYXstDRP6JyEGmuLs4GLIQYSTte1yBvXzM2EqneltNZL2sc+r24zWFcVu6KZb/eq1+diJes+76W4tXT0w+uyyZc9sudFND32RUvcKr31jNvlHDpaII9sose9qC23YKf2u4PlxH8l7wRd3k58XeL9TaQ40xt+NiIrv1R+4QT1GnuYr9cqXrCbTNsZidrdnLmqHybsoJsHjqq7PRDi92CZBQitwzGDnyiOr40CBsqs0VoiUttsKxrG6WCglEDd2wlhYha8ti7z6GxshQHRk2bOePi2Z2YHLJXJcrkLxukCUcf/5GPu+M0vdVj+wWfrlIRa5yPW9dpEgain6Av8c/zc9GOMvTNKNlnxreh3710pQh6b9+C0PfKmsIR3kTqwrDFZxu63IHy8S/CfyFQqHAo2X1TMnJLvvWzXnxAu/qB729YGwuJX57qjk56pvun+pZXGiRsk2okjPcz1zlcoyQOd/a8WqUNN5FEIvHd+cNeDFnYm0QwqBoMTurNc+LyvlB61BNcdq+J2GdtGjAksIc55adFkeOnVGMioW349lGt0LkuhI5um7O3J8b3Y7WPOt1tcR9o44G6t2aZOnnVNZVV04/A3XjlZSJAmG26K6HoBBl3o9uL8aWk=
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,93 @@ All notable changes to this project will be documented in this file.
|
|
3
3
|
|
4
4
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
5
5
|
|
6
|
+
[2020-08-19] Version 3.5.1
|
7
|
+
--------------------------
|
8
|
+
**Library - Chore**
|
9
|
+
- [PR #120](https://github.com/sendgrid/ruby-http-client/pull/120): update GitHub branch references to use HEAD. Thanks to [@thinkingserious](https://github.com/thinkingserious)!
|
10
|
+
|
11
|
+
|
12
|
+
[2020-03-04] Version 3.5.0
|
13
|
+
--------------------------
|
14
|
+
**Library - Fix**
|
15
|
+
- [PR #118](https://github.com/sendgrid/ruby-http-client/pull/118): JSON-encode array request bodies. Thanks to [@childish-sambino](https://github.com/childish-sambino)!
|
16
|
+
- [PR #67](https://github.com/sendgrid/ruby-http-client/pull/67): Split up the build_request function to logical component functions to reduce method complexity. Thanks to [@sony-mathew](https://github.com/sony-mathew)!
|
17
|
+
- [PR #115](https://github.com/sendgrid/ruby-http-client/pull/115): update incorrect gem name. Thanks to [@thinkingserious](https://github.com/thinkingserious)!
|
18
|
+
|
19
|
+
**Library - Chore**
|
20
|
+
- [PR #116](https://github.com/sendgrid/ruby-http-client/pull/116): add Ruby 2.7 to Travis. Thanks to [@childish-sambino](https://github.com/childish-sambino)!
|
21
|
+
- [PR #92](https://github.com/sendgrid/ruby-http-client/pull/92): Add CodeCov support to .travis.yml. Thanks to [@jamietanna](https://github.com/jamietanna)!
|
22
|
+
|
23
|
+
**Library - Feature**
|
24
|
+
- [PR #68](https://github.com/sendgrid/ruby-http-client/pull/68): add ratelimit support. Thanks to [@awj](https://github.com/awj)!
|
25
|
+
|
26
|
+
**Library - Test**
|
27
|
+
- [PR #98](https://github.com/sendgrid/ruby-http-client/pull/98): Fix rubocop.yml formatting warnings. Thanks to [@RolandBurrows](https://github.com/RolandBurrows)!
|
28
|
+
|
29
|
+
**Library - Docs**
|
30
|
+
- [PR #100](https://github.com/sendgrid/ruby-http-client/pull/100): adding code review section under contributing.md. Thanks to [@prathamsharma92](https://github.com/prathamsharma92)!
|
31
|
+
- [PR #101](https://github.com/sendgrid/ruby-http-client/pull/101): Grammerly checks on *.md files. Thanks to [@prathamsharma92](https://github.com/prathamsharma92)!
|
32
|
+
- [PR #84](https://github.com/sendgrid/ruby-http-client/pull/84): Corrected *.md files using Grammarly. Thanks to [@pushkyn](https://github.com/pushkyn)!
|
33
|
+
|
34
|
+
|
35
|
+
[2020-02-19] Version 3.4.3
|
36
|
+
--------------------------
|
37
|
+
**Library - Fix**
|
38
|
+
- [PR #95](https://github.com/sendgrid/ruby-http-client/pull/95): JSON body reencoding and Rubocop configuration. Thanks to [@guillemm](https://github.com/guillemm)!
|
39
|
+
|
40
|
+
|
41
|
+
[2020-01-22] Version 3.4.2
|
42
|
+
--------------------------
|
43
|
+
**Library - Fix**
|
44
|
+
- [PR #114](https://github.com/sendgrid/ruby-http-client/pull/114): add skip_cleanup flag to fix travis deploy. Thanks to [@thinkingserious](https://github.com/thinkingserious)!
|
45
|
+
|
46
|
+
|
47
|
+
[2020-01-22] Version 3.4.1
|
48
|
+
--------------------------
|
49
|
+
**Library - Docs**
|
50
|
+
- [PR #113](https://github.com/sendgrid/ruby-http-client/pull/113): baseline all the templated markdown docs. Thanks to [@childish-sambino](https://github.com/childish-sambino)!
|
51
|
+
|
52
|
+
|
53
|
+
[2020-01-09] Version 3.4.0
|
54
|
+
--------------------------
|
55
|
+
**Library - Fix**
|
56
|
+
- [PR #108](https://github.com/sendgrid/ruby-http-client/pull/108): Avoid mutating @url_path to avoid unexpected side effects. Thanks to [@tachyons](https://github.com/tachyons)!
|
57
|
+
- [PR #49](https://github.com/sendgrid/ruby-http-client/pull/49): change year for the license file. Thanks to [@luiscobits](https://github.com/luiscobits)!
|
58
|
+
- [PR #48](https://github.com/sendgrid/ruby-http-client/pull/48): update LICENSE - fix year. Thanks to [@pushkyn](https://github.com/pushkyn)!
|
59
|
+
|
60
|
+
**Library - Docs**
|
61
|
+
- [PR #105](https://github.com/sendgrid/ruby-http-client/pull/105): Add our Developer Experience Engineer career opportunity to the READM…. Thanks to [@mptap](https://github.com/mptap)!
|
62
|
+
- [PR #61](https://github.com/sendgrid/ruby-http-client/pull/61): update CONTRIBUTING.md. Thanks to [@thepriefy](https://github.com/thepriefy)!
|
63
|
+
- [PR #86](https://github.com/sendgrid/ruby-http-client/pull/86): Add first time contributor documentation. Thanks to [@eyewritecode](https://github.com/eyewritecode)!
|
64
|
+
- [PR #91](https://github.com/sendgrid/ruby-http-client/pull/91): update contribution to branch off development. Thanks to [@vikasnautiyal](https://github.com/vikasnautiyal)!
|
65
|
+
- [PR #72](https://github.com/sendgrid/ruby-http-client/pull/72): Add USAGE.md. Thanks to [@ProZsolt](https://github.com/ProZsolt)!
|
66
|
+
- [PR #73](https://github.com/sendgrid/ruby-http-client/pull/73): Create a Use Cases Directory. Thanks to [@ProZsolt](https://github.com/ProZsolt)!
|
67
|
+
- [PR #41](https://github.com/sendgrid/ruby-http-client/pull/41): Create PULL_REQUEST_TEMPLATE.md. Thanks to [@flaredragon](https://github.com/flaredragon)!
|
68
|
+
|
69
|
+
**Library - Chore**
|
70
|
+
- [PR #80](https://github.com/sendgrid/ruby-http-client/pull/80): Missing Dev Dependencies + rubocop #79. Thanks to [@kplimack](https://github.com/kplimack)!
|
71
|
+
- [PR #66](https://github.com/sendgrid/ruby-http-client/pull/66): delete PULL_REQUEST_TEMPLATE.md. Thanks to [@thepriefy](https://github.com/thepriefy)!
|
72
|
+
- [PR #76](https://github.com/sendgrid/ruby-http-client/pull/76): Add Gemfile. Thanks to [@kplimack](https://github.com/kplimack)!
|
73
|
+
- [PR #58](https://github.com/sendgrid/ruby-http-client/pull/58): [Closes #55] Add code coverage reporting to CC. Thanks to [@lauratpa](https://github.com/lauratpa)!
|
74
|
+
- [PR #57](https://github.com/sendgrid/ruby-http-client/pull/57): [Closes #56] Fix some rubocop issues. Thanks to [@lauratpa](https://github.com/lauratpa)!
|
75
|
+
- [PR #50](https://github.com/sendgrid/ruby-http-client/pull/50): Added unittest to check for specific repo files. Thanks to [@mptap](https://github.com/mptap)!
|
76
|
+
- [PR #51](https://github.com/sendgrid/ruby-http-client/pull/51): Add License end year test. Thanks to [@diegous](https://github.com/diegous)!
|
77
|
+
- [PR #39](https://github.com/sendgrid/ruby-http-client/pull/39): Add a .env_sample file. Thanks to [@thepriefy](https://github.com/thepriefy)!
|
78
|
+
- [PR #112](https://github.com/sendgrid/ruby-http-client/pull/112): Auto-deploy upon successful tagged commit. Thanks to [@thinkingserious](https://github.com/thinkingserious)!
|
79
|
+
- [PR #111](https://github.com/sendgrid/ruby-http-client/pull/111): Update CHANGELOG heading format for automation. Thanks to [@thinkingserious](https://github.com/thinkingserious)!
|
80
|
+
- [PR #110](https://github.com/sendgrid/ruby-http-client/pull/110): Add Makefile for Librarian automation. Thanks to [@thinkingserious](https://github.com/thinkingserious)!
|
81
|
+
|
82
|
+
**Library - Feature**
|
83
|
+
- [PR #75](https://github.com/sendgrid/ruby-http-client/pull/75): Add ability to set proxy. Thanks to [@eitoball](https://github.com/eitoball)!
|
84
|
+
- [PR #20](https://github.com/sendgrid/ruby-http-client/pull/20): Add option to set http attributes when creating an instance of Client. Thanks to [@jrectenwald](https://github.com/jrectenwald)!
|
85
|
+
|
86
|
+
|
87
|
+
[2017-10-30] Version 3.3.0
|
88
|
+
--------------------------
|
89
|
+
## Added
|
90
|
+
- #11 fix: Allow for multiple values for a parameter
|
91
|
+
- Thanks to [xiaoboa](https://github.com/xiaoboa) for the pull request!
|
92
|
+
|
6
93
|
## [3.2.0] - 2017-09-01
|
7
94
|
### Added
|
8
95
|
- #12 Add a helper returns the response body as a hash
|
data/CODE_OF_CONDUCT.md
ADDED
@@ -0,0 +1,73 @@
|
|
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, sex characteristics, gender identity and expression,
|
9
|
+
level of experience, education, socio-economic status, nationality, personal
|
10
|
+
appearance, race, religion, or sexual identity and 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 open-source@twilio.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 https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
72
|
+
|
73
|
+
[homepage]: https://www.contributor-covenant.org
|
data/CONTRIBUTING.md
CHANGED
@@ -1,32 +1,17 @@
|
|
1
|
-
Hello! Thank you for choosing to help contribute to one of the SendGrid open source libraries. There are many ways you can contribute and help is always welcome.
|
2
|
-
|
3
|
-
- [CLAs and CCLAs](#cla)
|
4
|
-
- [Roadmap & Milestones](#roadmap)
|
5
|
-
- [Feature Request](#feature_request)
|
6
|
-
- [Submit a Bug Report](#submit_a_bug_report)
|
7
|
-
- [Improvements to the Codebase](#improvements_to_the_codebase)
|
8
|
-
- [Understanding the Code Base](#understanding_the_codebase)
|
9
|
-
- [Testing](#testing)
|
10
|
-
- [Style Guidelines & Naming Conventions](#style_guidelines_and_naming_conventions)
|
11
|
-
- [Creating a Pull Request](#creating_a_pull_request)
|
12
|
-
|
13
|
-
<a name="roadmap"></a>
|
14
|
-
We use [Milestones](https://github.com/sendgrid/ruby-http-client/milestones) to help define current roadmaps, please feel free to grab an issue from the current milestone. Please indicate that you have begun work on it to avoid collisions. Once a PR is made, community review, comments, suggestions and additional PRs are welcomed and encouraged.
|
15
|
-
|
16
|
-
<a name="cla"></a>
|
17
|
-
## CLAs and CCLAs
|
18
|
-
|
19
|
-
Before you get started, SendGrid requires that a SendGrid Contributor License Agreement (CLA) be filled out by every contributor to a SendGrid open source project.
|
1
|
+
Hello! Thank you for choosing to help contribute to one of the SendGrid open source libraries. There are many ways you can contribute and help is always welcome. We simply ask that you follow the following contribution policies.
|
20
2
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
3
|
+
- [Feature Request](#feature-request)
|
4
|
+
- [Submit a Bug Report](#submit-a-bug-report)
|
5
|
+
- [Improvements to the Codebase](#improvements-to-the-codebase)
|
6
|
+
- [Understanding the Code Base](#understanding-the-codebase)
|
7
|
+
- [Testing](#testing)
|
8
|
+
- [Style Guidelines & Naming Conventions](#style-guidelines-and-naming-conventions)
|
9
|
+
- [Creating a Pull Request](#creating-a-pull-request)
|
10
|
+
- [Code Reviews](#code-reviews)
|
26
11
|
|
27
|
-
|
12
|
+
We use [Milestones](https://github.com/sendgrid/ruby-http-client/milestones) to help define current roadmaps, please feel free to grab an issue from the current milestone. Please indicate that you have begun work on it to avoid collisions. Once a PR is made, community review, comments, suggestions, and additional PRs are welcomed and encouraged.
|
28
13
|
|
29
|
-
<a name="
|
14
|
+
<a name="feature-request"></a>
|
30
15
|
## Feature Request
|
31
16
|
|
32
17
|
If you'd like to make a feature request, please read this section.
|
@@ -36,7 +21,7 @@ The GitHub issue tracker is the preferred channel for library feature requests,
|
|
36
21
|
- Please **search for existing issues** in order to ensure we don't have duplicate bugs/feature requests.
|
37
22
|
- Please be respectful and considerate of others when commenting on issues
|
38
23
|
|
39
|
-
<a name="
|
24
|
+
<a name="submit-a-bug-report"></a>
|
40
25
|
## Submit a Bug Report
|
41
26
|
|
42
27
|
Note: DO NOT include your credentials in ANY code examples, descriptions, or media you make public.
|
@@ -46,14 +31,14 @@ A software bug is a demonstrable issue in the code base. In order for us to diag
|
|
46
31
|
Before you decide to create a new issue, please try the following:
|
47
32
|
|
48
33
|
1. Check the Github issues tab if the identified issue has already been reported, if so, please add a +1 to the existing post.
|
49
|
-
2. Update to the latest version of this code and check if issue has already been fixed
|
34
|
+
2. Update to the latest version of this code and check if the issue has already been fixed
|
50
35
|
3. Copy and fill in the Bug Report Template we have provided below
|
51
36
|
|
52
37
|
### Please use our Bug Report Template
|
53
38
|
|
54
|
-
In order to make the process easier, we've included a [sample bug report template](
|
39
|
+
In order to make the process easier, we've included a [sample bug report template](ISSUE_TEMPLATE.md).
|
55
40
|
|
56
|
-
<a name="
|
41
|
+
<a name="improvements-to-the-codebase"></a>
|
57
42
|
## Improvements to the Codebase
|
58
43
|
|
59
44
|
We welcome direct contributions to the ruby-http-client code base. Thank you!
|
@@ -73,11 +58,7 @@ git clone https://github.com/sendgrid/ruby-http-client.git
|
|
73
58
|
cd ruby-http-client
|
74
59
|
```
|
75
60
|
|
76
|
-
|
77
|
-
|
78
|
-
See the [examples folder](https://github.com/sendgrid/ruby-http-client/tree/master/examples) to get started quickly.
|
79
|
-
|
80
|
-
To try the SendGrid example:
|
61
|
+
### Environment Variables
|
81
62
|
|
82
63
|
First, get your free SendGrid account [here](https://sendgrid.com/free?source=ruby-http-client).
|
83
64
|
|
@@ -89,13 +70,17 @@ echo "sendgrid.env" >> .gitignore
|
|
89
70
|
source ./sendgrid.env
|
90
71
|
```
|
91
72
|
|
73
|
+
##### Execute: #####
|
74
|
+
|
75
|
+
See the [examples folder](examples) to get started quickly.
|
76
|
+
|
92
77
|
To run the example (after updating the emails):
|
93
78
|
|
94
79
|
```bash
|
95
80
|
ruby examples/example.rb
|
96
81
|
```
|
97
82
|
|
98
|
-
<a name="
|
83
|
+
<a name="understanding-the-codebase"></a>
|
99
84
|
## Understanding the Code Base
|
100
85
|
|
101
86
|
**/examples**
|
@@ -104,20 +89,20 @@ Working examples that demonstrate usage.
|
|
104
89
|
|
105
90
|
**ruby_http_client.rb**
|
106
91
|
|
107
|
-
An HTTP client with a fluent interface using method chaining and reflection. By returning self on [method_missing](
|
92
|
+
An HTTP client with a fluent interface using method chaining and reflection. By returning self on [method_missing](lib/ruby_http_client.rb#L209) and [_()](lib/ruby_http_client.rb#L194), we can dynamically build the URL using method chaining and [method_missing](lib/ruby_http_client.rb#L209) allows us to dynamically receive the method calls to achieve reflection.
|
108
93
|
|
109
94
|
This allows for the following mapping from a URL to a method chain:
|
110
95
|
|
111
|
-
`/api_client/{api_key_id}/version` maps to `client.api_client._(api_key_id).version.<method>()` where <method> is a [HTTP verb](
|
96
|
+
`/api_client/{api_key_id}/version` maps to `client.api_client._(api_key_id).version.<method>()` where <method> is a [HTTP verb](lib/ruby_http_client.rb#L38).
|
112
97
|
|
113
98
|
<a name="testing"></a>
|
114
99
|
## Testing
|
115
100
|
|
116
101
|
All PRs require passing tests before the PR will be reviewed.
|
117
102
|
|
118
|
-
All test files are in the [`test`](
|
103
|
+
All test files are in the [`test`](test) directory.
|
119
104
|
|
120
|
-
For the purposes of contributing to this repo, please update the [`test_ruby_http_client.rb`](
|
105
|
+
For the purposes of contributing to this repo, please update the [`test_ruby_http_client.rb`](test/test_ruby_http_client.rb) file with unit tests as you modify the code.
|
121
106
|
|
122
107
|
To run the tests:
|
123
108
|
|
@@ -125,20 +110,18 @@ To run the tests:
|
|
125
110
|
rake
|
126
111
|
```
|
127
112
|
|
128
|
-
<a name="
|
113
|
+
<a name="style-guidelines-and-naming-conventions"></a>
|
129
114
|
## Style Guidelines & Naming Conventions
|
130
115
|
|
131
116
|
Generally, we follow the style guidelines as suggested by the official language. However, we ask that you conform to the styles that already exist in the library. If you wish to deviate, please explain your reasoning.
|
132
117
|
|
133
|
-
Generally, we follow the style guidelines as suggested by the official language. However, we ask that you conform to the styles that already exist in the library. If you wish to deviate, please explain your reasoning.
|
134
|
-
|
135
118
|
- [Community Driven Style Guide](https://github.com/bbatsov/ruby-style-guide)
|
136
119
|
|
137
120
|
Please run your code through:
|
138
121
|
|
139
122
|
- [rubocop](https://github.com/bbatsov/rubocop).
|
140
123
|
|
141
|
-
## Creating a Pull Request<a name="
|
124
|
+
## Creating a Pull Request<a name="creating-a-pull-request"></a>
|
142
125
|
|
143
126
|
1. [Fork](https://help.github.com/fork-a-repo/) the project, clone your fork,
|
144
127
|
and configure the remotes:
|
@@ -147,7 +130,7 @@ Please run your code through:
|
|
147
130
|
# Clone your fork of the repo into the current directory
|
148
131
|
git clone https://github.com/sendgrid/ruby-http-client
|
149
132
|
# Navigate to the newly cloned directory
|
150
|
-
cd
|
133
|
+
cd ruby-http-client
|
151
134
|
# Assign the original repo to a remote called "upstream"
|
152
135
|
git remote add upstream https://github.com/sendgrid/ruby-http-client
|
153
136
|
```
|
@@ -159,7 +142,7 @@ Please run your code through:
|
|
159
142
|
git pull upstream <dev-branch>
|
160
143
|
```
|
161
144
|
|
162
|
-
3. Create a new topic branch
|
145
|
+
3. Create a new topic branch off the `development` branch to
|
163
146
|
contain your feature, change, or fix:
|
164
147
|
|
165
148
|
```bash
|
@@ -168,7 +151,7 @@ Please run your code through:
|
|
168
151
|
|
169
152
|
4. Commit your changes in logical chunks. Please adhere to these [git commit
|
170
153
|
message guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
|
171
|
-
or your code is unlikely be merged into the main project. Use Git's
|
154
|
+
or your code is unlikely to be merged into the main project. Use Git's
|
172
155
|
[interactive rebase](https://help.github.com/articles/interactive-rebase)
|
173
156
|
feature to tidy up your commits before making them public.
|
174
157
|
|
@@ -179,7 +162,7 @@ Please run your code through:
|
|
179
162
|
5. Locally merge (or rebase) the upstream development branch into your topic branch:
|
180
163
|
|
181
164
|
```bash
|
182
|
-
git pull [--rebase] upstream
|
165
|
+
git pull [--rebase] upstream development
|
183
166
|
```
|
184
167
|
|
185
168
|
6. Push your topic branch up to your fork:
|
@@ -189,6 +172,9 @@ Please run your code through:
|
|
189
172
|
```
|
190
173
|
|
191
174
|
7. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/)
|
192
|
-
with a clear title and description against the `
|
175
|
+
with a clear title and description against the `development` branch. All tests must be passing before we will review the PR.
|
176
|
+
|
177
|
+
<a name="code-reviews"></a>
|
178
|
+
## Code Reviews
|
193
179
|
|
194
|
-
If you
|
180
|
+
If you can, please look at open PRs and review them. Give feedback and help us merge these PRs much faster! If you don't know how, Github has some great <a href="https://help.github.com/articles/about-pull-request-reviews/">information on how to review a Pull Request.</a>
|