phaxio 0.1.0 → 0.2.0

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.
data/README.md CHANGED
@@ -20,24 +20,24 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
- Configure a client with an api_key and api_secret:
23
+ Configure Phaxio with your api_key and api_secret:
24
24
 
25
- @client = Phaxio.client.config do |config|
26
- config.api_key = 10987654321
27
- config.api_secret = 12345678910
25
+ Phaxio.config do |config|
26
+ config.api_key = "10987654321"
27
+ config.api_secret = "12345678910"
28
28
  end
29
29
 
30
- Send a fax:
30
+ To send a fax:
31
31
 
32
- @client.send_fax(to: "0123456789", filename: "test.pdf")
32
+ Phaxio.send_fax(to: "0123456789", filename: "test.pdf")
33
33
 
34
34
  ### Currently Supported API Calls
35
35
 
36
- * send_fax
37
- * test_receive
38
- * get_fax_status
39
- * cancel_fax
40
- * get_account_status
36
+ * send_fax - `Phaxio.send_fax(to: "0123456789", filename: "test.pdf")`
37
+ * test_receive - `Phaxio.test_receive(filename: "test_file.pdf")`
38
+ * get_fax_status - `Phaxio.get_fax_status(id: "123456")`
39
+ * cancel_fax - `Phaxio.cancel_fax(id: "123456")`
40
+ * get_account_status - `Phaxio.get_account_status`
41
41
 
42
42
  ## Contributing
43
43
 
data/lib/phaxio/client.rb CHANGED
@@ -1,30 +1,12 @@
1
1
  module Phaxio
2
+ include HTTParty
3
+ base_uri 'https://api.phaxio.com/v1'
4
+
2
5
  module Config
3
6
  attr_accessor :api_key, :api_secret
4
7
  end
5
8
 
6
- class Client
7
- include HTTParty
8
- base_uri 'https://api.phaxio.com/v1'
9
-
10
- # Public: Initialize a new Client.
11
- #
12
- # Returns nothing.
13
- def initialize
14
- extend(Config)
15
- end
16
-
17
- # Public: Configure a Client.
18
- #
19
- # Returns the Client.
20
- def config
21
- if block_given?
22
- yield(self)
23
- end
24
-
25
- self
26
- end
27
-
9
+ module Client
28
10
  # Public: Send a fax.
29
11
  #
30
12
  # options - The Hash options used to refine the selection (default: {}):
@@ -76,11 +58,15 @@ module Phaxio
76
58
  # completed. Must be between 1 and 60
77
59
  # (optional).
78
60
  #
61
+ # Examples
62
+ #
63
+ # Phaxio.send_fax(to: "0123456789", filename: "test.pdf")
64
+ #
79
65
  # Returns a HTTParty::Response object containing a success bool,
80
66
  # a String message, and an in faxID.
81
67
  def send_fax(options)
82
68
  options.merge!({api_key: api_key, api_secret: api_secret})
83
- self.class.post("/send", options)
69
+ send_post("/send", options)
84
70
  end
85
71
 
86
72
  # Public: Test receiving a fax.
@@ -93,11 +79,15 @@ module Phaxio
93
79
  # a PhaxCode and is the file you want to simulate
94
80
  # sending (required).
95
81
  #
82
+ # Examples
83
+ #
84
+ # Phaxio.test_receive(filename: "test_file.pdf")
85
+ #
96
86
  # Returns a HTTParty::Response object containing a success bool
97
87
  # and a String message.
98
88
  def test_receive(options)
99
89
  options.merge!({api_key: api_key, api_secret: api_secret})
100
- self.class.post("/testReceive", options)
90
+ send_post("/testReceive", options)
101
91
  end
102
92
 
103
93
  # Public: Get the status of a specific fax.
@@ -106,15 +96,19 @@ module Phaxio
106
96
  # id - The int id of the fax you want to get the status of
107
97
  # (required).
108
98
  #
99
+ # Examples
100
+ #
101
+ # Phaxio.get_fax_status(id: "123456")
102
+ #
109
103
  # Returns a HTTParty::Response object containing a success bool,
110
104
  # a String message, and the data of the fax.
111
105
  def get_fax_status(options)
112
106
  if options[:id].nil?
113
107
  raise StandardError, "You must include a fax id."
114
108
  end
115
-
109
+
116
110
  options.merge!({api_key: api_key, api_secret: api_secret})
117
- self.class.post("/faxStatus", options)
111
+ send_post("/faxStatus", options)
118
112
  end
119
113
 
120
114
  # Public: Cancel a specific fax.
@@ -122,24 +116,48 @@ module Phaxio
122
116
  # options - The Hash options used to refine the selection (defaults: {}):
123
117
  # id - The int id of the fax you want to cancel (required).
124
118
  #
