lib/segment.rb in createsend-0.1.1 vs lib/segment.rb in createsend-0.2.0
- old
+ new
@@ -1,83 +1,85 @@
require 'createsend'
require 'json'
-# Represents a subscriber list segment and associated functionality.
-class Segment
- attr_reader :segment_id
+module CreateSend
+ # Represents a subscriber list segment and associated functionality.
+ class Segment
+ attr_reader :segment_id
- def initialize(segment_id)
- @segment_id = segment_id
- end
+ def initialize(segment_id)
+ @segment_id = segment_id
+ end
- # Creates a new segment.
- def self.create(list_id, title, rules)
- options = { :body => {
- :Title => title,
- :Rules => rules }.to_json }
- response = CreateSend.post "/segments/#{list_id}.json", options
- response.parsed_response
- end
+ # Creates a new segment.
+ def self.create(list_id, title, rules)
+ options = { :body => {
+ :Title => title,
+ :Rules => rules }.to_json }
+ response = CreateSend.post "/segments/#{list_id}.json", options
+ response.parsed_response
+ end
- # Updates this segment.
- def update(title, rules)
- options = { :body => {
- :Title => title,
- :Rules => rules }.to_json }
- response = CreateSend.put "/segments/#{segment_id}.json", options
- end
+ # Updates this segment.
+ def update(title, rules)
+ options = { :body => {
+ :Title => title,
+ :Rules => rules }.to_json }
+ response = CreateSend.put "/segments/#{segment_id}.json", options
+ end
- # Adds a rule to this segment.
- def add_rule(subject, clauses)
- options = { :body => {
- :Subject => subject,
- :Clauses => clauses }.to_json }
- response = CreateSend.post "/segments/#{segment_id}/rules.json", options
- end
+ # Adds a rule to this segment.
+ def add_rule(subject, clauses)
+ options = { :body => {
+ :Subject => subject,
+ :Clauses => clauses }.to_json }
+ response = CreateSend.post "/segments/#{segment_id}/rules.json", options
+ end
- # Gets the active subscribers in this segment.
- def subscribers(date, page=1, page_size=1000, order_field="email", order_direction="asc")
- options = { :query => {
- :date => date,
- :page => page,
- :pagesize => page_size,
- :orderfield => order_field,
- :orderdirection => order_direction } }
- response = get "active", options
- Hashie::Mash.new(response)
- end
+ # Gets the active subscribers in this segment.
+ def subscribers(date, page=1, page_size=1000, order_field="email", order_direction="asc")
+ options = { :query => {
+ :date => date,
+ :page => page,
+ :pagesize => page_size,
+ :orderfield => order_field,
+ :orderdirection => order_direction } }
+ response = get "active", options
+ Hashie::Mash.new(response)
+ end
- # Gets the details of this segment
- def details
- response = CreateSend.get "/segments/#{segment_id}.json", {}
- Hashie::Mash.new(response)
- end
+ # Gets the details of this segment
+ def details
+ response = CreateSend.get "/segments/#{segment_id}.json", {}
+ Hashie::Mash.new(response)
+ end
- # Clears all rules of this segment.
- def clear_rules
- response = CreateSend.delete "/segments/#{segment_id}/rules.json", {}
- end
+ # Clears all rules of this segment.
+ def clear_rules
+ response = CreateSend.delete "/segments/#{segment_id}/rules.json", {}
+ end
- # Deletes this segment.
- def delete
- response = CreateSend.delete "/segments/#{segment_id}.json", {}
- end
+ # Deletes this segment.
+ def delete
+ response = CreateSend.delete "/segments/#{segment_id}.json", {}
+ end
- private
+ private
- def get(action, options = {})
- CreateSend.get uri_for(action), options
- end
+ def get(action, options = {})
+ CreateSend.get uri_for(action), options
+ end
- def post(action, options = {})
- CreateSend.post uri_for(action), options
- end
+ def post(action, options = {})
+ CreateSend.post uri_for(action), options
+ end
- def put(action, options = {})
- CreateSend.put uri_for(action), options
- end
+ def put(action, options = {})
+ CreateSend.put uri_for(action), options
+ end
- def uri_for(action)
- "/segments/#{segment_id}/#{action}.json"
- end
+ def uri_for(action)
+ "/segments/#{segment_id}/#{action}.json"
+ end
+ end
end
\ No newline at end of file