little_sms 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/Gemfile +4 -4
- data/Gemfile.lock +2 -2
- data/README.md +15 -5
- data/VERSION +1 -1
- data/lib/little_sms/component.rb +7 -27
- data/lib/little_sms/enumerable.rb +12 -0
- data/lib/little_sms/little_sms.rb +1 -0
- data/lib/little_sms/responce.rb +38 -0
- data/lib/little_sms.rb +0 -1
- data/little_sms.gemspec +13 -22
- data/test/auth.rb +10 -0
- data/test/test_component.rb +13 -6
- data/test/test_little_sms.rb +9 -3
- data/test/test_responce.rb +55 -0
- metadata +64 -102
- data/lib/little_sms/options.rb +0 -32
- data/lib/little_sms/ordering/contact.yaml +0 -20
- data/lib/little_sms/ordering/message.yaml +0 -32
- data/lib/little_sms/ordering/tag.yaml +0 -9
- data/lib/little_sms/ordering/task.yaml +0 -6
- data/lib/little_sms/ordering/user.yaml +0 -6
- data/test/test_options.rb +0 -37
data/Gemfile
CHANGED
@@ -7,9 +7,9 @@ gem "json_pure"
|
|
7
7
|
# Add dependencies to develop your gem here.
|
8
8
|
# Include everything needed to run rake, tests, features, etc.
|
9
9
|
group :development do
|
10
|
-
gem "shoulda"
|
11
|
-
gem "bundler"
|
12
|
-
gem "jeweler"
|
13
|
-
gem "rcov"
|
10
|
+
gem "shoulda"
|
11
|
+
gem "bundler"
|
12
|
+
gem "jeweler"
|
13
|
+
gem "rcov"
|
14
14
|
end
|
15
15
|
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -7,16 +7,26 @@ This gem provides access to LittleSMS.ru API from ruby.
|
|
7
7
|
# Usage
|
8
8
|
require "little_sms"
|
9
9
|
api = LittleSMS.new(:apiuser, :apikey)
|
10
|
-
api.message.send(:recipients => "
|
10
|
+
api.message.send(:recipients => "+79211234567", :message => "Test", :test => 1)
|
11
11
|
|
12
12
|
Also you can pass a block to LittleSMS object:
|
13
13
|
|
14
14
|
LittleSMS.new(:apiuser, :apikey) do
|
15
|
-
msg = message.send(:recipients => "
|
16
|
-
if msg
|
17
|
-
messages_id = msg
|
15
|
+
msg = message.send(:recipients => "+79211234567", :message => "Test")
|
16
|
+
if msg.success?
|
17
|
+
messages_id = msg.messages_id.join
|
18
18
|
status = message.status(:messages_id => messages_id)
|
19
|
-
puts "Message #{status
|
19
|
+
puts "Message #{status.messages[messages_id]}" unless status.error? # => Message delivered
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
In case of error:
|
24
|
+
|
25
|
+
LittleSMS.new(:apiuser, :apikey) do
|
26
|
+
msg = message.send(:recipients => "112", :message => "Test")
|
27
|
+
if msg.error?
|
28
|
+
puts msg.error # => 4
|
29
|
+
puts msg.message # => "incorrect or empty recipients list"
|
20
30
|
end
|
21
31
|
end
|
22
32
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/lib/little_sms/component.rb
CHANGED
@@ -3,6 +3,7 @@ require "net/http"
|
|
3
3
|
require "net/https"
|
4
4
|
require 'digest/md5'
|
5
5
|
require 'digest/sha1'
|
6
|
+
require_relative "responce"
|
6
7
|
|
7
8
|
class LittleSMS
|
8
9
|
class Component
|
@@ -12,7 +13,7 @@ class LittleSMS
|
|
12
13
|
|
13
14
|
def initialize(component, api_user, api_key)
|
14
15
|
@api_uri = URI.parse("https://littlesms.ru:443/api/")
|
15
|
-
@
|
16
|
+
@api_user, @api_key = api_user, api_key
|
16
17
|
@component = component # Component name. E.g. message or user.
|
17
18
|
end
|
18
19
|
|
@@ -23,13 +24,10 @@ class LittleSMS
|
|
23
24
|
private
|
24
25
|
def request_api_method(method, options = {})
|
25
26
|
options ||= {}
|
26
|
-
options.
|
27
|
-
|
28
|
-
# Replace original sort method
|
29
|
-
options.extend(self.class::Options)
|
30
|
-
options.method_path = {:method => method, :component => @component }
|
31
|
-
|
27
|
+
options = Hash[options.sort]
|
32
28
|
options[:sign] = sign_request(options)
|
29
|
+
options[:user] = @api_user
|
30
|
+
|
33
31
|
uri = @api_uri.merge("#{@component}/#{method}")
|
34
32
|
req = Net::HTTP::Post.new(uri.path)
|
35
33
|
req.set_form_data(options.delete_if {|k, v| k == :key})
|
@@ -44,32 +42,14 @@ class LittleSMS
|
|
44
42
|
|
45
43
|
case res = res.start {|http| http.request(req) }
|
46
44
|
when Net::HTTPSuccess, Net::HTTPRedirection
|
47
|
-
return
|
45
|
+
return Responce.new(JSON.parse(res.body))
|
48
46
|
else
|
49
47
|
res.error!
|
50
48
|
end
|
51
49
|
end
|
52
50
|
|
53
51
|
def sign_request(options)
|
54
|
-
Digest::MD5.hexdigest(
|
55
|
-
Digest::SHA1.hexdigest(options.sort.map {|e| e[1]}.join)
|
56
|
-
)
|
57
|
-
end
|
58
|
-
|
59
|
-
# Convert all strings keys to symbols
|
60
|
-
def format_output(hash)
|
61
|
-
format = lambda do |v|
|
62
|
-
if v.respond_to?(:map)
|
63
|
-
format_output(v)
|
64
|
-
else
|
65
|
-
v
|
66
|
-
end
|
67
|
-
end
|
68
|
-
if hash.kind_of? Hash
|
69
|
-
Hash[ hash.map { |k, v| [k.to_sym, format.call(v)] } ]
|
70
|
-
else
|
71
|
-
hash.map { |v| format.call(v) }
|
72
|
-
end
|
52
|
+
Digest::MD5.hexdigest(Digest::SHA1.hexdigest("#{@api_user}#{options.values.join}#{@api_key}"))
|
73
53
|
end
|
74
54
|
end
|
75
55
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# Convert all keys to symbols
|
2
|
+
module Enumerable
|
3
|
+
def recursive_symbolize_keys
|
4
|
+
symbolize = lambda { |v| v.respond_to?(:map) ? v.recursive_symbolize_keys : v }
|
5
|
+
if self.kind_of? Hash
|
6
|
+
Hash[ self.map { |k, v| [k.to_sym, symbolize.call(v)] } ]
|
7
|
+
else
|
8
|
+
self.map { |v| symbolize.call(v) }
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require_relative "enumerable"
|
2
|
+
|
3
|
+
class LittleSMS
|
4
|
+
class Responce
|
5
|
+
def initialize(json)
|
6
|
+
@json = json.recursive_symbolize_keys
|
7
|
+
end
|
8
|
+
|
9
|
+
def success?
|
10
|
+
@json[:status] == "success"
|
11
|
+
end
|
12
|
+
|
13
|
+
def error?
|
14
|
+
@json[:status] == "error"
|
15
|
+
end
|
16
|
+
|
17
|
+
def error
|
18
|
+
if error? then @json[:error] else nil end
|
19
|
+
end
|
20
|
+
|
21
|
+
def message
|
22
|
+
if error? then @json[:message] else nil end
|
23
|
+
end
|
24
|
+
|
25
|
+
def method_missing(name, *args)
|
26
|
+
unless args.empty?
|
27
|
+
super
|
28
|
+
else
|
29
|
+
@json[name] || super
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def respond_to?(method)
|
34
|
+
@json.has_key?(method) || super
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
data/lib/little_sms.rb
CHANGED
data/little_sms.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{little_sms}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Artyom Bolshakov"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-07-06}
|
13
13
|
s.description = %q{LittleSMS.ru API binding}
|
14
14
|
s.email = %q{tweekane@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -25,51 +25,42 @@ Gem::Specification.new do |s|
|
|
25
25
|
"VERSION",
|
26
26
|
"lib/little_sms.rb",
|
27
27
|
"lib/little_sms/component.rb",
|
28
|
+
"lib/little_sms/enumerable.rb",
|
28
29
|
"lib/little_sms/little_sms.rb",
|
29
|
-
"lib/little_sms/
|
30
|
-
"lib/little_sms/ordering/contact.yaml",
|
31
|
-
"lib/little_sms/ordering/message.yaml",
|
32
|
-
"lib/little_sms/ordering/tag.yaml",
|
33
|
-
"lib/little_sms/ordering/task.yaml",
|
34
|
-
"lib/little_sms/ordering/user.yaml",
|
30
|
+
"lib/little_sms/responce.rb",
|
35
31
|
"little_sms.gemspec",
|
32
|
+
"test/auth.rb",
|
36
33
|
"test/test_component.rb",
|
37
34
|
"test/test_little_sms.rb",
|
38
|
-
"test/
|
35
|
+
"test/test_responce.rb"
|
39
36
|
]
|
40
37
|
s.homepage = %q{http://github.com/TweeKane/little_sms}
|
41
38
|
s.licenses = ["MIT"]
|
42
39
|
s.require_paths = ["lib"]
|
43
|
-
s.rubygems_version = %q{1.
|
40
|
+
s.rubygems_version = %q{1.6.2}
|
44
41
|
s.summary = %q{LittleSMS.ru API binding}
|
45
|
-
s.test_files = [
|
46
|
-
"test/test_component.rb",
|
47
|
-
"test/test_little_sms.rb",
|
48
|
-
"test/test_options.rb"
|
49
|
-
]
|
50
42
|
|
51
43
|
if s.respond_to? :specification_version then
|
52
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
53
44
|
s.specification_version = 3
|
54
45
|
|
55
46
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
56
47
|
s.add_runtime_dependency(%q<json_pure>, [">= 0"])
|
57
48
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
58
|
-
s.add_development_dependency(%q<bundler>, ["
|
59
|
-
s.add_development_dependency(%q<jeweler>, ["
|
49
|
+
s.add_development_dependency(%q<bundler>, [">= 0"])
|
50
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
60
51
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
61
52
|
else
|
62
53
|
s.add_dependency(%q<json_pure>, [">= 0"])
|
63
54
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
64
|
-
s.add_dependency(%q<bundler>, ["
|
65
|
-
s.add_dependency(%q<jeweler>, ["
|
55
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
56
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
66
57
|
s.add_dependency(%q<rcov>, [">= 0"])
|
67
58
|
end
|
68
59
|
else
|
69
60
|
s.add_dependency(%q<json_pure>, [">= 0"])
|
70
61
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
71
|
-
s.add_dependency(%q<bundler>, ["
|
72
|
-
s.add_dependency(%q<jeweler>, ["
|
62
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
63
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
73
64
|
s.add_dependency(%q<rcov>, [">= 0"])
|
74
65
|
end
|
75
66
|
end
|
data/test/auth.rb
ADDED
data/test/test_component.rb
CHANGED
@@ -1,25 +1,32 @@
|
|
1
1
|
require 'test/unit'
|
2
2
|
require 'shoulda'
|
3
|
-
|
3
|
+
require_relative '../lib/little_sms'
|
4
|
+
require_relative "auth"
|
4
5
|
|
5
6
|
class ComponentTest < Test::Unit::TestCase
|
7
|
+
include Auth
|
6
8
|
context "A LittleSMS::Component" do
|
7
9
|
def setup
|
8
|
-
@
|
9
|
-
@options
|
10
|
-
@options.method_path = {:method => :send, :component => :message }
|
10
|
+
@api_user, @api_key = self.auth
|
11
|
+
@options = {:message=>"test", :recipients=>"+79213752462", :user=>@api_user, :key=>@api_key}
|
11
12
|
@component = LittleSMS::Component.new(:message, "Christ", "Jesus")
|
12
13
|
end
|
13
14
|
|
14
15
|
should "should sign request" do
|
15
16
|
sign = @component.method(:sign_request).call(@options)
|
16
|
-
assert_equal "
|
17
|
+
assert_equal "b616ddc6d0e15aaa92ce79ca78806337", sign
|
17
18
|
end
|
18
19
|
|
19
20
|
should "format output" do
|
20
21
|
out = {"recipients"=>["911", "112"], "messages_id"=>[], "count"=>1, "parts"=>1, "price"=>0.5, "balance"=>9, "test"=>1, "status"=>"success"}
|
21
22
|
formatted = {:recipients=>["911", "112"], :messages_id=>[], :count=>1, :parts=>1, :price=>0.5, :balance=>9, :test=>1, :status=>"success"}
|
22
|
-
assert_equal formatted,
|
23
|
+
assert_equal formatted, out.recursive_symbolize_keys
|
24
|
+
end
|
25
|
+
|
26
|
+
should "return LittleSMS::Responce object" do
|
27
|
+
api = LittleSMS.new(@api_user, @api_key)
|
28
|
+
resp = api.message.send(:recipients => "+79213752462", :message => "Test", :test => "1")
|
29
|
+
assert_equal(resp.class, LittleSMS::Responce)
|
23
30
|
end
|
24
31
|
end
|
25
32
|
end
|
data/test/test_little_sms.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'test/unit'
|
2
2
|
require 'shoulda'
|
3
|
-
|
3
|
+
require_relative '../lib/little_sms'
|
4
4
|
|
5
5
|
class LittleSMSTest < Test::Unit::TestCase
|
6
|
+
include Auth
|
6
7
|
context "A LittleSMS" do
|
7
8
|
def setup
|
8
|
-
@api_user =
|
9
|
-
@api_key = :testapikeystring
|
9
|
+
@api_user, @api_key = self.auth
|
10
10
|
@sms = LittleSMS.new @api_user, @api_key
|
11
11
|
end
|
12
12
|
|
@@ -22,6 +22,12 @@ class LittleSMSTest < Test::Unit::TestCase
|
|
22
22
|
end
|
23
23
|
assert_equal(LittleSMS::Component, mes.class)
|
24
24
|
end
|
25
|
+
|
26
|
+
should "send message" do
|
27
|
+
api = LittleSMS.new(@api_user, @api_key)
|
28
|
+
resp = api.message.send(:recipients => "+79213752462", :message => "Test", :test => "1")
|
29
|
+
assert_equal(resp.success?, true)
|
30
|
+
end
|
25
31
|
end
|
26
32
|
end
|
27
33
|
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require "test/unit"
|
2
|
+
require "shoulda"
|
3
|
+
require_relative "../lib/little_sms/responce"
|
4
|
+
|
5
|
+
class ResponceTest < Test::Unit::TestCase
|
6
|
+
context "A Responce" do
|
7
|
+
def setup
|
8
|
+
@simple_json = {:foo => "bar"}
|
9
|
+
@resp = LittleSMS::Responce.new(@simple_json)
|
10
|
+
end
|
11
|
+
|
12
|
+
should "create new responce object" do
|
13
|
+
assert_equal(@resp.instance_eval { @json }, @simple_json)
|
14
|
+
end
|
15
|
+
|
16
|
+
should "success?" do
|
17
|
+
resp = LittleSMS::Responce.new({:status => "success"})
|
18
|
+
assert_equal(resp.success?, true)
|
19
|
+
assert_equal(resp.error?, false)
|
20
|
+
end
|
21
|
+
|
22
|
+
should "error?" do
|
23
|
+
resp = LittleSMS::Responce.new({:status => "error"})
|
24
|
+
assert_equal(resp.error?, true)
|
25
|
+
assert_equal(resp.success?, false)
|
26
|
+
end
|
27
|
+
|
28
|
+
should "return error code and message" do
|
29
|
+
responce_json = {:status => "error", :error => 2, :message => "invalid signature"}
|
30
|
+
resp = LittleSMS::Responce.new(responce_json)
|
31
|
+
assert_equal(resp.error, responce_json[:error])
|
32
|
+
assert_equal(resp.message, responce_json[:message])
|
33
|
+
end
|
34
|
+
|
35
|
+
should "map responce fields to methods" do
|
36
|
+
responce_json = {:recipients=>["79213752462"], :price=>0.5, :balance=>0, :test=>1}
|
37
|
+
resp = LittleSMS::Responce.new(responce_json)
|
38
|
+
assert_equal(resp.price, 0.5)
|
39
|
+
assert_equal(resp.balance, 0)
|
40
|
+
end
|
41
|
+
|
42
|
+
should "respond to mapped method" do
|
43
|
+
assert_respond_to(@resp, :foo)
|
44
|
+
end
|
45
|
+
|
46
|
+
should "raise error if unknown methods invoked" do
|
47
|
+
resp = LittleSMS::Responce.new({:foo => "foo"})
|
48
|
+
assert_raise NoMethodError do
|
49
|
+
resp.bar
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
metadata
CHANGED
@@ -1,107 +1,80 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: little_sms
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 0
|
10
|
-
version: 0.1.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
5
|
+
prerelease:
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Artyom Bolshakov
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
date: 2011-03-06 00:00:00 +03:00
|
12
|
+
date: 2011-07-06 00:00:00.000000000 +04:00
|
19
13
|
default_executable:
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
22
16
|
name: json_pure
|
23
|
-
requirement: &
|
17
|
+
requirement: &21494940 !ruby/object:Gem::Requirement
|
24
18
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
version: "0"
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
32
23
|
type: :runtime
|
33
24
|
prerelease: false
|
34
|
-
version_requirements: *
|
35
|
-
- !ruby/object:Gem::Dependency
|
25
|
+
version_requirements: *21494940
|
26
|
+
- !ruby/object:Gem::Dependency
|
36
27
|
name: shoulda
|
37
|
-
requirement: &
|
28
|
+
requirement: &21485800 !ruby/object:Gem::Requirement
|
38
29
|
none: false
|
39
|
-
requirements:
|
40
|
-
- -
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
|
43
|
-
segments:
|
44
|
-
- 0
|
45
|
-
version: "0"
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
46
34
|
type: :development
|
47
35
|
prerelease: false
|
48
|
-
version_requirements: *
|
49
|
-
- !ruby/object:Gem::Dependency
|
36
|
+
version_requirements: *21485800
|
37
|
+
- !ruby/object:Gem::Dependency
|
50
38
|
name: bundler
|
51
|
-
requirement: &
|
39
|
+
requirement: &21484880 !ruby/object:Gem::Requirement
|
52
40
|
none: false
|
53
|
-
requirements:
|
54
|
-
- -
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
|
57
|
-
segments:
|
58
|
-
- 1
|
59
|
-
- 0
|
60
|
-
- 0
|
61
|
-
version: 1.0.0
|
41
|
+
requirements:
|
42
|
+
- - ! '>='
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: '0'
|
62
45
|
type: :development
|
63
46
|
prerelease: false
|
64
|
-
version_requirements: *
|
65
|
-
- !ruby/object:Gem::Dependency
|
47
|
+
version_requirements: *21484880
|
48
|
+
- !ruby/object:Gem::Dependency
|
66
49
|
name: jeweler
|
67
|
-
requirement: &
|
50
|
+
requirement: &21483820 !ruby/object:Gem::Requirement
|
68
51
|
none: false
|
69
|
-
requirements:
|
70
|
-
- -
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
|
73
|
-
segments:
|
74
|
-
- 1
|
75
|
-
- 5
|
76
|
-
- 2
|
77
|
-
version: 1.5.2
|
52
|
+
requirements:
|
53
|
+
- - ! '>='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
78
56
|
type: :development
|
79
57
|
prerelease: false
|
80
|
-
version_requirements: *
|
81
|
-
- !ruby/object:Gem::Dependency
|
58
|
+
version_requirements: *21483820
|
59
|
+
- !ruby/object:Gem::Dependency
|
82
60
|
name: rcov
|
83
|
-
requirement: &
|
61
|
+
requirement: &21482980 !ruby/object:Gem::Requirement
|
84
62
|
none: false
|
85
|
-
requirements:
|
86
|
-
- -
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
|
89
|
-
segments:
|
90
|
-
- 0
|
91
|
-
version: "0"
|
63
|
+
requirements:
|
64
|
+
- - ! '>='
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
92
67
|
type: :development
|
93
68
|
prerelease: false
|
94
|
-
version_requirements: *
|
69
|
+
version_requirements: *21482980
|
95
70
|
description: LittleSMS.ru API binding
|
96
71
|
email: tweekane@gmail.com
|
97
72
|
executables: []
|
98
|
-
|
99
73
|
extensions: []
|
100
|
-
|
101
|
-
extra_rdoc_files:
|
74
|
+
extra_rdoc_files:
|
102
75
|
- LICENSE.txt
|
103
76
|
- README.md
|
104
|
-
files:
|
77
|
+
files:
|
105
78
|
- Gemfile
|
106
79
|
- Gemfile.lock
|
107
80
|
- LICENSE.txt
|
@@ -110,52 +83,41 @@ files:
|
|
110
83
|
- VERSION
|
111
84
|
- lib/little_sms.rb
|
112
85
|
- lib/little_sms/component.rb
|
86
|
+
- lib/little_sms/enumerable.rb
|
113
87
|
- lib/little_sms/little_sms.rb
|
114
|
-
- lib/little_sms/
|
115
|
-
- lib/little_sms/ordering/contact.yaml
|
116
|
-
- lib/little_sms/ordering/message.yaml
|
117
|
-
- lib/little_sms/ordering/tag.yaml
|
118
|
-
- lib/little_sms/ordering/task.yaml
|
119
|
-
- lib/little_sms/ordering/user.yaml
|
88
|
+
- lib/little_sms/responce.rb
|
120
89
|
- little_sms.gemspec
|
90
|
+
- test/auth.rb
|
121
91
|
- test/test_component.rb
|
122
92
|
- test/test_little_sms.rb
|
123
|
-
- test/
|
93
|
+
- test/test_responce.rb
|
124
94
|
has_rdoc: true
|
125
95
|
homepage: http://github.com/TweeKane/little_sms
|
126
|
-
licenses:
|
96
|
+
licenses:
|
127
97
|
- MIT
|
128
98
|
post_install_message:
|
129
99
|
rdoc_options: []
|
130
|
-
|
131
|
-
require_paths:
|
100
|
+
require_paths:
|
132
101
|
- lib
|
133
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
102
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
134
103
|
none: false
|
135
|
-
requirements:
|
136
|
-
- -
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
|
139
|
-
segments:
|
104
|
+
requirements:
|
105
|
+
- - ! '>='
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '0'
|
108
|
+
segments:
|
140
109
|
- 0
|
141
|
-
|
142
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
110
|
+
hash: 423631933341830267
|
111
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
143
112
|
none: false
|
144
|
-
requirements:
|
145
|
-
- -
|
146
|
-
- !ruby/object:Gem::Version
|
147
|
-
|
148
|
-
segments:
|
149
|
-
- 0
|
150
|
-
version: "0"
|
113
|
+
requirements:
|
114
|
+
- - ! '>='
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
151
117
|
requirements: []
|
152
|
-
|
153
118
|
rubyforge_project:
|
154
|
-
rubygems_version: 1.
|
119
|
+
rubygems_version: 1.6.2
|
155
120
|
signing_key:
|
156
121
|
specification_version: 3
|
157
122
|
summary: LittleSMS.ru API binding
|
158
|
-
test_files:
|
159
|
-
- test/test_component.rb
|
160
|
-
- test/test_little_sms.rb
|
161
|
-
- test/test_options.rb
|
123
|
+
test_files: []
|
data/lib/little_sms/options.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
require "yaml"
|
2
|
-
|
3
|
-
class LittleSMS
|
4
|
-
class Component
|
5
|
-
# This module should be mixed with request options hash.
|
6
|
-
# to overwite Hash#sort method
|
7
|
-
module Options
|
8
|
-
class NoMethodError < StandardError; end
|
9
|
-
class NoComponentError < StandardError; end
|
10
|
-
attr_accessor :method_path
|
11
|
-
def sort
|
12
|
-
order = load_order(@method_path[:component], @method_path[:method])
|
13
|
-
self.to_a.sort do |a,b|
|
14
|
-
order.find_index(a[0]) <=> order.find_index(b[0])
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
# load sorting order from yaml file
|
20
|
-
def load_order(component, method)
|
21
|
-
begin
|
22
|
-
order = YAML.load_file("#{File.dirname(__FILE__)}/ordering/#{component}.yaml")[method]
|
23
|
-
raise NoMethodError, "There is no such method in #{component} file: #{method}" if order.nil?
|
24
|
-
order
|
25
|
-
rescue Errno::ENOENT
|
26
|
-
raise NoComponentError, "There is no such file: #{component}"
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
@@ -1,32 +0,0 @@
|
|
1
|
-
---
|
2
|
-
:send:
|
3
|
-
- :user
|
4
|
-
- :recipients
|
5
|
-
- :message
|
6
|
-
- :sender
|
7
|
-
- :test
|
8
|
-
- :sign
|
9
|
-
- :key
|
10
|
-
:status:
|
11
|
-
- :user
|
12
|
-
- :sign
|
13
|
-
- :messages_id
|
14
|
-
- :key
|
15
|
-
:price:
|
16
|
-
- :user
|
17
|
-
- :sign
|
18
|
-
- :recipients
|
19
|
-
- :message
|
20
|
-
- :key
|
21
|
-
:history:
|
22
|
-
- :user
|
23
|
-
- :sign
|
24
|
-
- :history_id
|
25
|
-
- :recipient
|
26
|
-
- :sender
|
27
|
-
- :status
|
28
|
-
- :date_from
|
29
|
-
- :date_to
|
30
|
-
- :id
|
31
|
-
- :key
|
32
|
-
|
data/test/test_options.rb
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
require 'shoulda'
|
3
|
-
require 'lib/little_sms'
|
4
|
-
|
5
|
-
class OptionsTest < Test::Unit::TestCase
|
6
|
-
context "A Options" do
|
7
|
-
def setup
|
8
|
-
@order = [:user, :recipients, :message, :sender, :test, :sign, :key]
|
9
|
-
@options = {:message=>"sos", :recipients=>"112"}
|
10
|
-
@options.extend(LittleSMS::Component::Options)
|
11
|
-
@options.method_path = {:method => :send, :component => :message }
|
12
|
-
end
|
13
|
-
|
14
|
-
should "load order from file" do
|
15
|
-
assert_equal(@order, @options.instance_eval("load_order(:message, :send)"))
|
16
|
-
end
|
17
|
-
|
18
|
-
should "sort with loaded order" do
|
19
|
-
assert_equal @options.sort, [[:recipients, "112"], [:message, "sos"]]
|
20
|
-
end
|
21
|
-
|
22
|
-
should "fail if unknown method called" do
|
23
|
-
@options.method_path = {:method => :unknown, :component => :message }
|
24
|
-
assert_raise LittleSMS::Component::Options::NoMethodError do
|
25
|
-
@options.sort
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
should "fail if unknown component accessed" do
|
30
|
-
@options.method_path = {:method => :unknown, :component => :unknown }
|
31
|
-
assert_raise LittleSMS::Component::Options::NoComponentError do
|
32
|
-
@options.sort
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|