elk 0.0.6 → 0.0.7
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/lib/elk.rb +2 -13
- data/lib/elk/number.rb +3 -1
- data/lib/elk/sms.rb +3 -1
- data/lib/elk/util.rb +10 -0
- data/lib/elk/version.rb +3 -0
- metadata +15 -13
data/lib/elk.rb
CHANGED
@@ -11,8 +11,6 @@ module Elk
|
|
11
11
|
BASE_DOMAIN = 'api.46elks.com'
|
12
12
|
# API version supported
|
13
13
|
API_VERSION = 'a1'
|
14
|
-
# Elk version
|
15
|
-
VERSION = '0.0.6'
|
16
14
|
|
17
15
|
# When the authentication can't be done
|
18
16
|
class AuthError < RuntimeError; end
|
@@ -88,17 +86,8 @@ module Elk
|
|
88
86
|
end
|
89
87
|
end
|
90
88
|
|
91
|
-
# --
|
92
|
-
# TODO: Not that nice to create methods in Hash
|
93
|
-
# --
|
94
|
-
class Hash #:nodoc: all
|
95
|
-
def require_keys!(required_keys)
|
96
|
-
unless (missing_parameters = required_keys - self.keys).empty?
|
97
|
-
raise Elk::MissingParameter, "Requires #{missing_parameters.collect {|s| ":#{s}"}.join(', ')} parameters"
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
89
|
# Internal
|
90
|
+
require 'elk/util'
|
91
|
+
require 'elk/version'
|
103
92
|
require 'elk/number'
|
104
93
|
require 'elk/sms'
|
data/lib/elk/number.rb
CHANGED
@@ -57,12 +57,14 @@ module Elk
|
|
57
57
|
end
|
58
58
|
|
59
59
|
class << self
|
60
|
+
include Elk::Util
|
61
|
+
|
60
62
|
# Allocates a phone number
|
61
63
|
#
|
62
64
|
# * Required parameters: :country
|
63
65
|
# * Optional parameters: :sms_url, :voice_start_url
|
64
66
|
def allocate(parameters)
|
65
|
-
parameters
|
67
|
+
verify_parameters(parameters, [:country])
|
66
68
|
response = Elk.post('/Numbers', parameters)
|
67
69
|
self.new(Elk.parse_json(response.body))
|
68
70
|
end
|
data/lib/elk/sms.rb
CHANGED
@@ -24,6 +24,8 @@ module Elk
|
|
24
24
|
end
|
25
25
|
|
26
26
|
class << self
|
27
|
+
include Elk::Util
|
28
|
+
|
27
29
|
# Send SMS
|
28
30
|
# Required parameters
|
29
31
|
#
|
@@ -31,7 +33,7 @@ module Elk
|
|
31
33
|
# * :to - Any phone number capable of receiving SMS
|
32
34
|
# * :message - Any UTF-8 text Splitting and joining multi-part SMS messages are automatically handled by the API
|
33
35
|
def send(parameters)
|
34
|
-
parameters
|
36
|
+
verify_parameters(parameters, [:from, :message, :to])
|
35
37
|
|
36
38
|
# Warn if the from string will be capped by the sms gateway
|
37
39
|
if parameters[:from] && parameters[:from].match(/^(\w{11,})$/)
|
data/lib/elk/util.rb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
module Elk
|
2
|
+
module Util
|
3
|
+
def verify_parameters(parameters, required_parameters)
|
4
|
+
missing_parameters = (required_parameters - parameters.keys)
|
5
|
+
unless missing_parameters.empty?
|
6
|
+
raise Elk::MissingParameter, "Requires #{missing_parameters.collect {|s| ":#{s}"}.join(', ')} parameters"
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
data/lib/elk/version.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2012-04-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json_pure
|
16
|
-
requirement: &
|
16
|
+
requirement: &70172958673320 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 1.5.2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70172958673320
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rest-client
|
27
|
-
requirement: &
|
27
|
+
requirement: &70172958672380 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.6.3
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70172958672380
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &70172958748000 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 0.9.2
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70172958748000
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &70172958747540 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 2.6.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70172958747540
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: webmock
|
60
|
-
requirement: &
|
60
|
+
requirement: &70172958747080 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: 1.6.4
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70172958747080
|
69
69
|
description: Elk can be used to allocate a phone numbers, manage the numbers and send
|
70
70
|
SMS through these numbers.
|
71
71
|
email: johan@duh.se
|
@@ -76,6 +76,8 @@ extra_rdoc_files:
|
|
76
76
|
files:
|
77
77
|
- lib/elk/number.rb
|
78
78
|
- lib/elk/sms.rb
|
79
|
+
- lib/elk/util.rb
|
80
|
+
- lib/elk/version.rb
|
79
81
|
- lib/elk.rb
|
80
82
|
- spec/elk_spec.rb
|
81
83
|
- spec/fixtures/allocates_a_number.txt
|
@@ -116,7 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
116
118
|
requirements:
|
117
119
|
- API account at 46elks.com
|
118
120
|
rubyforge_project:
|
119
|
-
rubygems_version: 1.8.
|
121
|
+
rubygems_version: 1.8.11
|
120
122
|
signing_key:
|
121
123
|
specification_version: 3
|
122
124
|
summary: Client library for 46elks SMS/MMS/Voice service.
|