zuck 1.0.0 → 2.0.0
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.
- checksums.yaml +5 -13
- data/CHANGELOG.markdown +35 -5
- data/Gemfile +3 -2
- data/Gemfile.lock +13 -10
- data/README.markdown +26 -38
- data/VERSION +1 -1
- data/console +8 -2
- data/lib/zuck/facebook/ad_account.rb +22 -5
- data/lib/zuck/facebook/ad_campaign.rb +12 -15
- data/lib/zuck/facebook/ad_creative.rb +14 -14
- data/lib/zuck/facebook/ad_group.rb +12 -12
- data/lib/zuck/facebook/ad_interest.rb +12 -15
- data/lib/zuck/facebook/ad_set.rb +30 -0
- data/lib/zuck/facebook/targeting_spec.rb +4 -4
- data/lib/zuck/fb_object/dsl.rb +15 -7
- data/lib/zuck/fb_object/hash_delegator.rb +20 -3
- data/lib/zuck/fb_object/write.rb +18 -6
- data/lib/zuck/fb_object.rb +1 -1
- data/lib/zuck/helpers.rb +20 -1
- data/spec/fixtures/a_single_account.yml +146 -29
- data/spec/fixtures/a_single_campaign.yml +61 -12
- data/spec/fixtures/a_single_group.yml +65 -12
- data/spec/fixtures/ad_interest_search_disney.yml +16 -14
- data/spec/fixtures/ad_interest_search_moviepilot.yml +15 -98
- data/spec/fixtures/ad_interest_search_nonexistant.yml +7 -5
- data/spec/fixtures/create_ad_campaign.yml +334 -9
- data/spec/fixtures/create_ad_group.yml +154 -9
- data/spec/fixtures/create_ad_set.yml +95 -0
- data/spec/fixtures/delete_ad_group.yml +55 -8
- data/spec/fixtures/find_a_single_group_and_update_it.yml +122 -95
- data/spec/fixtures/list_of_ad_accounts.yml +77 -58
- data/spec/fixtures/list_of_ad_campaigns.yml +77 -55
- data/spec/fixtures/list_of_ad_creatives.yml +61 -13
- data/spec/fixtures/list_of_ad_groups.yml +77 -60
- data/spec/fixtures/list_of_all_ad_creatives_of_account.yml +77 -73
- data/spec/fixtures/reach_for_invalid_interest.yml +29 -111
- data/spec/fixtures/reach_for_valid_keywords.yml +11 -54
- data/spec/fixtures/reach_for_valid_keywords_male_young.yml +11 -60
- data/spec/lib/zuck/facebook/ad_account_spec.rb +1 -1
- data/spec/lib/zuck/facebook/ad_interest_spec.rb +2 -2
- data/spec/lib/zuck/facebook/targeting_spec_spec.rb +13 -21
- data/spec/lib/zuck_spec.rb +34 -23
- data/spec/spec_helper.rb +2 -5
- data/test_access_token +1 -0
- data/zuck.gemspec +15 -9
- metadata +63 -46
    
        data/spec/lib/zuck_spec.rb
    CHANGED
    
    | @@ -8,9 +8,10 @@ describe Zuck::FbObject do | |
| 8 8 |  | 
| 9 9 | 
             
              let(:graph)   { Zuck.graph                                                  }
         | 
| 10 10 | 
             
              let(:account) { Zuck::AdAccount.new(graph,  {id: "act_10150585630710217"})  }
         | 
