bobes-textmagic 0.3.0 → 0.3.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.
data/.gitignore CHANGED
@@ -3,3 +3,5 @@
3
3
  coverage
4
4
  rdoc
5
5
  pkg
6
+ _layouts
7
+ _site
data/History.txt ADDED
@@ -0,0 +1,8 @@
1
+ == 0.3.1 2009-05-30
2
+
3
+ * Sending POST requests instead of GET.
4
+
5
+ == 0.3.0 2009-05-28
6
+
7
+ * The first official release.
8
+ * Support for account, send, receive, message_status and delete_reply API commands.
data/README.rdoc CHANGED
@@ -11,11 +11,11 @@ SMS Gateway, visit the official {API documentation}[http://api.textmagic.com]
11
11
  or {Google group}[http://groups.google.com/group/textmagic-api].
12
12
 
13
13
  Links:
14
- Code[http://github.com/bobes/textmagic/tree/master]
14
+ Doc[http://tuzinsky.com/textmagic/rdoc]
15
15
  |
16
- Doc[http://bobes.github.com/textmagic/rdoc]
16
+ Code[http://github.com/bobes/textmagic/tree/master]
17
17
  |
18
- Blame[http://bobes.github.com]
18
+ Blame[http://tuzinsky.com]
19
19
 
20
20
 
21
21
  == Installation
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 3
4
- :patch: 0
4
+ :patch: 1
data/lib/executor.rb CHANGED
@@ -7,13 +7,14 @@ module TextMagic
7
7
  include HTTParty
8
8
  base_uri "http://www.textmagic.com/app"
9
9
 
10
- # Executes a command by sending a request to the TextMagic's HTTP
11
- # gateway. This is a low-level generic method used by methods in
12
- # TextMagic::API class. You should never need to use this method
10
+ # Executes a command by sending a request to the TextMagic's Bulk
11
+ # SMS gateway. This is a low-level generic method used by methods
12
+ # in TextMagic::API class. You should never need to use this method
13
13
  # directly.
14
14
  #
15
15
  # Parameters specified in the +options+ hash will be added to the
16
- # HTTP request's URI.
16
+ # HTTP POST request's body together with command, username and
17
+ # password.
17
18
  #
18
19
  # Returns a hash with values parsed from the server's response if
19
20
  # the command was successfully executed. In case the server replies
@@ -25,7 +26,7 @@ module TextMagic
25
26
  end
26
27
  options.merge!(:username => username, :password => password, :cmd => command)
27
28
  options.delete_if { |key, value| key.nil? || key.to_s.blank? || value.nil? || value.to_s.blank? }
28
- response = self.get('/api', :query => options, :format => :json)
29
+ response = self.post('/api', :body => options, :format => :json)
29
30
  raise Error.new(response) if response && response['error_code']
30
31
  response
31
32
  end
@@ -10,51 +10,53 @@ class ExecutorTest < Test::Unit::TestCase
10
10
 
11
11
  @username, @password = random_string, random_string
12
12
  @command, @options = random_string, random_hash
13
- @uri = build_uri(@command, @username, @password, @options)
13
+ @uri = "http://www.textmagic.com/app/api"
14
14
  end
15
15
 
16
16
  should 'not send HTTP request without command' do
17
- TextMagic::API::Executor.expects(:get).never
17
+ TextMagic::API::Executor.expects(:post).never
18
18
  lambda {
19
19
  TextMagic::API::Executor.execute(nil, @username, @password, @options)
20
20
  }.should raise_error(TextMagic::API::Error)
21
21
  end
22
22
 
23
23
  should 'not send HTTP request without username' do
24
- TextMagic::API::Executor.expects(:get).never
24
+ TextMagic::API::Executor.expects(:post).never
25
25
  lambda {
26
26
  TextMagic::API::Executor.execute(@command, nil, @password, @options)
27
27
  }.should raise_error(TextMagic::API::Error)
28
28
  end
29
29
 
30
30
  should 'not send HTTP request without password' do
31
- TextMagic::API::Executor.expects(:get).never
31
+ TextMagic::API::Executor.expects(:post).never
32
32
  lambda {
33
33
  TextMagic::API::Executor.execute(@command, @username, nil, @options)
34
34
  }.should raise_error(TextMagic::API::Error)
35
35
  end
36
36
 
37
- should 'send a GET request to proper uri' do
37
+ should 'send a POST request to proper uri' do
38
38
  response = random_string
39
- FakeWeb.register_uri(:get, @uri, :string => response)
39
+ FakeWeb.register_uri(:post, @uri, :string => response)
40
40
  TextMagic::API::Executor.execute(@command, @username, @password, @options)
41
41
  end
42
42
 
43
43
  should 'not send parameters with empty keys' do
44
44
  options_with_empty_values = @options.merge(nil => random_string, '' => random_string)
45
- TextMagic::API::Executor.expects(:get).with('/api', :query => @options, :format => :json)
45
+ @options.merge!(:username => @username, :password => @password, :cmd => @command)
46
+ TextMagic::API::Executor.expects(:post).with('/api', :body => @options, :format => :json)
46
47
  TextMagic::API::Executor.execute(@command, @username, @password, options_with_empty_values)
47
48
  end
48
49
 
49
50
  should 'not send parameters with empty values' do
50
51
  options_with_empty_values = @options.merge(random_string => nil, random_string => '')
51
- TextMagic::API::Executor.expects(:get).with('/api', :query => @options, :format => :json)
52
+ @options.merge!(:username => @username, :password => @password, :cmd => @command)
53
+ TextMagic::API::Executor.expects(:post).with('/api', :body => @options, :format => :json)
52
54
  TextMagic::API::Executor.execute(@command, @username, @password, options_with_empty_values)
53
55
  end
54
56
 
55
57
  should 'raise an error if the response contains error_code' do
56
58
  response = "{error_code:#{1 + rand(10)}}"
57
- FakeWeb.register_uri(:get, @uri, :string => response)
59
+ FakeWeb.register_uri(:post, @uri, :string => response)
58
60
  lambda {
59
61
  TextMagic::API::Executor.execute(@command, @username, @password, @options)
60
62
  }.should raise_error(TextMagic::API::Error)
@@ -62,7 +64,7 @@ class ExecutorTest < Test::Unit::TestCase
62
64
 
63
65
  should 'return a hash with values from the response' do
64
66
  hash = random_hash
65
- FakeWeb.register_uri(:get, @uri, :string => hash.to_json)
67
+ FakeWeb.register_uri(:post, @uri, :string => hash.to_json)
66
68
  response = TextMagic::API::Executor.execute(@command, @username, @password, @options)
67
69
  response.should == hash
68
70
  end
data/test/test_helper.rb CHANGED
@@ -27,12 +27,6 @@ def random_hash
27
27
  hash
28
28
  end
29
29
 
30
- def build_uri(command, username, password, options = {})
31
- options.merge!(:cmd => command, :username => username, :password => password)
32
- uri = "http://www.textmagic.com/app/api?"
33
- uri << options.collect { |key, value| "#{key}=#{value}"}.join('&')
34
- end
35
-
36
30
  def load_response(filename)
37
31
  File.read(File.join(File.dirname(__FILE__), 'fixtures', filename) + '.json')
38
32
  end
data/textmagic.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{textmagic}
5
- s.version = "0.3.0"
5
+ s.version = "0.3.1"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Vladimir Bobes Tuzinsky"]
9
- s.date = %q{2009-05-28}
9
+ s.date = %q{2009-05-30}
10
10
  s.email = %q{vladimir.tuzinsky@gmail.com}
11
11
  s.extra_rdoc_files = [
12
12
  "LICENSE",
@@ -15,6 +15,7 @@ Gem::Specification.new do |s|
15
15
  s.files = [
16
16
  ".document",
17
17
  ".gitignore",
18
+ "History.txt",
18
19
  "LICENSE",
19
20
  "README.rdoc",
20
21
  "Rakefile",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bobes-textmagic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vladimir Bobes Tuzinsky
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-05-28 00:00:00 -07:00
12
+ date: 2009-05-30 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -64,6 +64,7 @@ extra_rdoc_files:
64
64
  files:
65
65
  - .document
66
66
  - .gitignore
67
+ - History.txt
67
68
  - LICENSE
68
69
  - README.rdoc
69
70
  - Rakefile