Class: Phplist::API

Inherits:
Object
  • Object
show all
Defined in:
lib/phplist.rb

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(default_parameters = {:domain => nil, :action => nil, :password => nil, :ssl_enabled => false}) ⇒ API

Returns a new instance of API.



8
9
10
11
12
13
# File 'lib/phplist.rb', line 8

def initialize(default_parameters = {:domain => nil, :action => nil, :password => nil, :ssl_enabled => false})
  @domain = default_parameters[:domain]||self.class.domain
  @action = default_parameters[:action]||self.class.action
  @password = default_parameters[:password]||self.class.password
  @ssl_enabled = default_parameters[:ssl_enabled]||self.class.ssl_enabled
end

Class Attribute Details

.actionObject

Returns the value of attribute action.



49
50
51
# File 'lib/phplist.rb', line 49

def action
  @action
end

.domainObject

Returns the value of attribute domain.



49
50
51
# File 'lib/phplist.rb', line 49

def domain
  @domain
end

.passwordObject

Returns the value of attribute password.



49
50
51
# File 'lib/phplist.rb', line 49

def password
  @password
end

.ssl_enabledObject

Returns the value of attribute ssl_enabled.



49
50
51
# File 'lib/phplist.rb', line 49

def ssl_enabled
  @ssl_enabled
end

Instance Attribute Details

#actionObject

Returns the value of attribute action.



7
8
9
# File 'lib/phplist.rb', line 7

def action
  @action
end

#domainObject

Returns the value of attribute domain.



7
8
9
# File 'lib/phplist.rb', line 7

def domain
  @domain
end

#passwordObject

Returns the value of attribute password.



7
8
9
# File 'lib/phplist.rb', line 7

def password
  @password
end

#ssl_enabledObject

Returns the value of attribute ssl_enabled.



7
8
9
# File 'lib/phplist.rb', line 7

def ssl_enabled
  @ssl_enabled
end

Class Method Details

.method_missing(sym, *args, &block) ⇒ Object



50
51
52
# File 'lib/phplist.rb', line 50

def method_missing(sym, *args, &block)
  new({:domain => self.domain, :action => self.action, :password => self.password, :ssl_enabled => self.ssl_enabled}).send(sym, *args, &block)
end

Instance Method Details

#subscribe(info = {:id => nil, :subscriber => {:email => nil, :name => nil, :city => nil, :country => nil}}) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/phplist.rb', line 15

def subscribe(info = {:id => nil, :subscriber => {:email => nil, :name => nil, :city => nil, :country => nil}})
  return false if info[:id].blank?
  return false if info[:subscriber].blank? || info[:subscriber][:email].blank?
  p_email = info[:subscriber][:email]
  name = info[:subscriber][:name]
  p_name = CGI::escape(name||'')

  p_city = CGI::escape(info[:subscriber][:city]||'')
  p_country = CGI::escape(info[:subscriber][:country]||'')

  start_time = Time.now
  url = "http#{'s' if @ssl_enabled}://#{@domain}/#{@action}?passwd=#{@password}&email=#{p_email.downcase}&name=#{p_name}&city=#{p_city}&country=#{p_country}&makeconfirmed=1&lid=#{info[:id]}"
  url = URI.encode(url)
  uri = URI(url)
  res = Net::HTTP.get_response(uri)
  response_str = res.body.to_s
  if /success/i =~ response_str
  return true
  end
  return false
end

#subscribe_list(info = {:id => nil, :subscribers => [{:email => nil, :name => nil, :city => nil, :country => nil}]}) ⇒ Object



37
38
39
40
41
42
43
44
45
46
# File 'lib/phplist.rb', line 37

def subscribe_list(info = {:id => nil, :subscribers => [{:email => nil, :name => nil, :city => nil, :country => nil}]})
  return false if info[:id].blank?
  return false if info[:subscribers].blank?
  subscribed = false
  info[:subscribers].each do |subscriber|
    subscribed = subscribe({:id => info[:id], :subscriber => subscriber})
    return false unless subscribed
  end
  subscribed
end