clever_elements 0.0.1 → 0.0.2
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/README.md +41 -1
- data/lib/clever_elements/list.rb +3 -1
- data/lib/clever_elements/railtie.rb +1 -0
- data/lib/clever_elements/subscriber.rb +5 -4
- metadata +63 -56
data/README.md
CHANGED
@@ -21,6 +21,37 @@ put a `clever_elements.yml` file in your `#{Rails.root}/config`:
|
|
21
21
|
api_key: <your api key>
|
22
22
|
mode: <test or live>
|
23
23
|
|
24
|
+
# optional, recommended if you only need and use 1 subscriber list
|
25
|
+
default_list_id: <some valid list id>
|
26
|
+
|
27
|
+
### With default\_list\_id set to 73302:
|
28
|
+
|
29
|
+
# Get the list:
|
30
|
+
CleverElements::List.find
|
31
|
+
# => <CleverElements::List:0x007fb78a8ab8f0 @id="73302", @name="ABC", @description="foobar", @subscriber="0", @unsubscriber="0">
|
32
|
+
|
33
|
+
# Get the subscribers in a list
|
34
|
+
list = CleverElements::List.find
|
35
|
+
list.subscriber
|
36
|
+
# => [<CleverElements::Subscriber:0x007fb78a8ab8f0 @id='123123', @email='max@muster.de'>]
|
37
|
+
|
38
|
+
# or
|
39
|
+
CleverElements::Subscriber.all
|
40
|
+
# => [<CleverElements::Subscriber:0x007fb78a8ab8f0 @id='123123', @email='max@muster.de'>]
|
41
|
+
|
42
|
+
# Add a subscriber
|
43
|
+
subscriber = list.create_subscriber :email => 'max@muster.de'
|
44
|
+
# => <CleverElements::Subscriber:0x007fb78a8ab8f0 @id='123143', @email='max@muster.de'>
|
45
|
+
|
46
|
+
# or
|
47
|
+
CleverElements::Subscriber.new(:email => 'max@muster.de').create #or create_doi
|
48
|
+
# => <CleverElements::Subscriber:0x007fb78a8ab8f0 @id='123143', @email='max@muster.de'>
|
49
|
+
|
50
|
+
# Unsubscribe
|
51
|
+
subscriber.unsubscribe_from_all
|
52
|
+
|
53
|
+
### Without default\_list\_id:
|
54
|
+
|
24
55
|
And use the `CleverElements::List` and `CleverElements::Subscriber` models, e.g.
|
25
56
|
|
26
57
|
# Get the ids of all lists in your account:
|
@@ -77,4 +108,13 @@ And use the `CleverElements::List` and `CleverElements::Subscriber` models, e.g.
|
|
77
108
|
* extensions/wasabi\_parser.rb
|
78
109
|
* comprehensive exception handling
|
79
110
|
* environment dependent configuration (development, test, production)
|
80
|
-
* test / spec helpers
|
111
|
+
* test / spec helpers
|
112
|
+
|
113
|
+
Changes
|
114
|
+
-------
|
115
|
+
|
116
|
+
#### 0.0.2
|
117
|
+
* Support `default_list_id` option
|
118
|
+
|
119
|
+
#### 0.0.1
|
120
|
+
* Initial release
|
data/lib/clever_elements/list.rb
CHANGED
@@ -8,6 +8,7 @@ module CleverElements
|
|
8
8
|
|
9
9
|
client = CleverElements::Client.new *configuration.values_at('user_id', 'api_key', 'mode')
|
10
10
|
CleverElements::Model.proxy = client.proxy
|
11
|
+
CleverElements::List.default_id = configuration['default_list_id']
|
11
12
|
else
|
12
13
|
Rails.logger.warn 'Could not find a configuration file for CleverElements.'
|
13
14
|
end
|
@@ -4,7 +4,7 @@ require 'clever_elements/model'
|
|
4
4
|
module CleverElements
|
5
5
|
class Subscriber < Model
|
6
6
|
class << self
|
7
|
-
def all list_id
|
7
|
+
def all list_id = CleverElements::List.default_id
|
8
8
|
response = proxy.get_subscriber :listID => list_id
|
9
9
|
|
10
10
|
ids = if Array === response[:item]
|
@@ -20,7 +20,7 @@ module CleverElements
|
|
20
20
|
[]
|
21
21
|
end
|
22
22
|
|
23
|
-
def all_unsubscribed list_id
|
23
|
+
def all_unsubscribed list_id = CleverElements::List.default_id
|
24
24
|
response = proxy.get_subscriber_unsubscribes :listID => list_id
|
25
25
|
|
26
26
|
ids = if Array === response[:item]
|
@@ -37,7 +37,7 @@ module CleverElements
|
|
37
37
|
end
|
38
38
|
|
39
39
|
protected
|
40
|
-
def instantiate attributes, list_id
|
40
|
+
def instantiate attributes, list_id = CleverElements::List.default_id
|
41
41
|
attributes = {
|
42
42
|
:id => attributes[:subscriber_id],
|
43
43
|
:email => attributes[:subscriber_email],
|
@@ -52,6 +52,7 @@ module CleverElements
|
|
52
52
|
|
53
53
|
def initialize attributes = {}
|
54
54
|
@id, @email, @list_id = attributes.symbolize_keys.values_at(:id, :email, :list_id)
|
55
|
+
@list_id ||= CleverElements::List.default_id
|
55
56
|
end
|
56
57
|
|
57
58
|
def list
|
@@ -85,7 +86,7 @@ module CleverElements
|
|
85
86
|
end
|
86
87
|
|
87
88
|
def unsubscribe_from list_or_id
|
88
|
-
raise 'FIXME'
|
89
|
+
raise 'FIXME, this should work, but it doesnt, im guessing api broken'
|
89
90
|
list_id = if CleverElements::List === list_or_id
|
90
91
|
list_or_id.id
|
91
92
|
else
|
metadata
CHANGED
@@ -1,78 +1,82 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: clever_elements
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.1
|
3
|
+
version: !ruby/object:Gem::Version
|
5
4
|
prerelease:
|
5
|
+
version: 0.0.2
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Marian Theisen
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
12
|
+
|
13
|
+
date: 2011-11-17 00:00:00 +01:00
|
13
14
|
default_executable:
|
14
|
-
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
16
17
|
name: activesupport
|
17
|
-
|
18
|
+
prerelease: false
|
19
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
18
20
|
none: false
|
19
|
-
requirements:
|
20
|
-
- -
|
21
|
-
- !ruby/object:Gem::Version
|
21
|
+
requirements:
|
22
|
+
- - ">="
|
23
|
+
- !ruby/object:Gem::Version
|
22
24
|
version: 3.1.0
|
23
25
|
type: :runtime
|
24
|
-
|
25
|
-
|
26
|
-
- !ruby/object:Gem::Dependency
|
26
|
+
version_requirements: *id001
|
27
|
+
- !ruby/object:Gem::Dependency
|
27
28
|
name: savon
|
28
|
-
|
29
|
+
prerelease: false
|
30
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
29
31
|
none: false
|
30
|
-
requirements:
|
31
|
-
- -
|
32
|
-
- !ruby/object:Gem::Version
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
33
35
|
version: 0.9.7
|
34
36
|
type: :runtime
|
35
|
-
|
36
|
-
|
37
|
-
- !ruby/object:Gem::Dependency
|
37
|
+
version_requirements: *id002
|
38
|
+
- !ruby/object:Gem::Dependency
|
38
39
|
name: rspec
|
39
|
-
|
40
|
+
prerelease: false
|
41
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
40
42
|
none: false
|
41
|
-
requirements:
|
42
|
-
- -
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
version:
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: "0"
|
45
47
|
type: :development
|
46
|
-
|
47
|
-
|
48
|
-
- !ruby/object:Gem::Dependency
|
48
|
+
version_requirements: *id003
|
49
|
+
- !ruby/object:Gem::Dependency
|
49
50
|
name: rspec-mocks
|
50
|
-
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
51
53
|
none: false
|
52
|
-
requirements:
|
53
|
-
- -
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version:
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: "0"
|
56
58
|
type: :development
|
57
|
-
|
58
|
-
|
59
|
-
- !ruby/object:Gem::Dependency
|
59
|
+
version_requirements: *id004
|
60
|
+
- !ruby/object:Gem::Dependency
|
60
61
|
name: savon_spec
|
61
|
-
|
62
|
+
prerelease: false
|
63
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
62
64
|
none: false
|
63
|
-
requirements:
|
64
|
-
- -
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version:
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: "0"
|
67
69
|
type: :development
|
68
|
-
|
69
|
-
version_requirements: *70286679109960
|
70
|
+
version_requirements: *id005
|
70
71
|
description: Clever Elements API Client
|
71
72
|
email: marian.theisen@kayoom.com
|
72
73
|
executables: []
|
74
|
+
|
73
75
|
extensions: []
|
76
|
+
|
74
77
|
extra_rdoc_files: []
|
75
|
-
|
78
|
+
|
79
|
+
files:
|
76
80
|
- README.md
|
77
81
|
- LICENSE
|
78
82
|
- lib/clever_elements/client.rb
|
@@ -86,23 +90,25 @@ files:
|
|
86
90
|
has_rdoc: true
|
87
91
|
homepage: http://github.com/kayoom/clever_elements
|
88
92
|
licenses: []
|
93
|
+
|
89
94
|
post_install_message:
|
90
95
|
rdoc_options: []
|
91
|
-
|
96
|
+
|
97
|
+
require_paths:
|
92
98
|
- lib
|
93
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
99
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
94
100
|
none: false
|
95
|
-
requirements:
|
96
|
-
- -
|
97
|
-
- !ruby/object:Gem::Version
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
98
104
|
version: 1.8.7
|
99
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
106
|
none: false
|
101
|
-
requirements:
|
102
|
-
- -
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
version:
|
105
|
-
requirements:
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: "0"
|
111
|
+
requirements:
|
106
112
|
- none
|
107
113
|
rubyforge_project:
|
108
114
|
rubygems_version: 1.6.2
|
@@ -110,3 +116,4 @@ signing_key:
|
|
110
116
|
specification_version: 3
|
111
117
|
summary: Clever Elements API Client
|
112
118
|
test_files: []
|
119
|
+
|