| 11 | 
            -
              let(:campaign){ Zuck::AdCampaign.new(graph, {id: " | 
| 11 | 
            +
              let(:campaign){ Zuck::AdCampaign.new(graph, {id: "6021499361751"}, account) }
         | 
| 12 12 | 
             
              let(:group)   { Zuck::AdGroup.new(graph,    {id: "6010889169151"}, campaign)}
         | 
| 13 | 
            -
              let(:creative){ Zuck::AdCreative.new(graph, {id: " | 
| 13 | 
            +
              let(:creative){ Zuck::AdCreative.new(graph, {id: "6021396606151"}, group)   }
         | 
| 14 | 
            +
              let(:set)     { Zuck::AdSet.new(graph,      {id: "6021525283751"}, account)   }
         | 
| 14 15 |  | 
| 15 16 |  | 
| 16 17 | 
             
              describe "read only objects" do
         | 
| @@ -38,19 +39,19 @@ describe Zuck::FbObject do | |
| 38 39 |  | 
| 39 40 | 
             
                  it "a list of ad accounts" do
         | 
| 40 41 | 
             
                    VCR.use_cassette('list_of_ad_accounts') do
         | 
| 41 | 
            -
                      Zuck::AdAccount.all.should have( | 
| 42 | 
            +
                      Zuck::AdAccount.all.should have(2).items
         | 
| 42 43 | 
             
                    end
         | 
| 43 44 | 
             
                  end
         | 
| 44 45 |  | 
| 45 46 | 
             
                  it "a list of ad campaigns" do
         | 
| 46 47 | 
             
                    VCR.use_cassette('list_of_ad_campaigns') do
         | 
| 47 | 
            -
                      account.ad_campaigns.should have( | 
| 48 | 
            +
                      account.ad_campaigns.should have(24).items
         | 
| 48 49 | 
             
                    end
         | 
| 49 50 | 
             
                  end
         | 
| 50 51 |  | 
| 51 52 | 
             
                  it "a list of ad groups" do
         | 
| 52 53 | 
             
                    VCR.use_cassette('list_of_ad_groups') do
         | 
| 53 | 
            -
                      campaign.ad_groups.should have( | 
| 54 | 
            +
                      campaign.ad_groups.should have(4).item
         | 
| 54 55 | 
             
                    end
         | 
| 55 56 | 
             
                  end
         | 
| 56 57 |  | 
| @@ -64,7 +65,7 @@ describe Zuck::FbObject do | |
| 64 65 | 
             
                    g = graph
         | 
| 65 66 | 
             
                    Zuck::AdAccount.should_receive(:all).and_return([account])
         | 
| 66 67 | 
             
                    VCR.use_cassette('list_of_all_ad_creatives_of_account') do
         | 
| 67 | 
            -
                      Zuck::AdCreative.all(g).should have( | 
| 68 | 
            +
                      Zuck::AdCreative.all(g).should have(13).items
         | 
| 68 69 | 
             
                    end
         | 
| 69 70 | 
             
                  end
         | 
| 70 71 |  | 
| @@ -72,7 +73,7 @@ describe Zuck::FbObject do | |
| 72 73 |  | 
| 73 74 | 
             
                    it "campaign with the correct type" do
         | 
| 74 75 | 
             
                      VCR.use_cassette('a_single_campaign') do
         | 
| 75 | 
            -
                        c = Zuck::AdCampaign.find( | 
| 76 | 
            +
                        c = Zuck::AdCampaign.find(6021496142951, graph)
         | 
| 76 77 | 
             
                      end
         | 
| 77 78 | 
             
                    end
         | 
| 78 79 |  | 
| @@ -92,7 +93,7 @@ describe Zuck::FbObject do | |
| 92 93 |  | 
| 93 94 | 
             
                    it "and saving it" do
         | 
| 94 95 | 
             
                      VCR.use_cassette('find_a_single_group_and_update_it') do
         | 
| 95 | 
            -
                        group = Zuck::AdGroup.find( | 
| 96 | 
            +
                        group = Zuck::AdGroup.find(6021525861551, graph)
         | 
| 96 97 | 
             
                        group.name = "My old name"
         | 
| 97 98 | 
             
                        group.save
         | 
| 98 99 | 
             
                        group.name.should == "My old name"
         | 
| @@ -109,9 +110,23 @@ describe Zuck::FbObject do | |
| 109 110 |  | 
| 110 111 |  | 
| 111 112 | 
             
                context "creating" do
         | 
| 113 | 
            +
                  it "an ad set" do
         | 
| 114 | 
            +
                    VCR.use_cassette('create_ad_set') do
         | 
| 115 | 
            +
                      o = {
         | 
| 116 | 
            +
                        name: 'test ad set',
         | 
| 117 | 
            +
                        campaign_status: 'PAUSED',
         | 
| 118 | 
            +
                        daily_budget: 100,
         | 
| 119 | 
            +
                        targeting: "{'geo_locations':{'countries':['US','GB']}}",
         | 
| 120 | 
            +
                        campaign_group_id: campaign.id
         | 
| 121 | 
            +
                      }
         | 
| 122 | 
            +
                      ad_set = Zuck::AdSet.create(graph, o, account)
         | 
| 123 | 
            +
                      ad_set.name.should == 'test ad set'
         | 
| 124 | 
            +
                    end
         | 
| 125 | 
            +
                  end
         | 
| 126 | 
            +
             | 
| 112 127 | 
             
                  it "an ad campaign" do
         | 
| 113 128 | 
             
                    VCR.use_cassette('create_ad_campaign') do
         | 
| 114 | 
            -
                      o = { | 
| 129 | 
            +
                      o = {objective: 'NONE', name: "bloody", campaign_group_status: 'PAUSED' }
         | 
| 115 130 | 
             
                      campaign = Zuck::AdCampaign.create(graph, o, account)
         | 
| 116 131 | 
             
                      campaign.name.should == "bloody"
         | 
| 117 132 | 
             
                    end
         | 
| @@ -125,23 +140,19 @@ describe Zuck::FbObject do | |
| 125 140 | 
             
                    end
         | 
| 126 141 | 
             
                  end
         | 
| 127 142 |  | 
| 128 | 
            -
                  it "an ad group" do
         | 
| 129 | 
            -
                    VCR.use_cassette('create_ad_group') do
         | 
| 130 | 
            -
                      o = {bid_type: 'CPC', max_bid: 1, name: "Rap like me", targeting: '{"countries":["US"]}',
         | 
| 131 | 
            -
                           creative: '{"type":25,"action_spec":{"action.type":"like", "post":10150420410887685}}'}
         | 
| 132 | 
            -
                      group = Zuck::AdGroup.create(graph, o, campaign)
         | 
| 133 | 
            -
                      group.name.should == "Rap like me"
         | 
| 134 | 
            -
                    end
         | 
| 135 | 
            -
                  end
         | 
| 136 | 
            -
             | 
| 137 143 | 
             
                  it "an ad group via an existing ad campaign" do
         | 
| 138 144 | 
             
                    VCR.use_cassette('create_ad_group') do
         | 
| 139 | 
            -
                      o = { | 
| 140 | 
            -
             | 
| 141 | 
            -
             | 
| 145 | 
            +
                      o = {
         | 
| 146 | 
            +
                        bid_type: 'CPC',
         | 
| 147 | 
            +
                        bid_info: '{"CLICKS": 1}',
         | 
| 148 | 
            +
                        name: "Rap like me",
         | 
| 149 | 
            +
                        targeting: '{"geo_locations": {"countries":["US"]}}',
         | 
| 150 | 
            +
                        objective: 'WEBSITE_CLICKS',
         | 
| 151 | 
            +
                        creative: '{"creative_id": "6021396606151"}'
         | 
| 152 | 
            +
                      }
         | 
| 153 | 
            +
                      group = set.create_ad_group(o)
         | 
| 142 154 | 
             
                      group.name.should == "Rap like me"
         | 
| 143 | 
            -
                       | 
| 144 | 
            -
                      group.bid_type.should == 1
         | 
| 155 | 
            +
                      group.bid_type.should == 'CPC'
         | 
| 145 156 | 
             
                    end
         | 
| 146 157 | 
             
                  end
         | 
| 147 158 | 
             
                end
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -3,6 +3,7 @@ require 'simplecov' | |
| 3 3 | 
             
            SimpleCov.start
         | 
| 4 4 | 
             
            require 'bundler'
         | 
| 5 5 | 
             
            Bundler.require
         | 
| 6 | 
            +
            require 'pry'
         | 
| 6 7 |  | 
| 7 8 | 
             
            # This file is copied to spec/ when you run 'rails generate rspec:install'
         | 
| 8 9 | 
             
            ENV["RAILS_ENV"] ||= 'test'
         | 
| @@ -39,12 +40,8 @@ module TestResponseExtensions | |
| 39 40 | 
             
              end
         | 
| 40 41 | 
             
            end
         | 
| 41 42 |  | 
| 42 | 
            -
            def expect_id_and_return(id, ret_val)
         | 
| 43 | 
            -
              lambda { |id| id.to_s.should == id.to_s; ret_val }
         | 
| 44 | 
            -
            end
         | 
| 45 | 
            -
             | 
| 46 43 | 
             
            def test_access_token
         | 
| 47 | 
            -
               | 
| 44 | 
            +
              @test_access_token ||= File.read("test_access_token")
         | 
| 48 45 | 
             
            end
         | 
| 49 46 |  | 
| 50 47 | 
             
            require File.expand_path("../../lib/zuck", __FILE__)
         | 
    
        data/test_access_token
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            CAAEvJ5vzhl8BAICOwypV5nYnYWXhBq1eskHA7rKyrz9fXcAvKRXDWVZAaG7FpQ21qTXeCtGZCR7iu1dtZCqZCZBZCQbefKrMOnZAibDZAiQKiX0s22PgtKuCoQK4LDVimREnqkGdoLMyB4zgT3A6ZAU7pn6wc2mTzZBWVbkr71bZBJKjhyeb4V58TkMsUbN9SQer3ZCRRtWTxqNFTUwHuv51RoVsI7LNw0mCr5gZD
         | 
    
        data/zuck.gemspec
    CHANGED
    
    | @@ -2,16 +2,16 @@ | |
| 2 2 | 
             
            # DO NOT EDIT THIS FILE DIRECTLY
         | 
| 3 3 | 
             
            # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
         | 
| 4 4 | 
             
            # -*- encoding: utf-8 -*-
         | 
| 5 | 
            -
            # stub: zuck  | 
| 5 | 
            +
            # stub: zuck 2.0.0 ruby lib
         | 
| 6 6 |  | 
| 7 7 | 
             
            Gem::Specification.new do |s|
         | 
| 8 8 | 
             
              s.name = "zuck"
         | 
| 9 | 
            -
              s.version = " | 
| 9 | 
            +
              s.version = "2.0.0"
         | 
| 10 10 |  | 
| 11 11 | 
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         | 
| 12 12 | 
             
              s.require_paths = ["lib"]
         | 
| 13 13 | 
             
              s.authors = ["Jannis Hermanns"]
         | 
| 14 | 
            -
              s.date = " | 
| 14 | 
            +
              s.date = "2015-01-09"
         | 
| 15 15 | 
             
              s.description = "This gem allows to easily access facebook's ads api in ruby. See https://developers.facebook.com/docs/reference/ads-api/"
         | 
| 16 16 | 
             
              s.email = "jannis@gmail.com"
         | 
| 17 17 | 
             
              s.extra_rdoc_files = [
         | 
| @@ -37,6 +37,7 @@ Gem::Specification.new do |s| | |
| 37 37 | 
             
                "lib/zuck/facebook/ad_creative.rb",
         | 
| 38 38 | 
             
                "lib/zuck/facebook/ad_group.rb",
         | 
| 39 39 | 
             
                "lib/zuck/facebook/ad_interest.rb",
         | 
| 40 | 
            +
                "lib/zuck/facebook/ad_set.rb",
         | 
| 40 41 | 
             
                "lib/zuck/facebook/targeting_spec.rb",
         | 
| 41 42 | 
             
                "lib/zuck/fb_object.rb",
         | 
| 42 43 | 
             
                "lib/zuck/fb_object/dsl.rb",
         | 
| @@ -56,6 +57,7 @@ Gem::Specification.new do |s| | |
| 56 57 | 
             
                "spec/fixtures/ad_interest_search_nonexistant.yml",
         | 
| 57 58 | 
             
                "spec/fixtures/create_ad_campaign.yml",
         | 
| 58 59 | 
             
                "spec/fixtures/create_ad_group.yml",
         | 
| 60 | 
            +
                "spec/fixtures/create_ad_set.yml",
         | 
| 59 61 | 
             
                "spec/fixtures/delete_ad_group.yml",
         | 
| 60 62 | 
             
                "spec/fixtures/find_a_single_group_and_update_it.yml",
         | 
| 61 63 | 
             
                "spec/fixtures/list_of_ad_accounts.yml",
         | 
| @@ -76,6 +78,7 @@ Gem::Specification.new do |s| | |
| 76 78 | 
             
                "spec/lib/zuck_spec.rb",
         | 
| 77 79 | 
             
                "spec/spec_helper.rb",
         | 
| 78 80 | 
             
                "spec/vcr_setup.rb",
         | 
| 81 | 
            +
                "test_access_token",
         | 
| 79 82 | 
             
                "zuck.gemspec"
         | 
| 80 83 | 
             
              ]
         | 
| 81 84 | 
             
              s.homepage = "http://github.com/jayniz/zuck"
         | 
| @@ -89,7 +92,7 @@ Gem::Specification.new do |s| | |
| 89 92 | 
             
                if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
         | 
| 90 93 | 
             
                  s.add_runtime_dependency(%q<rvm>, [">= 0"])
         | 
| 91 94 | 
             
                  s.add_runtime_dependency(%q<bundler>, [">= 0"])
         | 
| 92 | 
            -
                  s.add_runtime_dependency(%q<koala>, [" | 
| 95 | 
            +
                  s.add_runtime_dependency(%q<koala>, [">= 0"])
         | 
| 93 96 | 
             
                  s.add_runtime_dependency(%q<activesupport>, [">= 0"])
         | 
| 94 97 | 
             
                  s.add_development_dependency(%q<shoulda>, ["~> 3.3.2"])
         | 
| 95 98 | 
             
                  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
         | 
| @@ -98,7 +101,8 @@ Gem::Specification.new do |s| | |
| 98 101 | 
             
                  s.add_development_dependency(%q<webmock>, ["~> 1.8.0"])
         | 
| 99 102 | 
             
                  s.add_development_dependency(%q<rspec>, [">= 0"])
         | 
| 100 103 | 
             
                  s.add_development_dependency(%q<vcr>, [">= 0"])
         | 
| 101 | 
            -
                  s.add_development_dependency(%q< | 
| 104 | 
            +
                  s.add_development_dependency(%q<pry>, [">= 0"])
         | 
| 105 | 
            +
                  s.add_development_dependency(%q<guard-ctags-bundler>, [">= 0"])
         | 
| 102 106 | 
             
                  s.add_development_dependency(%q<guard-rspec>, [">= 0"])
         | 
| 103 107 | 
             
                  s.add_development_dependency(%q<guard-bundler>, [">= 0"])
         | 
| 104 108 | 
             
                  s.add_development_dependency(%q<guard-yard>, [">= 0"])
         | 
| @@ -108,7 +112,7 @@ Gem::Specification.new do |s| | |
| 108 112 | 
             
                else
         | 
| 109 113 | 
             
                  s.add_dependency(%q<rvm>, [">= 0"])
         | 
| 110 114 | 
             
                  s.add_dependency(%q<bundler>, [">= 0"])
         | 
| 111 | 
            -
                  s.add_dependency(%q<koala>, [" | 
| 115 | 
            +
                  s.add_dependency(%q<koala>, [">= 0"])
         | 
| 112 116 | 
             
                  s.add_dependency(%q<activesupport>, [">= 0"])
         | 
| 113 117 | 
             
                  s.add_dependency(%q<shoulda>, ["~> 3.3.2"])
         | 
| 114 118 | 
             
                  s.add_dependency(%q<rdoc>, ["~> 3.12"])
         | 
| @@ -117,7 +121,8 @@ Gem::Specification.new do |s| | |
| 117 121 | 
             
                  s.add_dependency(%q<webmock>, ["~> 1.8.0"])
         | 
| 118 122 | 
             
                  s.add_dependency(%q<rspec>, [">= 0"])
         | 
| 119 123 | 
             
                  s.add_dependency(%q<vcr>, [">= 0"])
         | 
| 120 | 
            -
                  s.add_dependency(%q< | 
| 124 | 
            +
                  s.add_dependency(%q<pry>, [">= 0"])
         | 
| 125 | 
            +
                  s.add_dependency(%q<guard-ctags-bundler>, [">= 0"])
         | 
| 121 126 | 
             
                  s.add_dependency(%q<guard-rspec>, [">= 0"])
         | 
| 122 127 | 
             
                  s.add_dependency(%q<guard-bundler>, [">= 0"])
         | 
| 123 128 | 
             
                  s.add_dependency(%q<guard-yard>, [">= 0"])
         | 
| @@ -128,7 +133,7 @@ Gem::Specification.new do |s| | |
| 128 133 | 
             
              else
         | 
| 129 134 | 
             
                s.add_dependency(%q<rvm>, [">= 0"])
         | 
| 130 135 | 
             
                s.add_dependency(%q<bundler>, [">= 0"])
         | 
| 131 | 
            -
                s.add_dependency(%q<koala>, [" | 
| 136 | 
            +
                s.add_dependency(%q<koala>, [">= 0"])
         | 
| 132 137 | 
             
                s.add_dependency(%q<activesupport>, [">= 0"])
         | 
| 133 138 | 
             
                s.add_dependency(%q<shoulda>, ["~> 3.3.2"])
         | 
| 134 139 | 
             
                s.add_dependency(%q<rdoc>, ["~> 3.12"])
         | 
| @@ -137,7 +142,8 @@ Gem::Specification.new do |s| | |
| 137 142 | 
             
                s.add_dependency(%q<webmock>, ["~> 1.8.0"])
         | 
| 138 143 | 
             
                s.add_dependency(%q<rspec>, [">= 0"])
         | 
| 139 144 | 
             
                s.add_dependency(%q<vcr>, [">= 0"])
         | 
| 140 | 
            -
                s.add_dependency(%q< | 
| 145 | 
            +
                s.add_dependency(%q<pry>, [">= 0"])
         | 
| 146 | 
            +
                s.add_dependency(%q<guard-ctags-bundler>, [">= 0"])
         | 
| 141 147 | 
             
                s.add_dependency(%q<guard-rspec>, [">= 0"])
         | 
| 142 148 | 
             
                s.add_dependency(%q<guard-bundler>, [">= 0"])
         | 
| 143 149 | 
             
                s.add_dependency(%q<guard-yard>, [">= 0"])
         | 
    
        metadata
    CHANGED
    
    | @@ -1,265 +1,279 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: zuck
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 4 | 
            +
              version: 2.0.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Jannis Hermanns
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2015-01-09 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rvm
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 | 
            -
                - -  | 
| 17 | 
            +
                - - ">="
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 19 | 
             
                    version: '0'
         | 
| 20 20 | 
             
              type: :runtime
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 | 
            -
                - -  | 
| 24 | 
            +
                - - ">="
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 26 | 
             
                    version: '0'
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: bundler
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                requirements:
         | 
| 31 | 
            -
                - -  | 
| 31 | 
            +
                - - ">="
         | 
| 32 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 33 | 
             
                    version: '0'
         | 
| 34 34 | 
             
              type: :runtime
         | 
| 35 35 | 
             
              prerelease: false
         | 
| 36 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 37 | 
             
                requirements:
         | 
| 38 | 
            -
                - -  | 
| 38 | 
            +
                - - ">="
         | 
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 40 | 
             
                    version: '0'
         | 
| 41 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 42 | 
             
              name: koala
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 44 | 
             
                requirements:
         | 
| 45 | 
            -
                - -  | 
| 45 | 
            +
                - - ">="
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version:  | 
| 47 | 
            +
                    version: '0'
         | 
| 48 48 | 
             
              type: :runtime
         | 
| 49 49 | 
             
              prerelease: false
         | 
| 50 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 | 
            -
                - -  | 
| 52 | 
            +
                - - ">="
         | 
| 53 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version:  | 
| 54 | 
            +
                    version: '0'
         | 
| 55 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 56 | 
             
              name: activesupport
         | 
| 57 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 58 | 
             
                requirements:
         | 
| 59 | 
            -
                - -  | 
| 59 | 
            +
                - - ">="
         | 
| 60 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 61 | 
             
                    version: '0'
         | 
| 62 62 | 
             
              type: :runtime
         | 
| 63 63 | 
             
              prerelease: false
         | 
| 64 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 65 | 
             
                requirements:
         | 
| 66 | 
            -
                - -  | 
| 66 | 
            +
                - - ">="
         | 
| 67 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 68 68 | 
             
                    version: '0'
         | 
| 69 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 70 70 | 
             
              name: shoulda
         | 
| 71 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 72 | 
             
                requirements:
         | 
| 73 | 
            -
                - - ~>
         | 
| 73 | 
            +
                - - "~>"
         | 
| 74 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| 75 75 | 
             
                    version: 3.3.2
         | 
| 76 76 | 
             
              type: :development
         | 
| 77 77 | 
             
              prerelease: false
         | 
| 78 78 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 79 | 
             
                requirements:
         | 
| 80 | 
            -
                - - ~>
         | 
| 80 | 
            +
                - - "~>"
         | 
| 81 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 82 82 | 
             
                    version: 3.3.2
         | 
| 83 83 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 84 84 | 
             
              name: rdoc
         | 
| 85 85 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 86 86 | 
             
                requirements:
         | 
| 87 | 
            -
                - - ~>
         | 
| 87 | 
            +
                - - "~>"
         | 
| 88 88 | 
             
                  - !ruby/object:Gem::Version
         | 
| 89 89 | 
             
                    version: '3.12'
         | 
| 90 90 | 
             
              type: :development
         | 
| 91 91 | 
             
              prerelease: false
         | 
| 92 92 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 93 93 | 
             
                requirements:
         | 
| 94 | 
            -
                - - ~>
         | 
| 94 | 
            +
                - - "~>"
         | 
| 95 95 | 
             
                  - !ruby/object:Gem::Version
         | 
| 96 96 | 
             
                    version: '3.12'
         | 
| 97 97 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 98 98 | 
             
              name: jeweler
         | 
| 99 99 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 100 100 | 
             
                requirements:
         | 
| 101 | 
            -
                - - ~>
         | 
| 101 | 
            +
                - - "~>"
         | 
| 102 102 | 
             
                  - !ruby/object:Gem::Version
         | 
| 103 103 | 
             
                    version: 2.0.1
         | 
| 104 104 | 
             
              type: :development
         | 
| 105 105 | 
             
              prerelease: false
         | 
| 106 106 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 107 107 | 
             
                requirements:
         | 
| 108 | 
            -
                - - ~>
         | 
| 108 | 
            +
                - - "~>"
         | 
| 109 109 | 
             
                  - !ruby/object:Gem::Version
         | 
| 110 110 | 
             
                    version: 2.0.1
         | 
| 111 111 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 112 112 | 
             
              name: simplecov
         | 
| 113 113 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 114 114 | 
             
                requirements:
         | 
| 115 | 
            -
                - - ~>
         | 
| 115 | 
            +
                - - "~>"
         | 
| 116 116 | 
             
                  - !ruby/object:Gem::Version
         | 
| 117 117 | 
             
                    version: 0.7.1
         | 
| 118 118 | 
             
              type: :development
         | 
| 119 119 | 
             
              prerelease: false
         | 
| 120 120 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 121 121 | 
             
                requirements:
         | 
| 122 | 
            -
                - - ~>
         | 
| 122 | 
            +
                - - "~>"
         | 
| 123 123 | 
             
                  - !ruby/object:Gem::Version
         | 
| 124 124 | 
             
                    version: 0.7.1
         | 
| 125 125 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 126 126 | 
             
              name: webmock
         | 
| 127 127 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 128 128 | 
             
                requirements:
         | 
| 129 | 
            -
                - - ~>
         | 
| 129 | 
            +
                - - "~>"
         | 
| 130 130 | 
             
                  - !ruby/object:Gem::Version
         | 
| 131 131 | 
             
                    version: 1.8.0
         | 
| 132 132 | 
             
              type: :development
         | 
| 133 133 | 
             
              prerelease: false
         | 
| 134 134 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 135 135 | 
             
                requirements:
         | 
| 136 | 
            -
                - - ~>
         | 
| 136 | 
            +
                - - "~>"
         | 
| 137 137 | 
             
                  - !ruby/object:Gem::Version
         | 
| 138 138 | 
             
                    version: 1.8.0
         | 
| 139 139 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 140 140 | 
             
              name: rspec
         | 
| 141 141 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 142 142 | 
             
                requirements:
         | 
| 143 | 
            -
                - -  | 
| 143 | 
            +
                - - ">="
         | 
| 144 144 | 
             
                  - !ruby/object:Gem::Version
         | 
| 145 145 | 
             
                    version: '0'
         | 
| 146 146 | 
             
              type: :development
         | 
| 147 147 | 
             
              prerelease: false
         | 
| 148 148 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 149 149 | 
             
                requirements:
         | 
| 150 | 
            -
                - -  | 
| 150 | 
            +
                - - ">="
         | 
| 151 151 | 
             
                  - !ruby/object:Gem::Version
         | 
| 152 152 | 
             
                    version: '0'
         | 
| 153 153 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 154 154 | 
             
              name: vcr
         | 
| 155 155 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 156 156 | 
             
                requirements:
         | 
| 157 | 
            -
                - -  | 
| 157 | 
            +
                - - ">="
         | 
| 158 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 159 | 
            +
                    version: '0'
         | 
| 160 | 
            +
              type: :development
         | 
| 161 | 
            +
              prerelease: false
         | 
| 162 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 163 | 
            +
                requirements:
         | 
| 164 | 
            +
                - - ">="
         | 
| 165 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 166 | 
            +
                    version: '0'
         | 
| 167 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 168 | 
            +
              name: pry
         | 
| 169 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 170 | 
            +
                requirements:
         | 
| 171 | 
            +
                - - ">="
         | 
| 158 172 | 
             
                  - !ruby/object:Gem::Version
         | 
| 159 173 | 
             
                    version: '0'
         | 
| 160 174 | 
             
              type: :development
         | 
| 161 175 | 
             
              prerelease: false
         | 
| 162 176 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 163 177 | 
             
                requirements:
         | 
| 164 | 
            -
                - -  | 
| 178 | 
            +
                - - ">="
         | 
| 165 179 | 
             
                  - !ruby/object:Gem::Version
         | 
| 166 180 | 
             
                    version: '0'
         | 
| 167 181 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 168 | 
            -
              name: guard
         | 
| 182 | 
            +
              name: guard-ctags-bundler
         | 
| 169 183 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 170 184 | 
             
                requirements:
         | 
| 171 | 
            -
                - -  | 
| 185 | 
            +
                - - ">="
         | 
| 172 186 | 
             
                  - !ruby/object:Gem::Version
         | 
| 173 187 | 
             
                    version: '0'
         | 
| 174 188 | 
             
              type: :development
         | 
| 175 189 | 
             
              prerelease: false
         | 
| 176 190 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 177 191 | 
             
                requirements:
         | 
| 178 | 
            -
                - -  | 
| 192 | 
            +
                - - ">="
         | 
| 179 193 | 
             
                  - !ruby/object:Gem::Version
         | 
| 180 194 | 
             
                    version: '0'
         | 
| 181 195 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 182 196 | 
             
              name: guard-rspec
         | 
| 183 197 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 184 198 | 
             
                requirements:
         | 
| 185 | 
            -
                - -  | 
| 199 | 
            +
                - - ">="
         | 
| 186 200 | 
             
                  - !ruby/object:Gem::Version
         | 
| 187 201 | 
             
                    version: '0'
         | 
| 188 202 | 
             
              type: :development
         | 
| 189 203 | 
             
              prerelease: false
         | 
| 190 204 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 191 205 | 
             
                requirements:
         | 
| 192 | 
            -
                - -  | 
| 206 | 
            +
                - - ">="
         | 
| 193 207 | 
             
                  - !ruby/object:Gem::Version
         | 
| 194 208 | 
             
                    version: '0'
         | 
| 195 209 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 196 210 | 
             
              name: guard-bundler
         | 
| 197 211 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 198 212 | 
             
                requirements:
         | 
| 199 | 
            -
                - -  | 
| 213 | 
            +
                - - ">="
         | 
| 200 214 | 
             
                  - !ruby/object:Gem::Version
         | 
| 201 215 | 
             
                    version: '0'
         | 
| 202 216 | 
             
              type: :development
         | 
| 203 217 | 
             
              prerelease: false
         | 
| 204 218 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 205 219 | 
             
                requirements:
         | 
| 206 | 
            -
                - -  | 
| 220 | 
            +
                - - ">="
         | 
| 207 221 | 
             
                  - !ruby/object:Gem::Version
         | 
| 208 222 | 
             
                    version: '0'
         | 
| 209 223 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 210 224 | 
             
              name: guard-yard
         | 
| 211 225 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 212 226 | 
             
                requirements:
         | 
| 213 | 
            -
                - -  | 
| 227 | 
            +
                - - ">="
         | 
| 214 228 | 
             
                  - !ruby/object:Gem::Version
         | 
| 215 229 | 
             
                    version: '0'
         | 
| 216 230 | 
             
              type: :development
         | 
| 217 231 | 
             
              prerelease: false
         | 
| 218 232 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 219 233 | 
             
                requirements:
         | 
| 220 | 
            -
                - -  | 
| 234 | 
            +
                - - ">="
         | 
| 221 235 | 
             
                  - !ruby/object:Gem::Version
         | 
| 222 236 | 
             
                    version: '0'
         | 
| 223 237 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 224 238 | 
             
              name: growl
         | 
| 225 239 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 226 240 | 
             
                requirements:
         | 
| 227 | 
            -
                - -  | 
| 241 | 
            +
                - - ">="
         | 
| 228 242 | 
             
                  - !ruby/object:Gem::Version
         | 
| 229 243 | 
             
                    version: '0'
         | 
| 230 244 | 
             
              type: :development
         | 
| 231 245 | 
             
              prerelease: false
         | 
| 232 246 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 233 247 | 
             
                requirements:
         | 
| 234 | 
            -
                - -  | 
| 248 | 
            +
                - - ">="
         | 
| 235 249 | 
             
                  - !ruby/object:Gem::Version
         | 
| 236 250 | 
             
                    version: '0'
         | 
| 237 251 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 238 252 | 
             
              name: redcarpet
         | 
| 239 253 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 240 254 | 
             
                requirements:
         | 
| 241 | 
            -
                - -  | 
| 255 | 
            +
                - - ">="
         | 
| 242 256 | 
             
                  - !ruby/object:Gem::Version
         | 
| 243 257 | 
             
                    version: '0'
         | 
| 244 258 | 
             
              type: :development
         | 
| 245 259 | 
             
              prerelease: false
         | 
| 246 260 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 247 261 | 
             
                requirements:
         | 
| 248 | 
            -
                - -  | 
| 262 | 
            +
                - - ">="
         | 
| 249 263 | 
             
                  - !ruby/object:Gem::Version
         | 
| 250 264 | 
             
                    version: '0'
         | 
| 251 265 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 252 266 | 
             
              name: rb-fsevent
         | 
| 253 267 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 254 268 | 
             
                requirements:
         | 
| 255 | 
            -
                - -  | 
| 269 | 
            +
                - - ">="
         | 
| 256 270 | 
             
                  - !ruby/object:Gem::Version
         | 
| 257 271 | 
             
                    version: '0'
         | 
| 258 272 | 
             
              type: :development
         | 
| 259 273 | 
             
              prerelease: false
         | 
| 260 274 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 261 275 | 
             
                requirements:
         | 
| 262 | 
            -
                - -  | 
| 276 | 
            +
                - - ">="
         | 
| 263 277 | 
             
                  - !ruby/object:Gem::Version
         | 
| 264 278 | 
             
                    version: '0'
         | 
| 265 279 | 
             
            description: This gem allows to easily access facebook's ads api in ruby. See https://developers.facebook.com/docs/reference/ads-api/
         | 
| @@ -270,9 +284,9 @@ extra_rdoc_files: | |
| 270 284 | 
             
            - LICENSE.txt
         | 
| 271 285 | 
             
            - README.markdown
         | 
| 272 286 | 
             
            files:
         | 
| 273 | 
            -
            - .rvmrc
         | 
| 274 | 
            -
            - .travis.yml
         | 
| 275 | 
            -
            - .yardopts
         | 
| 287 | 
            +
            - ".rvmrc"
         | 
| 288 | 
            +
            - ".travis.yml"
         | 
| 289 | 
            +
            - ".yardopts"
         | 
| 276 290 | 
             
            - CHANGELOG.markdown
         | 
| 277 291 | 
             
            - Gemfile
         | 
| 278 292 | 
             
            - Gemfile.lock
         | 
| @@ -288,6 +302,7 @@ files: | |
| 288 302 | 
             
            - lib/zuck/facebook/ad_creative.rb
         | 
| 289 303 | 
             
            - lib/zuck/facebook/ad_group.rb
         | 
| 290 304 | 
             
            - lib/zuck/facebook/ad_interest.rb
         | 
| 305 | 
            +
            - lib/zuck/facebook/ad_set.rb
         | 
| 291 306 | 
             
            - lib/zuck/facebook/targeting_spec.rb
         | 
| 292 307 | 
             
            - lib/zuck/fb_object.rb
         | 
| 293 308 | 
             
            - lib/zuck/fb_object/dsl.rb
         | 
| @@ -307,6 +322,7 @@ files: | |
| 307 322 | 
             
            - spec/fixtures/ad_interest_search_nonexistant.yml
         | 
| 308 323 | 
             
            - spec/fixtures/create_ad_campaign.yml
         | 
| 309 324 | 
             
            - spec/fixtures/create_ad_group.yml
         | 
| 325 | 
            +
            - spec/fixtures/create_ad_set.yml
         | 
| 310 326 | 
             
            - spec/fixtures/delete_ad_group.yml
         | 
| 311 327 | 
             
            - spec/fixtures/find_a_single_group_and_update_it.yml
         | 
| 312 328 | 
             
            - spec/fixtures/list_of_ad_accounts.yml
         | 
| @@ -327,6 +343,7 @@ files: | |
| 327 343 | 
             
            - spec/lib/zuck_spec.rb
         | 
| 328 344 | 
             
            - spec/spec_helper.rb
         | 
| 329 345 | 
             
            - spec/vcr_setup.rb
         | 
| 346 | 
            +
            - test_access_token
         | 
| 330 347 | 
             
            - zuck.gemspec
         | 
| 331 348 | 
             
            homepage: http://github.com/jayniz/zuck
         | 
| 332 349 | 
             
            licenses:
         | 
| @@ -338,12 +355,12 @@ require_paths: | |
| 338 355 | 
             
            - lib
         | 
| 339 356 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 340 357 | 
             
              requirements:
         | 
| 341 | 
            -
              - -  | 
| 358 | 
            +
              - - ">="
         | 
| 342 359 | 
             
                - !ruby/object:Gem::Version
         | 
| 343 360 | 
             
                  version: '0'
         | 
| 344 361 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 345 362 | 
             
              requirements:
         | 
| 346 | 
            -
              - -  | 
| 363 | 
            +
              - - ">="
         | 
| 347 364 | 
             
                - !ruby/object:Gem::Version
         | 
| 348 365 | 
             
                  version: '0'
         | 
| 349 366 | 
             
            requirements: []
         |