119
+ # Examples
120
+ #
121
+ # Phaxio.cancel_fax(id: "123456")
122
+ #
125
123
  # Returns a HTTParty::Response object containing a success bool
126
124
  # and a String message.
127
125
  def cancel_fax(options)
128
126
  options.merge!({api_key: api_key, api_secret: api_secret})
129
- self.class.post("/faxCancel", options)
127
+ send_post("/faxCancel", options)
130
128
  end
131
129
 
132
130
  # Public: Get the status of Client's account.
133
131
  #
132
+ # Examples
133
+ #
134
+ # Phaxio.get_account_status
135
+ #
134
136
  # Returns a HTTParty::Response object with success, message, and data
135
137
  # (containing faxes_sent_this_month, faxes_sent_today, and balance).
136
138
  def get_account_status
137
- self.class.post("/accountStatus", { api_key: api_key, api_secret:api_secret })
139
+ send_post("/accountStatus", {})
140
+ end
141
+
142
+ def send_post(path, options)
143
+ post(path, options.merge!({api_key: api_key, api_secret: api_secret}))
138
144
  end
139
145
  end
140
146
 
141
- def self.client
142
- @client ||= Client.new
147
+ # Public: Configure Phaxio with your api_key and api_secret
148
+ #
149
+ # Examples
150
+ #
151
+ # Phaxio.config do |config|
152
+ # config.api_key = "12345678910"
153
+ # config.api_secret = "10987654321"
154
+ # end
155
+ #
156
+ # Returns nothing.
157
+ def self.config
158
+ yield(self)
143
159
  end
144
160
 
161
+ extend Client
162
+ extend Config
145
163
  end
@@ -1,3 +1,3 @@
1
1
  module Phaxio
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
data/phaxio.gemspec CHANGED
@@ -17,5 +17,5 @@ Gem::Specification.new do |gem|
17
17
 
18
18
  gem.add_runtime_dependency "httparty", "~> 0.9.0"
19
19
  gem.add_development_dependency "fakeweb", "~> 1.3.0"
20
- gem.add_development_dependency "rake", "~> 0.9.2.2"
20
+ gem.add_development_dependency "rake", "~> 0.9.2.2"
21
21
  end
data/test/test_phaxio.rb CHANGED
@@ -2,48 +2,47 @@ require_relative "test_helper"
2
2
 
3
3
  class TestPhaxio < Test::Unit::TestCase
4
4
  def setup
5
- @client = Phaxio.client.config do |config|
6
- config.api_key = 10987654321
7
- config.api_secret = 12345678910
5
+ Phaxio.config do |config|
6
+ config.api_key = "12345678910"
7
+ config.api_secret = "10987654321"
8
8
  end
9
9
  end
10
10
 
11
11
  def test_config
12
- assert_equal 10987654321, @client.api_key
13
- assert_equal 12345678910, @client.api_secret
12
+ assert_equal "12345678910", Phaxio.api_key
13
+ assert_equal "10987654321", Phaxio.api_secret
14
14
  end
15
15
 
16
16
  def test_initialize
17
- assert_instance_of Phaxio::Client, @client
18
17
  end
19
18
 
20
19
  def test_send_fax
21
- @response = @client.send_fax(to: "0123456789", filename: "test.pdf")
20
+ @response = Phaxio.send_fax(to: "0123456789", filename: "test.pdf")
22
21
  assert_equal true, @response["success"]
23
22
  assert_equal "Fax queued for sending", @response["message"]
24
23
  assert_equal 1234, @response["faxId"]
25
24
  end
26
25
 
27
26
  def test_test_receive
28
- @response = @client.test_receive(filename: "test_file.pdf")
27
+ @response = Phaxio.test_receive(filename: "test_file.pdf")
29
28
  assert_equal true, @response["success"]
30
29
  assert_equal "Test fax received from 234567890. Calling back now...", @response["message"]
31
30
  end
32
31
 
33
32
  def test_get_fax_status
34
- @response = @client.get_fax_status(id: "123456")
33
+ @response = Phaxio.get_fax_status(id: "123456")
35
34
  assert_equal true, @response["success"]
36
35
  assert_equal "Retrieved fax successfully", @response["message"]
37
36
  end
38
37
 
39
38
  def test_cancel_fax
40
- @response = @client.cancel_fax(id: "123456")
39
+ @response = Phaxio.cancel_fax(id: "123456")
41
40
  assert_equal true, @response["success"]
42
41
  assert_equal "Fax canceled successfully.", @response["message"]
43
42
  end
44
43
 
45
44
  def test_get_account_status
46
- @response = @client.get_account_status
45
+ @response = Phaxio.get_account_status
47
46
  assert_equal true, @response["success"]
48
47
  assert_equal "Account status retrieved successfully", @response["message"]
49
48
  assert_equal 120, @response["data"]["faxes_sent_this_month"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phaxio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: