clever_elements 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -4,7 +4,9 @@ require 'clever_elements/model'
4
4
  module CleverElements
5
5
  class List < Model
6
6
  class << self
7
- def find id
7
+ attr_accessor :default_id
8
+
9
+ def find id = default_id
8
10
  response = proxy.get_list_details :listID => id
9
11
  return nil if response[:list_id].nil?
10
12
 
@@ -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
- date: 2011-10-24 00:00:00.000000000 +02:00
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
- requirement: &70286679111680 !ruby/object:Gem::Requirement
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
- prerelease: false
25
- version_requirements: *70286679111680
26
- - !ruby/object:Gem::Dependency
26
+ version_requirements: *id001
27
+ - !ruby/object:Gem::Dependency
27
28
  name: savon
28
- requirement: &70286679111220 !ruby/object:Gem::Requirement
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
- prerelease: false
36
- version_requirements: *70286679111220
37
- - !ruby/object:Gem::Dependency
37
+ version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
38
39
  name: rspec
39
- requirement: &70286679110840 !ruby/object:Gem::Requirement
40
+ prerelease: false
41
+ requirement: &id003 !ruby/object:Gem::Requirement
40
42
  none: false
41
- requirements:
42
- - - ! '>='
43
- - !ruby/object:Gem::Version
44
- version: '0'
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: "0"
45
47
  type: :development
46
- prerelease: false
47
- version_requirements: *70286679110840
48
- - !ruby/object:Gem::Dependency
48
+ version_requirements: *id003
49
+ - !ruby/object:Gem::Dependency
49
50
  name: rspec-mocks
50
- requirement: &70286679110380 !ruby/object:Gem::Requirement
51
+ prerelease: false
52
+ requirement: &id004 !ruby/object:Gem::Requirement
51
53
  none: false
52
- requirements:
53
- - - ! '>='
54
- - !ruby/object:Gem::Version
55
- version: '0'
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: "0"
56
58
  type: :development
57
- prerelease: false
58
- version_requirements: *70286679110380
59
- - !ruby/object:Gem::Dependency
59
+ version_requirements: *id004
60
+ - !ruby/object:Gem::Dependency
60
61
  name: savon_spec
61
- requirement: &70286679109960 !ruby/object:Gem::Requirement
62
+ prerelease: false
63
+ requirement: &id005 !ruby/object:Gem::Requirement
62
64
  none: false
63
- requirements:
64
- - - ! '>='
65
- - !ruby/object:Gem::Version
66
- version: '0'
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: "0"
67
69
  type: :development
68
- prerelease: false
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
- files:
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
- require_paths:
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: '0'
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
+