emailvision 2.1.20 → 2.1.21

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/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=