cupid 0.0.6 → 0.0.7
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/Gemfile.lock +2 -2
- data/README.md +29 -0
- data/lib/cupid/configuration.rb +2 -1
- data/lib/cupid/methods/email.rb +40 -17
- data/lib/cupid/methods/list.rb +13 -0
- data/lib/cupid/methods/subscriber.rb +1 -0
- data/lib/cupid/session.rb +49 -33
- data/lib/cupid/version.rb +1 -1
- data/tmp/dancing_with_ET.rb +47 -11
- metadata +48 -77
    
        data/Gemfile.lock
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            PATH
         | 
| 2 2 | 
             
              remote: .
         | 
| 3 3 | 
             
              specs:
         | 
| 4 | 
            -
                cupid (0.0. | 
| 4 | 
            +
                cupid (0.0.6)
         | 
| 5 5 | 
             
                  builder (>= 2.1.2)
         | 
| 6 6 | 
             
                  nokogiri (>= 1.4.1)
         | 
| 7 7 | 
             
                  savon (>= 0.9.0)
         | 
| @@ -18,7 +18,7 @@ GEM | |
| 18 18 | 
             
                  rack
         | 
| 19 19 | 
             
                nokogiri (1.5.0)
         | 
| 20 20 | 
             
                nori (1.0.2)
         | 
| 21 | 
            -
                rack (1.3. | 
| 21 | 
            +
                rack (1.3.3)
         | 
| 22 22 | 
             
                savon (0.9.7)
         | 
| 23 23 | 
             
                  akami (~> 1.0)
         | 
| 24 24 | 
             
                  builder (>= 2.1.2)
         | 
    
        data/README.md
    CHANGED
    
    | @@ -6,7 +6,36 @@ Sponsored by Evil Martians <http://evilmartians.com> | |
| 6 6 |  | 
| 7 7 | 
             
            ## Usage
         | 
| 8 8 |  | 
| 9 | 
            +
            Add cupid initializer to your config/initializers and now there only two parameters to configure:
         | 
| 9 10 |  | 
| 11 | 
            +
            ``` ruby
         | 
| 12 | 
            +
            Cupid.configure do |config|
         | 
| 13 | 
            +
              config.username = 'username'
         | 
| 14 | 
            +
              config.password = 'password'
         | 
| 15 | 
            +
            end
         | 
| 16 | 
            +
            ```
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            After that you can create Cupid::Session object and do some stuff through it:
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            ``` ruby
         | 
| 21 | 
            +
            # Creating session
         | 
| 22 | 
            +
            et_translator = Cupid::Session.new
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            # Retrieving folders for not default account (your_account_id can be nil - default account on ET)
         | 
| 25 | 
            +
            folders = et_translator.retrieve_email_folders(your_account_id)
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            # Creating new folder
         | 
| 28 | 
            +
            # not required fields for folder: description, content_type, is_active, is_editable, allow_children
         | 
| 29 | 
            +
            new_folder_id = et_translator.create_folder('title', :parent => parent_directory_id, :client_id => your_account_id)
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            # Creating new email
         | 
| 32 | 
            +
            # not required fields for email: email_type, is_html_paste, character_set, name, description, category_id
         | 
| 33 | 
            +
            new_email_id = et_translator.create_email('subject', 'body', :client_id => your_account_id, :category_id => new_folder_id)
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            # Creating new subscriber
         | 
| 36 | 
            +
            # not required fields for subscriber: first_name, last_name, client_id
         | 
| 37 | 
            +
            new_subscriber_id = et_translator.create_subscriber('email@email.com')
         | 
| 38 | 
            +
            ```
         | 
| 10 39 |  | 
| 11 40 | 
             
            ## Installation
         | 
| 12 41 |  | 
    
        data/lib/cupid/configuration.rb
    CHANGED
    
    
    
        data/lib/cupid/methods/email.rb
    CHANGED
    
    | @@ -1,22 +1,15 @@ | |
| 1 1 | 
             
            module Cupid
         | 
| 2 2 | 
             
              class Session
         | 
| 3 | 
            -
                def retrieve_email_folders(account)
         | 
| 4 | 
            -
                   | 
| 5 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 8 | 
            -
             | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 11 | 
            -
                                <Properties>ParentFolder.ID</Properties>
         | 
| 12 | 
            -
                                <Properties>ParentFolder.Name</Properties>
         | 
| 13 | 
            -
                                <Filter xsi:type="SimpleFilterPart">
         | 
| 14 | 
            -
                                  <Property>ContentType</Property>
         | 
| 15 | 
            -
                                  <SimpleOperator>like</SimpleOperator>
         | 
| 16 | 
            -
                                  <Value>email</Value>
         | 
| 17 | 
            -
                                </Filter>
         | 
| 18 | 
            -
                               </RetrieveRequest>'
         | 
| 3 | 
            +
                def retrieve_email_folders(account=nil, properties=nil)
         | 
| 4 | 
            +
                  account ||= @account
         | 
| 5 | 
            +
                  properties ||= ['ID', 'Name', 'ParentFolder.ID', 'ParentFolder.Name']
         | 
| 6 | 
            +
                  filters = 'Filter xsi:type="SimpleFilterPart"' => {
         | 
| 7 | 
            +
                              'Property' => 'ContentType',
         | 
| 8 | 
            +
                              'SimpleOperator' => 'like',
         | 
| 9 | 
            +
                              'Value' => 'email'
         | 
| 10 | 
            +
                            }
         | 
| 19 11 |  | 
| 12 | 
            +
                  soap_body = build_retrieve(account.to_s, 'DataFolder', properties, filters)
         | 
| 20 13 | 
             
                  response = build_request('Retrieve', 'RetrieveRequestMsg', soap_body)
         | 
| 21 14 | 
             
                  response = Nokogiri::XML(response.http.body).remove_namespaces!
         | 
| 22 15 | 
             
                  all_folders = response.css('Results').map{|f| {f.css('Name').to_a.map(&:text).join('/') => f.css('ID')[0].text}}
         | 
| @@ -26,7 +19,8 @@ module Cupid | |
| 26 19 | 
             
                  options = args.extract_options!
         | 
| 27 20 | 
             
                  options[:subject] = CGI.escapeHTML subject.to_s
         | 
| 28 21 | 
             
                  options[:body] = CGI.escapeHTML body.to_s
         | 
| 29 | 
            -
                  
         | 
| 22 | 
            +
                  options[:client_id] ||= @account
         | 
| 23 | 
            +
             | 
| 30 24 | 
             
                  options[:email_type] ||= 'HTML'
         | 
| 31 25 | 
             
                  options[:is_html_paste] ||= 'true' # ??
         | 
| 32 26 | 
             
                  options[:character_set] ||= 'utf-8'
         | 
| @@ -44,6 +38,7 @@ module Cupid | |
| 44 38 | 
             
                  options = args.extract_options!
         | 
| 45 39 | 
             
                  options[:title] = CGI.escapeHTML title.to_s
         | 
| 46 40 | 
             
                  options[:description] ||= 'description'
         | 
| 41 | 
            +
                  options[:client_id] ||= @account
         | 
| 47 42 |  | 
| 48 43 | 
             
                  options[:content_type] ||= 'email'
         | 
| 49 44 | 
             
                  options[:is_active] ||= 'true'
         | 
| @@ -59,6 +54,17 @@ module Cupid | |
| 59 54 | 
             
                  created_folder_id = response.css('NewID').text
         | 
| 60 55 | 
             
                end
         | 
| 61 56 |  | 
| 57 | 
            +
                def send_email_to_list(email_id, list_id, account=nil)
         | 
| 58 | 
            +
                  account ||= @account
         | 
| 59 | 
            +
                  soap_body = '<Objects xsi:type="Send">' +
         | 
| 60 | 
            +
                                create_send_object(email_id, list_id, account) +
         | 
| 61 | 
            +
                              '</Objects>'
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                  response = build_request('Create', 'CreateRequest', soap_body)
         | 
| 64 | 
            +
                  response = Nokogiri::XML(response.http.body).remove_namespaces!
         | 
| 65 | 
            +
                  created_send_id = response.css('NewID').text
         | 
| 66 | 
            +
                end
         | 
| 67 | 
            +
             | 
| 62 68 | 
             
                def email_link(email_id)
         | 
| 63 69 | 
             
                  "https://members.s4.exacttarget.com/Content/Email/EmailEdit.aspx?eid=" + email_id.to_s
         | 
| 64 70 | 
             
                end
         | 
| @@ -101,5 +107,22 @@ module Cupid | |
| 101 107 | 
             
                                       </ParentFolder>'
         | 
| 102 108 | 
             
                  end
         | 
| 103 109 | 
             
                end
         | 
| 110 | 
            +
             | 
| 111 | 
            +
                def create_send_object(email_id, list_id, account)
         | 
| 112 | 
            +
                  send_object = '<PartnerKey xsi:nil="true"/>' +
         | 
| 113 | 
            +
                                 '<ObjectID xsi:nil="true"/>' +
         | 
| 114 | 
            +
                                 '<Client><ID>' + account.to_s + '</ID></Client>' +
         | 
| 115 | 
            +
                                 '<Email>' +
         | 
| 116 | 
            +
                                   '<PartnerKey xsi:nil="true"/>' +
         | 
| 117 | 
            +
                                   '<ID>' + email_id.to_s + '</ID>' +
         | 
| 118 | 
            +
                                   '<ObjectID xsi:nil="true"/>' +
         | 
| 119 | 
            +
                                 '</Email>' +
         | 
| 120 | 
            +
                                 '<List>' +
         | 
| 121 | 
            +
                                   '<PartnerKey xsi:nil="true"/>' +
         | 
| 122 | 
            +
                                   '<ObjectID xsi:nil="true"/>' +
         | 
| 123 | 
            +
                                   '<ID>' + list_id.to_s + '</CustomerKey>' +
         | 
| 124 | 
            +
                                 '</List>' +
         | 
| 125 | 
            +
                                 '</Objects>'
         | 
| 126 | 
            +
                end
         | 
| 104 127 | 
             
              end
         | 
| 105 128 | 
             
            end
         | 
| @@ -0,0 +1,13 @@ | |
| 1 | 
            +
            module Cupid
         | 
| 2 | 
            +
              class Session
         | 
| 3 | 
            +
                def retrieve_lists(account=nil, properties=nil)
         | 
| 4 | 
            +
                  account ||= @account
         | 
| 5 | 
            +
                  properties ||= ['ID', 'CustomerKey']
         | 
| 6 | 
            +
                  
         | 
| 7 | 
            +
                  soap_body = build_retrieve(account.to_s, 'List', properties)
         | 
| 8 | 
            +
                  response = build_request('Retrieve', 'RetrieveRequestMsg', soap_body)
         | 
| 9 | 
            +
                  response = Nokogiri::XML(response.http.body).remove_namespaces!
         | 
| 10 | 
            +
                  all_lists = response.css('Results').map{|f| {f.css('CustomerKey').to_a.map(&:text).join('/') => f.css('ID')[0].text}}
         | 
| 11 | 
            +
                end
         | 
| 12 | 
            +
              end
         | 
| 13 | 
            +
            end
         | 
    
        data/lib/cupid/session.rb
    CHANGED
    
    | @@ -12,6 +12,7 @@ module Cupid | |
| 12 12 | 
             
                  options     = args.extract_options!
         | 
| 13 13 | 
             
                  @username   = options[:username]    ||= Cupid.username
         | 
| 14 14 | 
             
                  @password   = options[:password]    ||= Cupid.password
         | 
| 15 | 
            +
                  @account    = options[:account]     ||= Cupid.account
         | 
| 15 16 | 
             
                  @headers    = {"Content-Type" => "application/x-www-form-urlencoded", "Connection" => "close"}
         | 
| 16 17 |  | 
| 17 18 | 
             
                  @api_uri = @api_wsdl = DEFAULTS[:soap_s4_url]
         | 
| @@ -23,39 +24,54 @@ module Cupid | |
| 23 24 | 
             
                end
         | 
| 24 25 |  | 
| 25 26 | 
             
                private
         | 
| 26 | 
            -
             | 
| 27 | 
            -
             | 
| 28 | 
            -
             | 
| 29 | 
            -
             | 
| 30 | 
            -
             | 
| 31 | 
            -
             | 
| 32 | 
            -
             | 
| 33 | 
            -
             | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 38 | 
            -
                         | 
| 39 | 
            -
                       | 
| 40 | 
            -
             | 
| 41 | 
            -
                     | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 49 | 
            -
             | 
| 50 | 
            -
                     | 
| 51 | 
            -
             | 
| 52 | 
            -
             | 
| 53 | 
            -
             | 
| 54 | 
            -
             | 
| 55 | 
            -
             | 
| 56 | 
            -
             | 
| 57 | 
            -
             | 
| 58 | 
            -
                     | 
| 27 | 
            +
             | 
| 28 | 
            +
                def build_request(type, method, body)
         | 
| 29 | 
            +
                  client = Savon::Client.new(@api_wsdl)
         | 
| 30 | 
            +
                  client.wsse.username = @username
         | 
| 31 | 
            +
                  client.wsse.password = @password
         | 
| 32 | 
            +
                  client.wsse.created_at = Time.now.utc
         | 
| 33 | 
            +
                  client.wsse.expires_at = (Time.now + 120).utc
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                  header = {
         | 
| 36 | 
            +
                    'a:Action' => type,
         | 
| 37 | 
            +
                    'a:MessageID' => 'urn:uuid:99e6822c-5436-4fec-a243-3126c14924f6',
         | 
| 38 | 
            +
                    'a:ReplyTo' => {
         | 
| 39 | 
            +
                        'a:Address' => 'http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous'
         | 
| 40 | 
            +
                      },
         | 
| 41 | 
            +
                    'VsDebuggerCausalityData' => 'uIDPo5GdUXRQCEBNrqnw0gOEloMAAAAAIAi4IHpPlUiMs1MZ2raBIhJnF/jqJLlAgZIny03R+tgACQAA',
         | 
| 42 | 
            +
                    'a:To' => @wsa_soap_s4_to
         | 
| 43 | 
            +
                  }
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                  namespaces = {
         | 
| 46 | 
            +
                    'xmlns:s'=>"http://schemas.xmlsoap.org/soap/envelope/",
         | 
| 47 | 
            +
                    'xmlns:a'=>"http://schemas.xmlsoap.org/ws/2004/08/addressing",
         | 
| 48 | 
            +
                    'xmlns:u'=>"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd",
         | 
| 49 | 
            +
                    'xmlns:xsi'=>"http://www.w3.org/2001/XMLSchema-instance",
         | 
| 50 | 
            +
                    'xmlns:xsd'=>"http://www.w3.org/2001/XMLSchema",
         | 
| 51 | 
            +
                    'xmlns:o'=>"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
         | 
| 52 | 
            +
                  }
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                  response = client.request type.downcase.to_sym do |soap|
         | 
| 55 | 
            +
                    soap.input = [method, { 'xmlns'=>"http://exacttarget.com/wsdl/partnerAPI"}]
         | 
| 56 | 
            +
                    soap.header = header
         | 
| 57 | 
            +
                    soap.env_namespace = :s
         | 
| 58 | 
            +
                    soap.namespaces = namespaces
         | 
| 59 | 
            +
                    soap.body = body
         | 
| 59 60 | 
             
                  end
         | 
| 61 | 
            +
                end
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                def build_retrieve(id, object_type, properties, filters=nil)
         | 
| 64 | 
            +
                  body = {'RetrieveRequest' => {
         | 
| 65 | 
            +
                            'ClientIDs' => {
         | 
| 66 | 
            +
                              'ID' => id
         | 
| 67 | 
            +
                            },
         | 
| 68 | 
            +
                            'ObjectType' => object_type,
         | 
| 69 | 
            +
                            'Properties' => properties
         | 
| 70 | 
            +
                          }
         | 
| 71 | 
            +
                         }
         | 
| 72 | 
            +
                  body['RetrieveRequest'].merge! filters if filters
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                  body
         | 
| 75 | 
            +
                end
         | 
| 60 76 | 
             
              end
         | 
| 61 77 | 
             
            end
         | 
    
        data/lib/cupid/version.rb
    CHANGED
    
    
    
        data/tmp/dancing_with_ET.rb
    CHANGED
    
    | @@ -1,5 +1,6 @@ | |
| 1 1 | 
             
            require 'rubygems'
         | 
| 2 2 | 
             
            # require 'ruby-debug'
         | 
| 3 | 
            +
            require 'nokogiri'
         | 
| 3 4 | 
             
            require 'savon'
         | 
| 4 5 | 
             
            require 'cgi'
         | 
| 5 6 |  | 
| @@ -37,7 +38,7 @@ body = { | |
| 37 38 | 
             
            }
         | 
| 38 39 |  | 
| 39 40 | 
             
            header = {
         | 
| 40 | 
            -
              'a:Action' => ' | 
| 41 | 
            +
              'a:Action' => 'Create',
         | 
| 41 42 | 
             
              'a:MessageID' => 'urn:uuid:99e6822c-5436-4fec-a243-3126c14924f6',
         | 
| 42 43 | 
             
              'a:ReplyTo' => {
         | 
| 43 44 | 
             
                  'a:Address' => 'http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous'
         | 
| @@ -91,17 +92,52 @@ body = '<RetrieveRequest> | |
| 91 92 | 
             
            <ClientIDs>
         | 
| 92 93 | 
             
            <ID>1058484</ID>
         | 
| 93 94 | 
             
            </ClientIDs>
         | 
| 94 | 
            -
            <ObjectType> | 
| 95 | 
            +
            <ObjectType>List</ObjectType>
         | 
| 96 | 
            +
            <Properties>CustomerKey</Properties>
         | 
| 95 97 | 
             
            <Properties>ID</Properties>
         | 
| 96 | 
            -
            <Properties>Name</Properties>
         | 
| 97 | 
            -
            <Properties>ParentFolder.ID</Properties>
         | 
| 98 | 
            -
            <Properties>ParentFolder.Name</Properties>
         | 
| 99 | 
            -
            <Filter xsi:type="SimpleFilterPart">
         | 
| 100 | 
            -
            <Property>ContentType</Property>
         | 
| 101 | 
            -
            <SimpleOperator>like</SimpleOperator>
         | 
| 102 | 
            -
            <Value>email</Value>
         | 
| 103 | 
            -
            </Filter>
         | 
| 104 98 | 
             
            </RetrieveRequest>'
         | 
| 99 | 
            +
             | 
| 100 | 
            +
            body = {
         | 
| 101 | 
            +
              'RetrieveRequest' => {
         | 
| 102 | 
            +
                'ClientIDs' => {
         | 
| 103 | 
            +
                  'ID' => '1058484'
         | 
| 104 | 
            +
                },
         | 
| 105 | 
            +
                'ObjectType' => 'List',
         | 
| 106 | 
            +
                'Properties' => ['CustomerKey', 'ID']
         | 
| 107 | 
            +
              }
         | 
| 108 | 
            +
            }
         | 
| 109 | 
            +
            body_noko = Nokogiri::XML::Builder.new do |xml|
         | 
| 110 | 
            +
              xml.retrieve_request {
         | 
| 111 | 
            +
                xml.client_ids {
         | 
| 112 | 
            +
                  xml.id "1058484"
         | 
| 113 | 
            +
                }
         | 
| 114 | 
            +
                xml.object_type "List"
         | 
| 115 | 
            +
                xml.properties "CustomerKey"
         | 
| 116 | 
            +
                xml.properties "ID"
         | 
| 117 | 
            +
              }
         | 
| 118 | 
            +
            end
         | 
| 119 | 
            +
             | 
| 120 | 
            +
            body = '<Objects xsi:type="Send">
         | 
| 121 | 
            +
            <PartnerKey xsi:nil="true"/>
         | 
| 122 | 
            +
            <Client><ID>1058484</ID></Client>
         | 
| 123 | 
            +
            <ObjectID xsi:nil="true"/>
         | 
| 124 | 
            +
            <Email>
         | 
| 125 | 
            +
            <PartnerKey xsi:nil="true"/>
         | 
| 126 | 
            +
            <ID>565</ID>
         | 
| 127 | 
            +
            <ObjectID xsi:nil="true"/>
         | 
| 128 | 
            +
            </Email>
         | 
| 129 | 
            +
            <List>
         | 
| 130 | 
            +
            <PartnerKey xsi:nil="true"/>
         | 
| 131 | 
            +
            <ObjectID xsi:nil="true"/>
         | 
| 132 | 
            +
            <ID>57</ID>
         | 
| 133 | 
            +
            </List>
         | 
| 134 | 
            +
            </Objects>'
         | 
| 135 | 
            +
            # 
         | 
| 136 | 
            +
            # puts body
         | 
| 137 | 
            +
            # 
         | 
| 138 | 
            +
            # puts '-============-'
         | 
| 139 | 
            +
            # 
         | 
| 140 | 
            +
            # puts body_noko.text
         | 
| 105 141 |  | 
| 106 142 | 
             
            # body = '<RetrieveRequest>
         | 
| 107 143 | 
             
            # <ClientIDs>
         | 
| @@ -142,7 +178,7 @@ namespaces = { | |
| 142 178 | 
             
            }
         | 
| 143 179 | 
             
            # 
         | 
| 144 180 | 
             
            response = client.request :retrieve do |soap|
         | 
| 145 | 
            -
              soap.input = [' | 
| 181 | 
            +
              soap.input = ['CreateRequest', { 'xmlns'=>"http://exacttarget.com/wsdl/partnerAPI"}]
         | 
| 146 182 | 
             
              soap.header = header
         | 
| 147 183 | 
             
              soap.env_namespace = :s
         | 
| 148 184 | 
             
              soap.namespaces = namespaces
         | 
    
        metadata
    CHANGED
    
    | @@ -1,80 +1,58 @@ | |
| 1 | 
            -
            --- !ruby/object:Gem::Specification | 
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: cupid
         | 
| 3 | 
            -
            version: !ruby/object:Gem::Version | 
| 4 | 
            -
               | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 0.0.7
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 | 
            -
              segments: 
         | 
| 7 | 
            -
              - 0
         | 
| 8 | 
            -
              - 0
         | 
| 9 | 
            -
              - 6
         | 
| 10 | 
            -
              version: 0.0.6
         | 
| 11 6 | 
             
            platform: ruby
         | 
| 12 | 
            -
            authors: | 
| 7 | 
            +
            authors:
         | 
| 13 8 | 
             
            - gazay
         | 
| 14 9 | 
             
            autorequire: 
         | 
| 15 10 | 
             
            bindir: bin
         | 
| 16 11 | 
             
            cert_chain: []
         | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
            dependencies: | 
| 20 | 
            -
            - !ruby/object:Gem::Dependency | 
| 12 | 
            +
            date: 2011-09-22 00:00:00.000000000 %:z
         | 
| 13 | 
            +
            default_executable: 
         | 
| 14 | 
            +
            dependencies:
         | 
| 15 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 21 16 | 
             
              name: builder
         | 
| 22 | 
            -
               | 
| 23 | 
            -
              requirement: &id001 !ruby/object:Gem::Requirement 
         | 
| 17 | 
            +
              requirement: &2153805140 !ruby/object:Gem::Requirement
         | 
| 24 18 | 
             
                none: false
         | 
| 25 | 
            -
                requirements: | 
| 26 | 
            -
                - -  | 
| 27 | 
            -
                  - !ruby/object:Gem::Version | 
| 28 | 
            -
                    hash: 15
         | 
| 29 | 
            -
                    segments: 
         | 
| 30 | 
            -
                    - 2
         | 
| 31 | 
            -
                    - 1
         | 
| 32 | 
            -
                    - 2
         | 
| 19 | 
            +
                requirements:
         | 
| 20 | 
            +
                - - ! '>='
         | 
| 21 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 22 | 
             
                    version: 2.1.2
         | 
| 34 23 | 
             
              type: :runtime
         | 
| 35 | 
            -
              version_requirements: *id001
         | 
| 36 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 37 | 
            -
              name: nokogiri
         | 
| 38 24 | 
             
              prerelease: false
         | 
| 39 | 
            -
               | 
| 25 | 
            +
              version_requirements: *2153805140
         | 
| 26 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 27 | 
            +
              name: nokogiri
         | 
| 28 | 
            +
              requirement: &2153804440 !ruby/object:Gem::Requirement
         | 
| 40 29 | 
             
                none: false
         | 
| 41 | 
            -
                requirements: | 
| 42 | 
            -
                - -  | 
| 43 | 
            -
                  - !ruby/object:Gem::Version | 
| 44 | 
            -
                    hash: 5
         | 
| 45 | 
            -
                    segments: 
         | 
| 46 | 
            -
                    - 1
         | 
| 47 | 
            -
                    - 4
         | 
| 48 | 
            -
                    - 1
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - ! '>='
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 49 33 | 
             
                    version: 1.4.1
         | 
| 50 34 | 
             
              type: :runtime
         | 
| 51 | 
            -
              version_requirements: *id002
         | 
| 52 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 53 | 
            -
              name: savon
         | 
| 54 35 | 
             
              prerelease: false
         | 
| 55 | 
            -
               | 
| 36 | 
            +
              version_requirements: *2153804440
         | 
| 37 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 38 | 
            +
              name: savon
         | 
| 39 | 
            +
              requirement: &2153803980 !ruby/object:Gem::Requirement
         | 
| 56 40 | 
             
                none: false
         | 
| 57 | 
            -
                requirements: | 
| 58 | 
            -
                - -  | 
| 59 | 
            -
                  - !ruby/object:Gem::Version | 
| 60 | 
            -
                    hash: 59
         | 
| 61 | 
            -
                    segments: 
         | 
| 62 | 
            -
                    - 0
         | 
| 63 | 
            -
                    - 9
         | 
| 64 | 
            -
                    - 0
         | 
| 41 | 
            +
                requirements:
         | 
| 42 | 
            +
                - - ! '>='
         | 
| 43 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 65 44 | 
             
                    version: 0.9.0
         | 
| 66 45 | 
             
              type: :runtime
         | 
| 67 | 
            -
               | 
| 68 | 
            -
             | 
| 69 | 
            -
             | 
| 46 | 
            +
              prerelease: false
         | 
| 47 | 
            +
              version_requirements: *2153803980
         | 
| 48 | 
            +
            description: Send love, not war. This version of cupid can only work with ET SOAP
         | 
| 49 | 
            +
              API with s4.
         | 
| 50 | 
            +
            email:
         | 
| 70 51 | 
             
            - gazay@evilmartians.com
         | 
| 71 52 | 
             
            executables: []
         | 
| 72 | 
            -
             | 
| 73 53 | 
             
            extensions: []
         | 
| 74 | 
            -
             | 
| 75 54 | 
             
            extra_rdoc_files: []
         | 
| 76 | 
            -
             | 
| 77 | 
            -
            files: 
         | 
| 55 | 
            +
            files:
         | 
| 78 56 | 
             
            - Gemfile
         | 
| 79 57 | 
             
            - Gemfile.lock
         | 
| 80 58 | 
             
            - README.md
         | 
| @@ -84,43 +62,36 @@ files: | |
| 84 62 | 
             
            - lib/cupid/configuration.rb
         | 
| 85 63 | 
             
            - lib/cupid/methods.rb
         | 
| 86 64 | 
             
            - lib/cupid/methods/email.rb
         | 
| 65 | 
            +
            - lib/cupid/methods/list.rb
         | 
| 87 66 | 
             
            - lib/cupid/methods/subscriber.rb
         | 
| 88 67 | 
             
            - lib/cupid/session.rb
         | 
| 89 68 | 
             
            - lib/cupid/version.rb
         | 
| 90 69 | 
             
            - spec/cupid/cupid_spec.rb
         | 
| 91 70 | 
             
            - tmp/dancing_with_ET.rb
         | 
| 92 | 
            -
             | 
| 71 | 
            +
            has_rdoc: true
         | 
| 72 | 
            +
            homepage: ''
         | 
| 93 73 | 
             
            licenses: []
         | 
| 94 | 
            -
             | 
| 95 74 | 
             
            post_install_message: 
         | 
| 96 75 | 
             
            rdoc_options: []
         | 
| 97 | 
            -
             | 
| 98 | 
            -
            require_paths: 
         | 
| 76 | 
            +
            require_paths:
         | 
| 99 77 | 
             
            - lib
         | 
| 100 | 
            -
            required_ruby_version: !ruby/object:Gem::Requirement | 
| 78 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 101 79 | 
             
              none: false
         | 
| 102 | 
            -
              requirements: | 
| 103 | 
            -
              - -  | 
| 104 | 
            -
                - !ruby/object:Gem::Version | 
| 105 | 
            -
                   | 
| 106 | 
            -
             | 
| 107 | 
            -
                  - 0
         | 
| 108 | 
            -
                  version: "0"
         | 
| 109 | 
            -
            required_rubygems_version: !ruby/object:Gem::Requirement 
         | 
| 80 | 
            +
              requirements:
         | 
| 81 | 
            +
              - - ! '>='
         | 
| 82 | 
            +
                - !ruby/object:Gem::Version
         | 
| 83 | 
            +
                  version: '0'
         | 
| 84 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 110 85 | 
             
              none: false
         | 
| 111 | 
            -
              requirements: | 
| 112 | 
            -
              - -  | 
| 113 | 
            -
                - !ruby/object:Gem::Version | 
| 114 | 
            -
                   | 
| 115 | 
            -
                  segments: 
         | 
| 116 | 
            -
                  - 0
         | 
| 117 | 
            -
                  version: "0"
         | 
| 86 | 
            +
              requirements:
         | 
| 87 | 
            +
              - - ! '>='
         | 
| 88 | 
            +
                - !ruby/object:Gem::Version
         | 
| 89 | 
            +
                  version: '0'
         | 
| 118 90 | 
             
            requirements: []
         | 
| 119 | 
            -
             | 
| 120 91 | 
             
            rubyforge_project: cupid
         | 
| 121 | 
            -
            rubygems_version: 1. | 
| 92 | 
            +
            rubygems_version: 1.6.2
         | 
| 122 93 | 
             
            signing_key: 
         | 
| 123 94 | 
             
            specification_version: 3
         | 
| 124 95 | 
             
            summary: Create, organize and send emails through Exact Target SOAP API
         | 
| 125 | 
            -
            test_files: | 
| 96 | 
            +
            test_files:
         | 
| 126 97 | 
             
            - spec/cupid/cupid_spec.rb
         |