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 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.