emailvision 2.1.20 → 2.1.21

Sign up to get free protection for your applications and to get access to all the features.
data/lib/emailvision.rb CHANGED
@@ -13,6 +13,7 @@ module Emailvision
13
13
  autoload :Relation, 'emailvision/relation'
14
14
  autoload :Tools, 'emailvision/tools'
15
15
  autoload :Notification, 'emailvision/notification'
16
+ autoload :Version, 'emailvision/version'
16
17
 
17
18
  if defined?(Rails)
18
19
  require 'emailvision/railtie'
@@ -1,4 +1,7 @@
1
1
  module Emailvision
2
+
3
+ # This is where the communication with the API is made.
4
+ #
2
5
  class Api
3
6
  include HTTParty
4
7
  default_timeout 30
@@ -15,6 +18,11 @@ module Emailvision
15
18
  end
16
19
  attr_accessor *ATTRIBUTES
17
20
 
21
+ # Initialize
22
+ #
23
+ # @param [Hash] Instance attributes to assign
24
+ # @yield Freshly-created instance (optionnal)
25
+ #
18
26
  def initialize(params = {})
19
27
  yield(self) if block_given?
20
28
  assign_attributes(params)
@@ -23,9 +31,9 @@ module Emailvision
23
31
  # ----------------- BEGIN Pre-configured methods -----------------
24
32
 
25
33
  # Login to Emailvision API
26
- # Return :
27
- # - True if the connection has been established
28
- # - False if the connection cannot be established or has already been established
34
+ #
35
+ # @return [Boolean] true if the connection has been established.
36
+ #
29
37
  def open_connection
30
38
  return false if connected?
31
39
  self.token = get.connect.open.call :login => @login, :password => @password, :key => @key
@@ -33,9 +41,9 @@ module Emailvision
33
41
  end
34
42
 
35
43
  # Logout from Emailvision API
36
- # Return :
37
- # - True if the connection has been destroyed
38
- # - False if the connection cannot be destroyed or has already been destroyed
44
+ #
45
+ # @return [Boolean] true if the connection has been destroyed
46
+ #
39
47
  def close_connection
40
48
  if connected?
41
49
  get.connect.close.call
@@ -49,19 +57,27 @@ module Emailvision
49
57
  end
50
58
 
51
59
  # Check whether the connection has been established or not
60
+ #
61
+ # @return [Boolean] true if the connection has been establshed
62
+ #
52
63
  def connected?
53
64
  !token.nil?
54
65
  end
55
66
 
67
+ # When a token is no longer valid, this method can be called.
68
+ # The #connected? method will return false
69
+ #
56
70
  def invalidate_token!
57
71
  self.token = nil
58
72
  end
59
73
  # ----------------- END Pre-configured methods -----------------
60
74
 
61
- # Perform the API call
62
- # http_verb = (get, post, ...)
63
- # method = Method to call
64
- # parameters = Parameters to send (optionnal)
75
+ # Perform an API call
76
+ #
77
+ # @param [:get, :post] HTTP verb to use for the API call
78
+ # @param [String] method to call on the API
79
+ # @param [Hash] request parameters (optionnal)
80
+ #
65
81
  def call(http_verb, method, parameters = {})
66
82
  params ||= {}
67
83
 
@@ -104,20 +120,26 @@ module Emailvision
104
120
  end
105
121
  end
106
122
 
107
- # Set token
108
- # Override
123
+ # Set a new token
124
+ #
125
+ # @param [String] new token
126
+ #
109
127
  def token=(value)
110
128
  @token = value
111
129
  end
112
130
 
113
- # Set endpoint
114
- # Override
131
+ # Change API endpoint.
132
+ # This will close the connection to the current endpoint
133
+ #
134
+ # @param [String] new endpoint (apimember, apiccmd, apitransactional, ...)
135
+ #
115
136
  def endpoint=(value)
116
137
  close_connection
117
138
  @endpoint = value
118
139
  end
119
140
 
120
141
  # Base uri
142
+ #
121
143
  def base_uri
