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