textmagic 0.4.0 → 0.5.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/.gitignore +15 -6
- data/Gemfile +2 -0
- data/Rakefile +0 -88
- data/lib/textmagic.rb +4 -5
- data/lib/textmagic/.rb +5 -0
- data/lib/{api.rb → textmagic/api.rb} +1 -1
- data/lib/{charset.rb → textmagic/charset.rb} +0 -0
- data/lib/{error.rb → textmagic/error.rb} +0 -0
- data/lib/{executor.rb → textmagic/executor.rb} +3 -5
- data/lib/{response.rb → textmagic/response.rb} +2 -2
- data/lib/{validation.rb → textmagic/validation.rb} +0 -0
- data/lib/textmagic/version.rb +3 -0
- data/test/test_api.rb +2 -2
- data/test/test_executor.rb +6 -6
- data/test/test_response.rb +8 -0
- data/textmagic.gemspec +23 -87
- metadata +78 -116
- data/VERSION.yml +0 -5
data/.gitignore
CHANGED
@@ -1,8 +1,17 @@
|
|
1
|
-
*.
|
2
|
-
|
3
|
-
.
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
.bundle
|
4
|
+
.config
|
5
|
+
.yardoc
|
6
|
+
Gemfile.lock
|
7
|
+
InstalledFiles
|
8
|
+
_yardoc
|
4
9
|
coverage
|
5
|
-
|
10
|
+
doc/
|
11
|
+
lib/bundler/man
|
6
12
|
pkg
|
7
|
-
|
8
|
-
|
13
|
+
rdoc
|
14
|
+
spec/reports
|
15
|
+
test/tmp
|
16
|
+
test/version_tmp
|
17
|
+
tmp
|
data/Gemfile
ADDED
data/Rakefile
CHANGED
@@ -1,99 +1,11 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
1
|
require "rubygems"
|
4
2
|
require "rake"
|
5
|
-
require "yaml"
|
6
3
|
require "rake/testtask"
|
7
4
|
require "rake/rdoctask"
|
8
5
|
|
9
|
-
begin
|
10
|
-
require "jeweler"
|
11
|
-
Jeweler::Tasks.new do |gem|
|
12
|
-
gem.name = "textmagic"
|
13
|
-
gem.summary = %Q{Ruby interface to the TextMagic's Bulk SMS Gateway}
|
14
|
-
gem.description = %Q{
|
15
|
-
textmagic is a Ruby interface to the TextMagic's Bulk SMS Gateway.
|
16
|
-
It can be used to easily integrate SMS features into your application.
|
17
|
-
It supports sending messages, receiving replies and more.
|
18
|
-
You need to have a valid TextMagic account to use this gem. You can get one at http://www.textmagic.com.
|
19
|
-
}
|
20
|
-
gem.email = "vladimir.tuzinsky@gmail.com"
|
21
|
-
gem.homepage = "http://github.com/bobes/textmagic"
|
22
|
-
gem.authors = ["Vladimír Bobeš Tužinský"]
|
23
|
-
gem.rubyforge_project = "textmagic"
|
24
|
-
gem.add_runtime_dependency "httparty", ">= 0.5.2"
|
25
|
-
gem.add_development_dependency "mocha", ">= 0.9.8"
|
26
|
-
gem.add_development_dependency "shoulda", ">= 2.10.3"
|
27
|
-
gem.add_development_dependency "fakeweb", ">= 1.2.8"
|
28
|
-
gem.add_development_dependency "mcmire-matchy", ">= 0.5.2"
|
29
|
-
end
|
30
|
-
|
31
|
-
Jeweler::RubyforgeTasks.new
|
32
|
-
rescue LoadError
|
33
|
-
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
34
|
-
end
|
35
|
-
|
36
6
|
Rake::TestTask.new(:test) do |test|
|
37
7
|
test.libs << "lib" << "test"
|
38
8
|
test.pattern = "test/**/test_*.rb"
|
39
9
|
test.verbose = true
|
40
10
|
end
|
41
11
|
task :default => :test
|
42
|
-
|
43
|
-
begin
|
44
|
-
require "rcov/rcovtask"
|
45
|
-
Rcov::RcovTask.new do |test|
|
46
|
-
test.libs << "test"
|
47
|
-
test.pattern = "test/**/test_*.rb"
|
48
|
-
test.verbose = true
|
49
|
-
end
|
50
|
-
rescue LoadError
|
51
|
-
task :rcov do
|
52
|
-
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
Rake::RDocTask.new do |rdoc|
|
57
|
-
if File.exist?("VERSION.yml")
|
58
|
-
config = YAML.load(File.read("VERSION.yml"))
|
59
|
-
version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
|
60
|
-
else
|
61
|
-
version = ""
|
62
|
-
end
|
63
|
-
|
64
|
-
rdoc.rdoc_dir = 'rdoc'
|
65
|
-
rdoc.title = "textmagic #{version}"
|
66
|
-
rdoc.rdoc_files.include('README*')
|
67
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
68
|
-
rdoc.options << '--charset' << 'utf8'
|
69
|
-
rdoc.options << '--fmt' << 'shtml'
|
70
|
-
rdoc.template = 'direct'
|
71
|
-
end
|
72
|
-
|
73
|
-
desc "Build, commit and publish the RDOC files"
|
74
|
-
task :doc => :rerdoc do
|
75
|
-
cmd = <<-EOS
|
76
|
-
echo 'Packing and deleting rdoc directory'
|
77
|
-
tar -cf rdoc.tar rdoc
|
78
|
-
rm -rf rdoc
|
79
|
-
echo 'Checking out gh-pages branch'
|
80
|
-
git checkout -m gh-pages
|
81
|
-
echo 'Replacing rdoc directory'
|
82
|
-
rm -rf rdoc
|
83
|
-
tar -xf rdoc.tar
|
84
|
-
rm rdoc.tar
|
85
|
-
echo 'Commiting'
|
86
|
-
git add rdoc
|
87
|
-
git commit -m 'Updated RDoc'
|
88
|
-
echo 'Pushing to origin'
|
89
|
-
git push origin gh-pages
|
90
|
-
EOS
|
91
|
-
|
92
|
-
system cmd.split(/\n\s*/).join(" && ")
|
93
|
-
|
94
|
-
system <<-EOS
|
95
|
-
echo 'Checking out master'
|
96
|
-
git checkout master
|
97
|
-
echo 'Done'
|
98
|
-
EOS
|
99
|
-
end
|
data/lib/textmagic.rb
CHANGED
@@ -1,9 +1,8 @@
|
|
1
|
-
require "rubygems"
|
2
|
-
gem "httparty"
|
3
1
|
require "httparty"
|
4
|
-
|
5
|
-
|
2
|
+
|
3
|
+
%w[charset validation api response executor error version].each do |lib|
|
4
|
+
require File.join(File.dirname(__FILE__), "textmagic", lib)
|
6
5
|
end
|
7
6
|
|
8
|
-
module
|
7
|
+
module Textmagic
|
9
8
|
end
|
data/lib/textmagic/.rb
ADDED
@@ -79,7 +79,7 @@ module TextMagic
|
|
79
79
|
#
|
80
80
|
# api.send("Two hours later", "999314159265", :send_time => Time.now.to_i + 7200)
|
81
81
|
def send(text, *args)
|
82
|
-
raise Error.new(1, "Message text is empty")
|
82
|
+
raise Error.new(1, "Message text is empty") unless text
|
83
83
|
options = args.last.is_a?(Hash) ? args.pop : {}
|
84
84
|
unicode = API.is_unicode(text)
|
85
85
|
options[:unicode] = case options[:unicode]
|
File without changes
|
File without changes
|
@@ -20,12 +20,10 @@ module TextMagic
|
|
20
20
|
# the command was successfully executed. In case the server replies
|
21
21
|
# with error, this method raises a TextMagic::API::Error.
|
22
22
|
def self.execute(command, username, password, options = {})
|
23
|
-
raise TextMagic::API::Error.new(3, "Command is undefined")
|
24
|
-
|
25
|
-
raise TextMagic::API::Error.new(5, "Invalid username & password combination")
|
26
|
-
end
|
23
|
+
raise TextMagic::API::Error.new(3, "Command is undefined") unless command
|
24
|
+
raise TextMagic::API::Error.new(5, "Invalid username & password combination") unless username && password
|
27
25
|
options.merge!(:username => username, :password => password, :cmd => command)
|
28
|
-
options.delete_if { |key, value| key
|
26
|
+
options.delete_if { |key, value| !key || !value }
|
29
27
|
response = self.post("/api", :body => options, :format => :json)
|
30
28
|
raise Error.new(response) if response && response["error_code"]
|
31
29
|
response
|
@@ -33,11 +33,11 @@ module TextMagic
|
|
33
33
|
hash.each do |message_id, message_hash|
|
34
34
|
status = message_hash["status"].dup
|
35
35
|
metaclass = class << status; self; end
|
36
|
-
metaclass.send :attr_accessor, :text, :credits_cost, :reply_number, :
|
36
|
+
metaclass.send :attr_accessor, :text, :credits_cost, :reply_number, :status, :created_time, :completed_time
|
37
37
|
status.text = message_hash["text"]
|
38
38
|
status.credits_cost = message_hash["credits_cost"]
|
39
39
|
status.reply_number = message_hash["reply_number"]
|
40
|
-
status.
|
40
|
+
status.status = message_hash["status"]
|
41
41
|
status.created_time = Time.at(message_hash["created_time"].to_i) if message_hash["created_time"]
|
42
42
|
status.completed_time = Time.at(message_hash["completed_time"].to_i) if message_hash["completed_time"]
|
43
43
|
response[message_id] = status
|
File without changes
|
data/test/test_api.rb
CHANGED
@@ -95,8 +95,8 @@ class APITest < Test::Unit::TestCase
|
|
95
95
|
lambda { @api.send(@text, random_string) }.should raise_error(TextMagic::API::Error)
|
96
96
|
end
|
97
97
|
|
98
|
-
should "raise an error if text is
|
99
|
-
lambda { @api.send(
|
98
|
+
should "raise an error if text is nil" do
|
99
|
+
lambda { @api.send(nil, @phone) }.should raise_error(TextMagic::API::Error)
|
100
100
|
end
|
101
101
|
|
102
102
|
should "raise an error if text is too long" do
|
data/test/test_executor.rb
CHANGED
@@ -34,27 +34,27 @@ class ExecutorTest < Test::Unit::TestCase
|
|
34
34
|
end
|
35
35
|
|
36
36
|
should "send a POST request to proper uri" do
|
37
|
-
response =
|
37
|
+
response = "{}"
|
38
38
|
FakeWeb.register_uri(:post, @uri, :body => response)
|
39
39
|
TextMagic::API::Executor.execute(@command, @username, @password, @options)
|
40
40
|
end
|
41
41
|
|
42
|
-
should "not send parameters with
|
43
|
-
options_with_empty_values = @options.merge(nil => random_string
|
42
|
+
should "not send parameters with nil keys" do
|
43
|
+
options_with_empty_values = @options.merge(nil => random_string)
|
44
44
|
@options.merge!(:username => @username, :password => @password, :cmd => @command)
|
45
45
|
TextMagic::API::Executor.expects(:post).with("/api", :body => @options, :format => :json)
|
46
46
|
TextMagic::API::Executor.execute(@command, @username, @password, options_with_empty_values)
|
47
47
|
end
|
48
48
|
|
49
|
-
should "not send parameters with
|
50
|
-
options_with_empty_values = @options.merge(random_string => nil
|
49
|
+
should "not send parameters with nil values" do
|
50
|
+
options_with_empty_values = @options.merge(random_string => nil)
|
51
51
|
@options.merge!(:username => @username, :password => @password, :cmd => @command)
|
52
52
|
TextMagic::API::Executor.expects(:post).with("/api", :body => @options, :format => :json)
|
53
53
|
TextMagic::API::Executor.execute(@command, @username, @password, options_with_empty_values)
|
54
54
|
end
|
55
55
|
|
56
56
|
should "raise an error if the response contains error_code" do
|
57
|
-
response = "{error_code:#{1 + rand(10)}}"
|
57
|
+
response = "{\"error_code\":#{1 + rand(10)}}"
|
58
58
|
FakeWeb.register_uri(:post, @uri, :body => response)
|
59
59
|
lambda {
|
60
60
|
TextMagic::API::Executor.execute(@command, @username, @password, @options)
|
data/test/test_response.rb
CHANGED
@@ -120,6 +120,10 @@ class ResponseTest < Test::Unit::TestCase
|
|
120
120
|
should "have credits_cost" do
|
121
121
|
@response.credits_cost.should be_close(@credits_cost, 1e-10)
|
122
122
|
end
|
123
|
+
|
124
|
+
should "have status" do
|
125
|
+
@response.status.should == @status
|
126
|
+
end
|
123
127
|
end
|
124
128
|
|
125
129
|
context "Response to message_status command with multiple ids" do
|
@@ -172,6 +176,10 @@ class ResponseTest < Test::Unit::TestCase
|
|
172
176
|
@response.values.first.reply_number.should == @reply_number
|
173
177
|
end
|
174
178
|
|
179
|
+
should "have status for all statuses" do
|
180
|
+
@response.values.first.status.should == @status
|
181
|
+
end
|
182
|
+
|
175
183
|
should "have credits_cost for all statuses" do
|
176
184
|
@response.values.first.credits_cost.should be_close(@credits_cost, 1e-10)
|
177
185
|
end
|
data/textmagic.gemspec
CHANGED
@@ -1,92 +1,28 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path("../lib/textmagic/version", __FILE__)
|
5
3
|
|
6
|
-
Gem::Specification.new do |
|
7
|
-
|
8
|
-
|
4
|
+
Gem::Specification.new do |gem|
|
5
|
+
gem.authors = ["Vladimir Bobes Tuzinsky"]
|
6
|
+
gem.email = ["vladimir@tuzinsky.com"]
|
7
|
+
gem.summary = %q{Ruby interface to the TextMagic's Bulk SMS Gateway}
|
8
|
+
gem.description = %q{
|
9
|
+
textmagic is a Ruby interface to the TextMagic's Bulk SMS Gateway.
|
10
|
+
It can be used to easily integrate SMS features into your application.
|
11
|
+
It supports sending messages, receiving replies and more.
|
12
|
+
You need to have a valid TextMagic account to use this gem. You can get one at http://www.textmagic.com.
|
13
|
+
}
|
14
|
+
gem.homepage = ""
|
9
15
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
It can be used to easily integrate SMS features into your application.
|
17
|
-
It supports sending messages, receiving replies and more.
|
18
|
-
You need to have a valid TextMagic account to use this gem. You can get one at http://www.textmagic.com.
|
19
|
-
}
|
20
|
-
s.email = %q{vladimir.tuzinsky@gmail.com}
|
21
|
-
s.executables = ["tm"]
|
22
|
-
s.extra_rdoc_files = [
|
23
|
-
"LICENSE",
|
24
|
-
"README.rdoc"
|
25
|
-
]
|
26
|
-
s.files = [
|
27
|
-
".document",
|
28
|
-
".gitignore",
|
29
|
-
"History.txt",
|
30
|
-
"LICENSE",
|
31
|
-
"README.rdoc",
|
32
|
-
"Rakefile",
|
33
|
-
"VERSION.yml",
|
34
|
-
"bin/tm",
|
35
|
-
"lib/api.rb",
|
36
|
-
"lib/charset.rb",
|
37
|
-
"lib/error.rb",
|
38
|
-
"lib/executor.rb",
|
39
|
-
"lib/response.rb",
|
40
|
-
"lib/textmagic.rb",
|
41
|
-
"lib/validation.rb",
|
42
|
-
"test/test_api.rb",
|
43
|
-
"test/test_charset.rb",
|
44
|
-
"test/test_error.rb",
|
45
|
-
"test/test_executor.rb",
|
46
|
-
"test/test_helper.rb",
|
47
|
-
"test/test_response.rb",
|
48
|
-
"test/test_validation.rb",
|
49
|
-
"textmagic.gemspec"
|
50
|
-
]
|
51
|
-
s.homepage = %q{http://github.com/bobes/textmagic}
|
52
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
53
|
-
s.require_paths = ["lib"]
|
54
|
-
s.rubyforge_project = %q{textmagic}
|
55
|
-
s.rubygems_version = %q{1.3.7}
|
56
|
-
s.summary = %q{Ruby interface to the TextMagic's Bulk SMS Gateway}
|
57
|
-
s.test_files = [
|
58
|
-
"test/test_api.rb",
|
59
|
-
"test/test_charset.rb",
|
60
|
-
"test/test_error.rb",
|
61
|
-
"test/test_executor.rb",
|
62
|
-
"test/test_helper.rb",
|
63
|
-
"test/test_response.rb",
|
64
|
-
"test/test_validation.rb"
|
65
|
-
]
|
16
|
+
gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
17
|
+
gem.files = `git ls-files`.split("\n")
|
18
|
+
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
gem.name = "textmagic"
|
20
|
+
gem.require_paths = ["lib"]
|
21
|
+
gem.version = Textmagic::VERSION
|
66
22
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
s.add_runtime_dependency(%q<httparty>, [">= 0.5.2"])
|
73
|
-
s.add_development_dependency(%q<mocha>, [">= 0.9.8"])
|
74
|
-
s.add_development_dependency(%q<shoulda>, [">= 2.10.3"])
|
75
|
-
s.add_development_dependency(%q<fakeweb>, [">= 1.2.8"])
|
76
|
-
s.add_development_dependency(%q<mcmire-matchy>, [">= 0.5.2"])
|
77
|
-
else
|
78
|
-
s.add_dependency(%q<httparty>, [">= 0.5.2"])
|
79
|
-
s.add_dependency(%q<mocha>, [">= 0.9.8"])
|
80
|
-
s.add_dependency(%q<shoulda>, [">= 2.10.3"])
|
81
|
-
s.add_dependency(%q<fakeweb>, [">= 1.2.8"])
|
82
|
-
s.add_dependency(%q<mcmire-matchy>, [">= 0.5.2"])
|
83
|
-
end
|
84
|
-
else
|
85
|
-
s.add_dependency(%q<httparty>, [">= 0.5.2"])
|
86
|
-
s.add_dependency(%q<mocha>, [">= 0.9.8"])
|
87
|
-
s.add_dependency(%q<shoulda>, [">= 2.10.3"])
|
88
|
-
s.add_dependency(%q<fakeweb>, [">= 1.2.8"])
|
89
|
-
s.add_dependency(%q<mcmire-matchy>, [">= 0.5.2"])
|
90
|
-
end
|
23
|
+
gem.add_runtime_dependency "httparty", ">= 0.5.2"
|
24
|
+
gem.add_development_dependency "mocha", ">= 0.9.8"
|
25
|
+
gem.add_development_dependency "shoulda", ">= 2.10.3"
|
26
|
+
gem.add_development_dependency "fakeweb", ">= 1.2.8"
|
27
|
+
gem.add_development_dependency "mcmire-matchy", ">= 0.5.2"
|
91
28
|
end
|
92
|
-
|
metadata
CHANGED
@@ -1,128 +1,100 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: textmagic
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 4
|
9
|
-
- 0
|
10
|
-
version: 0.4.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.0
|
5
|
+
prerelease:
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
13
|
-
-
|
7
|
+
authors:
|
8
|
+
- Vladimir Bobes Tuzinsky
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-10-27 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: httparty
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70140940266900 !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 15
|
30
|
-
segments:
|
31
|
-
- 0
|
32
|
-
- 5
|
33
|
-
- 2
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
34
21
|
version: 0.5.2
|
35
22
|
type: :runtime
|
36
|
-
version_requirements: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: mocha
|
39
23
|
prerelease: false
|
40
|
-
|
24
|
+
version_requirements: *70140940266900
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: mocha
|
27
|
+
requirement: &70140940265840 !ruby/object:Gem::Requirement
|
41
28
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
hash: 43
|
46
|
-
segments:
|
47
|
-
- 0
|
48
|
-
- 9
|
49
|
-
- 8
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
50
32
|
version: 0.9.8
|
51
33
|
type: :development
|
52
|
-
version_requirements: *id002
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
name: shoulda
|
55
34
|
prerelease: false
|
56
|
-
|
35
|
+
version_requirements: *70140940265840
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: shoulda
|
38
|
+
requirement: &70140940263280 !ruby/object:Gem::Requirement
|
57
39
|
none: false
|
58
|
-
requirements:
|
59
|
-
- -
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
hash: 33
|
62
|
-
segments:
|
63
|
-
- 2
|
64
|
-
- 10
|
65
|
-
- 3
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
66
43
|
version: 2.10.3
|
67
44
|
type: :development
|
68
|
-
version_requirements: *id003
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: fakeweb
|
71
45
|
prerelease: false
|
72
|
-
|
46
|
+
version_requirements: *70140940263280
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: fakeweb
|
49
|
+
requirement: &70140940261980 !ruby/object:Gem::Requirement
|
73
50
|
none: false
|
74
|
-
requirements:
|
75
|
-
- -
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
hash: 15
|
78
|
-
segments:
|
79
|
-
- 1
|
80
|
-
- 2
|
81
|
-
- 8
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
82
54
|
version: 1.2.8
|
83
55
|
type: :development
|
84
|
-
version_requirements: *id004
|
85
|
-
- !ruby/object:Gem::Dependency
|
86
|
-
name: mcmire-matchy
|
87
56
|
prerelease: false
|
88
|
-
|
57
|
+
version_requirements: *70140940261980
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: mcmire-matchy
|
60
|
+
requirement: &70140940261020 !ruby/object:Gem::Requirement
|
89
61
|
none: false
|
90
|
-
requirements:
|
91
|
-
- -
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
hash: 15
|
94
|
-
segments:
|
95
|
-
- 0
|
96
|
-
- 5
|
97
|
-
- 2
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
98
65
|
version: 0.5.2
|
99
66
|
type: :development
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *70140940261020
|
69
|
+
description: ! "\n textmagic is a Ruby interface to the TextMagic's Bulk SMS Gateway.\n
|
70
|
+
\ It can be used to easily integrate SMS features into your application.\n It
|
71
|
+
supports sending messages, receiving replies and more.\n You need to have a valid
|
72
|
+
TextMagic account to use this gem. You can get one at http://www.textmagic.com.\n
|
73
|
+
\ "
|
74
|
+
email:
|
75
|
+
- vladimir@tuzinsky.com
|
76
|
+
executables:
|
104
77
|
- tm
|
105
78
|
extensions: []
|
106
|
-
|
107
|
-
|
108
|
-
- LICENSE
|
109
|
-
- README.rdoc
|
110
|
-
files:
|
79
|
+
extra_rdoc_files: []
|
80
|
+
files:
|
111
81
|
- .document
|
112
82
|
- .gitignore
|
83
|
+
- Gemfile
|
113
84
|
- History.txt
|
114
85
|
- LICENSE
|
115
86
|
- README.rdoc
|
116
87
|
- Rakefile
|
117
|
-
- VERSION.yml
|
118
88
|
- bin/tm
|
119
|
-
- lib/api.rb
|
120
|
-
- lib/charset.rb
|
121
|
-
- lib/error.rb
|
122
|
-
- lib/executor.rb
|
123
|
-
- lib/response.rb
|
124
89
|
- lib/textmagic.rb
|
125
|
-
- lib/
|
90
|
+
- lib/textmagic/.rb
|
91
|
+
- lib/textmagic/api.rb
|
92
|
+
- lib/textmagic/charset.rb
|
93
|
+
- lib/textmagic/error.rb
|
94
|
+
- lib/textmagic/executor.rb
|
95
|
+
- lib/textmagic/response.rb
|
96
|
+
- lib/textmagic/validation.rb
|
97
|
+
- lib/textmagic/version.rb
|
126
98
|
- test/test_api.rb
|
127
99
|
- test/test_charset.rb
|
128
100
|
- test/test_error.rb
|
@@ -131,41 +103,31 @@ files:
|
|
131
103
|
- test/test_response.rb
|
132
104
|
- test/test_validation.rb
|
133
105
|
- textmagic.gemspec
|
134
|
-
|
135
|
-
homepage: http://github.com/bobes/textmagic
|
106
|
+
homepage: ''
|
136
107
|
licenses: []
|
137
|
-
|
138
108
|
post_install_message:
|
139
|
-
rdoc_options:
|
140
|
-
|
141
|
-
require_paths:
|
109
|
+
rdoc_options: []
|
110
|
+
require_paths:
|
142
111
|
- lib
|
143
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
112
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
144
113
|
none: false
|
145
|
-
requirements:
|
146
|
-
- -
|
147
|
-
- !ruby/object:Gem::Version
|
148
|
-
|
149
|
-
|
150
|
-
- 0
|
151
|
-
version: "0"
|
152
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
153
119
|
none: false
|
154
|
-
requirements:
|
155
|
-
- -
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
|
158
|
-
segments:
|
159
|
-
- 0
|
160
|
-
version: "0"
|
120
|
+
requirements:
|
121
|
+
- - ! '>='
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
161
124
|
requirements: []
|
162
|
-
|
163
|
-
|
164
|
-
rubygems_version: 1.3.7
|
125
|
+
rubyforge_project:
|
126
|
+
rubygems_version: 1.8.10
|
165
127
|
signing_key:
|
166
128
|
specification_version: 3
|
167
129
|
summary: Ruby interface to the TextMagic's Bulk SMS Gateway
|
168
|
-
test_files:
|
130
|
+
test_files:
|
169
131
|
- test/test_api.rb
|
170
132
|
- test/test_charset.rb
|
171
133
|
- test/test_error.rb
|