122
144
  "http://#{server_name}/#{endpoint}/services/rest/"
123
145
  end
@@ -1,8 +1,16 @@
1
1
  module Emailvision
2
+
3
+ # API default exception
4
+ #
2
5
  class Exception < ::Exception
3
6
 
4
7
  attr_accessor :http_status, :error
5
8
 
9
+ # Initialize
10
+ #
11
+ # @param [Integer] HTTP status code
12
+ # @param [String] Error message
13
+ #
6
14
  def initializer(http_status, error)
7
15
  self.http_status = http_status
8
16
  self.error = error
@@ -1,4 +1,7 @@
1
1
  module Emailvision
2
+
3
+ # API logger class
4
+ #
2
5
  class Logger < ::Logger
3
6
 
4
7
  attr_accessor :debug
@@ -9,11 +12,15 @@ module Emailvision
9
12
  end
10
13
 
11
14
  # Log a message sent to emailvision
15
+ #
16
+ # @param [String] message
12
17
  def send(message)
13
18
  info("[Emailvision] Send -> #{message}")
14
19
  end
15
20
 
16
21
  # Log a message received from emailvision
22
+ #
23
+ # @param [String] message
17
24
  def receive(message)
18
25
  info("[Emailvision] Receive -> #{message}")
19
26
  end
@@ -1,4 +1,9 @@
1
1
  module Emailvision
2
+
3
+ # Relation is used for API-chained call
4
+ #
5
+ # e.g. emv.get.campaign.last(:limit => 5).call
6
+ #
2
7
  class Relation
3
8
 
4
9
  def initialize(instance, http_verb)
@@ -8,6 +13,11 @@ module Emailvision
8
13
  @options = {}
9
14
  end
10
15
 
16
+ # Trigger the API call
17
+ #
18
+ # @param [Object] parameters
19
+ # @return [Object] data returned from Emailvision
20
+ #
11
21
  def call(*args)
12
22
  @options.merge! extract_args(args)
13
23
  @instance.call @http_verb, @uri.join('/'), @options
@@ -1,6 +1,15 @@
1
1
  module Emailvision
2
+
3
+ # Toolbox for the API
4
+ # This class is mainly used to convert data
5
+ #
2
6
  class Tools
3
7
 
8
+ # Sanitize values from a Hash
9
+ #
10
+ # @param [Hash] hash to sanitize
11
+ # @return [Hash] sanitized hash
12
+ #
4
13
  def self.sanitize_parameters(parameters)
5
14
  r_each(parameters) do |value|
6
15
  if value.kind_of?(DateTime) or value.kind_of?(Time)
@@ -21,6 +30,11 @@ module Emailvision
21
30
  date.strftime('%d/%m/%Y')
22
31
  end
23
32
 
33
+ # Convert hash keys to camel case
34
+ #
35
+ # @param [Object] structure to camelize
36
+ # @return [Object] structure with keys camelized (if any)
37
+ #
24
38
  def self.r_camelize(obj)
25
39
  if obj.is_a?(Hash)
26
40
  new_obj = {}
@@ -39,6 +53,11 @@ module Emailvision
39
53
  end
40
54
  end
41
55
 
56
+ # Convert data structure to XML
57
+ #
58
+ # @param [Object] structure to convert
59
+ # @return [String] XML structure
60
+ #
42
61
  def self.to_xml_as_is(obj)
43
62
  obj_xml = ""
44
63
 
@@ -51,6 +70,11 @@ module Emailvision
51
70
  obj_xml
52
71
  end
53
72
 
73
+ # Iterate throught a Hash recursively
74
+ #
75
+ # @param [Hash] structure to iterate
76
+ # @yield called for each data
77
+ #
54
78
  def self.r_each(hash, &block)
55
79
  return enum_for(:dfs, hash) unless block
56
80
 
@@ -0,0 +1,3 @@
1
+ module Emailvision
2
+ Version = VERSION = '2.1.21'
3
+ end
metadata CHANGED
@@ -1,32 +1,36 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emailvision
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.20
4
+ version: 2.1.21
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Bastien Gysler
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-10-12 00:00:00.000000000 Z
12
+ date: 2013-10-16 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: httparty
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ~>
18
20
  - !ruby/object:Gem::Version
