elk 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
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'
@@ -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.require_keys!([:country])
67
+ verify_parameters(parameters, [:country])
66
68
  response = Elk.post('/Numbers', parameters)
67
69
  self.new(Elk.parse_json(response.body))
68
70
  end
@@ -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.require_keys!([:from, :message, :to])
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,})$/)
@@ -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
@@ -0,0 +1,3 @@
1
+ module Elk
2
+ VERSION = '0.0.7'
3
+ end
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.6
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: 2011-11-16 00:00:00.000000000Z
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: &70110787538520 !ruby/object:Gem::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: *70110787538520
24
+ version_requirements: *70172958673320
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rest-client
27
- requirement: &70110787538020 !ruby/object:Gem::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: *70110787538020
35
+ version_requirements: *70172958672380
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70110787537520 !ruby/object:Gem::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: *70110787537520
46
+ version_requirements: *70172958748000
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &70110787536960 !ruby/object:Gem::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: *70110787536960
57
+ version_requirements: *70172958747540
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: webmock
60
- requirement: &70110787536420 !ruby/object:Gem::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: *70110787536420
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.10
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.