yandex_direct 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dee574dff6487e3ee0a4b8bf331573c95c2ffdf9d169ba83b768eebd5306d9c4
4
- data.tar.gz: 8f1398e376e0d4d2659ee5695ea5bd0439ee940eb50c205441c381a7e50a61a3
3
+ metadata.gz: 14b05d58fb32619a11756ddac6466ba4bafff4d35cb6fe3d451f62737829cbcc
4
+ data.tar.gz: 7fbfed575a3fb120c1997c7959f34442f504a21f2dc5e08f16e11acf693a47e4
5
5
  SHA512:
6
- metadata.gz: 817a556108c46e85385e116e38e41ff509b7f44affeb345a4eb0f51b067cd7f65d6ad95e5e3c05825dc3c6d093fc5f3770e6e2c9c78f464e6b7bd75b1265a3ce
7
- data.tar.gz: 0752b067ba1cdec46b5ab8dcc7811bcdff3943c263a1fcda3d5de3a1e4267a9cfc42d5e6419d37c80ce285a240b181db56ec49bf07fed5b7fee19c3aa8b8a48b
6
+ metadata.gz: b946381b1e6e8b6210635e810d4fbcb59aa85cd5254e1dd32856dd2b8655d3f1b8a843a55ba8ed0c3f82b9892b1fb760508d78f41c1b42444fc9b1eee2af6b3b
7
+ data.tar.gz: e004ee719582415003dd9b6c6afc00d16bea3c0259706c9e75f14adeb090a559f14957b32a71b192395399cdc557c326b98acd6c5dff9094afdd83b88fe23cba
data/.rubocop.yml CHANGED
@@ -4,6 +4,10 @@ AllCops:
4
4
  Metrics/AbcSize:
5
5
  Max: 23
6
6
 
7
+ Metrics/BlockLength:
8
+ Exclude:
9
+ - "**/*_spec.rb"
10
+
7
11
  Metrics/LineLength:
8
12
  Max: 195
9
13
 
data/.travis.yml CHANGED
@@ -3,3 +3,9 @@ language: ruby
3
3
  rvm:
4
4
  - 2.5.0
5
5
  before_install: gem install bundler -v 1.16.1
6
+ before_script:
7
+ - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
8
+ - chmod +x ./cc-test-reporter
9
+ - ./cc-test-reporter before-build
10
+ after_script:
11
+ - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
data/Gemfile CHANGED
@@ -8,5 +8,8 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
8
8
  gemspec
9
9
 
10
10
  group :test do
11
- gem 'rubocop', '~> 0.54.0', require: false
11
+ gem 'rspec', '~> 3.7'
12
+ gem 'rubocop', '~> 0.54.0'
13
+ gem 'simplecov', '~> 0.16.1'
14
+ gem 'webmock', '~> 3.3'
12
15
  end