19
- version: 0.9.0
21
+ version: 0.12.0
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ~>
25
28
  - !ruby/object:Gem::Version
26
- version: 0.9.0
29
+ version: 0.12.0
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: crack
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ~>
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ~>
39
44
  - !ruby/object:Gem::Version
@@ -41,6 +46,7 @@ dependencies:
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: builder
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
51
  - - ~>
46
52
  - !ruby/object:Gem::Version
@@ -48,13 +54,15 @@ dependencies:
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
59
  - - ~>
53
60
  - !ruby/object:Gem::Version
54
61
  version: 3.1.0
55
62
  - !ruby/object:Gem::Dependency
56
- name: active_support
63
+ name: activesupport
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
67
  - - ! '>='
60
68
  - !ruby/object:Gem::Version
@@ -65,6 +73,7 @@ dependencies:
65
73
  type: :runtime
66
74
  prerelease: false
67
75
  version_requirements: !ruby/object:Gem::Requirement
76
+ none: false
68
77
  requirements:
69
78
  - - ! '>='
70
79
  - !ruby/object:Gem::Version
@@ -85,30 +94,33 @@ files:
85
94
  - lib/emailvision/railtie.rb
86
95
  - lib/emailvision/relation.rb
87
96
  - lib/emailvision/tools.rb
97
+ - lib/emailvision/version.rb
88
98
  - lib/emailvision.rb
89
99
  - lib/generators/install.rb
90
100
  - lib/generators/templates/emailvision.yml
91
101
  homepage: http://github.com/basgys/emailvision
92
102
  licenses: []
93
- metadata: {}
94
103
  post_install_message:
95
104
  rdoc_options: []
96
105
  require_paths:
97
106
  - lib
98
107
  required_ruby_version: !ruby/object:Gem::Requirement
108
+ none: false
99
109
  requirements:
100
110
  - - ! '>='
101
111
  - !ruby/object:Gem::Version
102
112
  version: '0'
103
113
  required_rubygems_version: !ruby/object:Gem::Requirement
114
+ none: false
104
115
  requirements:
105
116
  - - ! '>='
106
117
  - !ruby/object:Gem::Version
107
118
  version: '0'
108
119
  requirements: []
109
120
  rubyforge_project:
110
- rubygems_version: 2.1.4
121
+ rubygems_version: 1.8.23
111
122
  signing_key:
112
- specification_version: 4
123
+ specification_version: 3
113
124
  summary: Emailvision
114
125
  test_files: []
126
+ has_rdoc:
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZjNmNWYyZDRlZjNkZWFhYmIwOGM5NmJkOThiN2EwNzUwMmNkM2FmYg==
5
- data.tar.gz: !binary |-
6
- ODJhYzFlMDU4YTBkN2VmZTkwNDhkNmU3N2JlNmIyZTIyNmMzMTg1OQ==
7
- SHA512:
8
- metadata.gz: !binary |-
9
- MGI4ZTQ4NzViZmE1ZjQ3MTIyNGRiZjNmMWJiNjU4MzJiMWQ1MzgzYmFkMDI1
10
- MjNkODk2MGMxMWY5ZmU1MzUwOWFhYjQ3NTdmYzE3ODRiNGI1NWI2YWI2Nzk5
11
- YzQ1YzMyMzBhYjM3YmFlOTVmMDdkYmJkZTgyZGYzZWFjOTNiMDY=
12
- data.tar.gz: !binary |-
13
- MzI1MDEwNDYxZDQxMTg5MTJhZWE2NTI2MjE1ZjVmMTE3YTlmZWRlYWM4ZmM2
14
- M2IzNGExNDIyMDY5NjNjZDZlZjg3Nzg2ODI1NzJhOTFlNTFkMjVjYWFlMTAz
15
- MWNhYzVkN2IwZGQ3NGI4YmEzNDk4NTdkMTA4MjM4ZjAxMDQxY2I=