data/README.md CHANGED
@@ -1,4 +1,9 @@
1
- # YandexDirect
1
+ # The Yandex.Direct Ruby Gem
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/yandex_direct.svg)](https://badge.fury.io/rb/yandex_direct)
4
+ [![Build Status](https://travis-ci.org/radanisk/yandex_direct.svg?branch=master)](https://travis-ci.org/radanisk/yandex_direct)
5
+ [![Maintainability](https://api.codeclimate.com/v1/badges/4cdc27846467bc400f5a/maintainability)](https://codeclimate.com/github/radanisk/yandex_direct/maintainability)
6
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/4cdc27846467bc400f5a/test_coverage)](https://codeclimate.com/github/radanisk/yandex_direct/test_coverage)
2
7
 
3
8
  A Ruby interface to the Yandex Direct API.
4
9
 
data/lib/yandex_direct.rb CHANGED
@@ -5,27 +5,13 @@ require 'yandex_direct/authorization_error'
5
5
  require 'yandex_direct/error'
6
6
  require 'yandex_direct/not_enough_units_error'
7
7
  require 'yandex_direct/blank_data_error'
8
+ require 'yandex_direct/v5/api'
8
9
  require 'yandex_direct/v5/request'
9
- require 'yandex_direct/v5/ads'
10
- require 'yandex_direct/v5/ad_groups'
11
- require 'yandex_direct/v5/ad_images'
12
- require 'yandex_direct/v5/campaigns'
13
- require 'yandex_direct/v5/dictionaries'
14
- require 'yandex_direct/v5/keywords'
15
- require 'yandex_direct/v5/sitelinks'
16
- require 'yandex_direct/v5/v_cards'
17
10
  require 'yandex_direct/version'
18
11
 
19
12
  module YandexDirect
20
13
  class Client
21
- include YandexDirect::V5::Ads
22
- include YandexDirect::V5::AdGroups
23
- include YandexDirect::V5::AdImages
24
- include YandexDirect::V5::Campaigns
25
- include YandexDirect::V5::Dictionaries
26
- include YandexDirect::V5::Keywords
27
- include YandexDirect::V5::Sitelinks
28
- include YandexDirect::V5::VCards
14
+ include YandexDirect::V5::API
29
15
 
30
16
  attr_accessor :token, :login, :test, :app_id
31
17
  attr_reader :available_units
@@ -77,12 +63,6 @@ module YandexDirect
77
63
  request_live('GetBannersTags', param)
78
64
  end
79
65
 
80
- def regions
81
- request('GetRegions')['data'].map do |region_data|
82
- YandexDirect::RegionInfo.new(region_data)
83
- end
84
- end
85
-
86
66
  def ping_api
87
67
  request('PingAPI')
88
68
  end
@@ -111,14 +91,4 @@ module YandexDirect
111
91
  request_v4(@url_live, method, param)
112
92
  end
113
93
  end
114
-
115
- class RegionInfo
116
- attr_reader :region_id, :parent_id, :region_name
117
-
118
- def initialize(attrs)
119
- @region_id = attrs['RegionID']
120
- @parent_id = attrs['ParentID']
121
- @region_name = attrs['RegionName']
122
- end
123
- end
124
94
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module YandexDirect
4
+ class GeoRegionsItem
5
+ attr_reader :geo_region_id, :parent_id, :geo_region_name
6
+
7
+ def initialize(attrs)
8
+ @geo_region_id = attrs['GeoRegionId']
9
+ @parent_id = attrs['ParentId']
10
+ @geo_region_name = attrs['GeoRegionName']
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'yandex_direct/v5/ads'
4
+ require 'yandex_direct/v5/ad_groups'
5
+ require 'yandex_direct/v5/ad_images'
6
+ require 'yandex_direct/v5/campaigns'
7
+ require 'yandex_direct/v5/dictionaries'
8
+ require 'yandex_direct/v5/keywords'
9
+ require 'yandex_direct/v5/sitelinks'
10
+ require 'yandex_direct/v5/v_cards'
11
+
12
+ module YandexDirect
13
+ module V5
14
+ module API
15
+ include YandexDirect::V5::Ads
16
+ include YandexDirect::V5::AdGroups
17
+ include YandexDirect::V5::AdImages
18
+ include YandexDirect::V5::Campaigns
19
+ include YandexDirect::V5::Dictionaries
20
+ include YandexDirect::V5::Keywords
21
+ include YandexDirect::V5::Sitelinks
22
+ include YandexDirect::V5::VCards
23
+ end
24
+ end
25
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'yandex_direct/v5/geo_regions_item'
3
+ require 'yandex_direct/geo_regions_item'
4
4
 
5
5
  module YandexDirect
6
6
  module V5
@@ -13,7 +13,7 @@ module YandexDirect
13
13
  response = YandexDirect::V5::Request.new(self, @token, 'dictionaries', 'get', params).perform
14
14
  if response[:result]['GeoRegions'].any?
15
15
  response[:result]['GeoRegions'].map! do |region_data|
16
- GeoRegionsItem.new(region_data)
16
+ YandexDirect::GeoRegionsItem.new(region_data)
17
17
  end
18
18
  end
19
19
  response[:result]
@@ -3,9 +3,12 @@
3
3
  module YandexDirect
4
4
  module V5
5
5
  class Request
6
+ BASE_URL = 'https://api.direct.yandex.com/json/v5/'
7
+ SANDBOX_BASE_URL = 'https://api-sandbox.direct.yandex.com/json/v5/'
8
+
6
9
  def initialize(client, token, service_name, method, params)
7
10
  @payload = { method: method, params: params }
8
- api_url = client.test ? 'https://api-sandbox.direct.yandex.com/json/v5/' : 'https://api.direct.yandex.com/json/v5/'
11
+ api_url = client.test ? SANDBOX_BASE_URL : BASE_URL
9
12
  @url = "#{api_url}#{service_name}"
10
13
  @token = token
11
14
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module YandexDirect
4
- VERSION = '0.1.0'
4
+ VERSION = '0.2.0'
5
5
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- lib = File.expand_path('../lib', __FILE__)
3
+ lib = File.expand_path('lib', __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
  require 'yandex_direct/version'
6
6
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yandex_direct
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aleksandr B. Ivanov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-03-25 00:00:00.000000000 Z
11
+ date: 2018-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -87,13 +87,14 @@ files:
87
87
  - lib/yandex_direct/authorization_error.rb
88
88
  - lib/yandex_direct/blank_data_error.rb
89
89
  - lib/yandex_direct/error.rb
90
+ - lib/yandex_direct/geo_regions_item.rb
90
91
  - lib/yandex_direct/not_enough_units_error.rb
91
92
  - lib/yandex_direct/v5/ad_groups.rb
92
93
  - lib/yandex_direct/v5/ad_images.rb
93
94
  - lib/yandex_direct/v5/ads.rb
95
+ - lib/yandex_direct/v5/api.rb
94
96
  - lib/yandex_direct/v5/campaigns.rb
95
97
  - lib/yandex_direct/v5/dictionaries.rb
96
- - lib/yandex_direct/v5/geo_regions_item.rb
97
98
  - lib/yandex_direct/v5/keywords.rb
98
99
  - lib/yandex_direct/v5/request.rb
99
100
  - lib/yandex_direct/v5/sitelinks.rb
@@ -120,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
121
  version: '0'
121
122
  requirements: []
122
123
  rubyforge_project:
123
- rubygems_version: 2.7.3
124
+ rubygems_version: 2.7.6
124
125
  signing_key:
125
126
  specification_version: 4
126
127
  summary: A Ruby interface to the Yandex Direct API
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class GeoRegionsItem
4
- attr_reader :geo_region_id, :parent_id, :geo_region_name
5
-
6
- def initialize(attrs)
7
- @geo_region_id = attrs['GeoRegionId']
8
- @parent_id = attrs['ParentId']
9
- @geo_region_name = attrs['GeoRegionName']
10
- end
11
- end