yandex-api 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a507df6506f1d68f303565a994fce28daa38bde6
4
+ data.tar.gz: 811573b2767650e970b5dcb44f10f454c1ccafb4
5
+ SHA512:
6
+ metadata.gz: eb6dceefb263d50bfb5126be0d288b9a8e928fe1dd46bcdaf3fbf7934decf603b9007bdd2bf2efb2d6bfa18d1e894c4d007f55b03ee4f80c69feaad7f83250f0
7
+ data.tar.gz: 76aac042480b9f89a53155d2e735a33847158a0520feea52c0978164a22732fc80937be74b003e8ae89ebab5baa7ecd14c596cfc2867ef7d6560622a8ec81fde
data/.gitignore CHANGED
@@ -15,3 +15,5 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
+ yandex_direct.yml
19
+ yandex_translate.yml
data/README.md CHANGED
@@ -1,9 +1,12 @@
1
1
  # Yandex::API
2
2
 
3
+ <a href="http://badge.fury.io/rb/yandex-api"><img src="https://badge.fury.io/rb/yandex-api@2x.png" alt="Gem Version" height="18"></a>
4
+
3
5
  Позволяет работать с сервисами Яндекс доступными через API
4
6
 
5
7
  Доступные модули:
6
8
  * Direct - Автоматизация рекламных кампаний в Яндекс.Директе (http://direct.yandex.ru/)
9
+ * Translate - Позволяет получить доступ к онлайн-сервису машинного перевода Яндекса (http://translate.yandex.ru/)
7
10
 
8
11
  ## Установка
9
12
 
@@ -19,32 +22,34 @@
19
22
 
20
23
  $ gem install yandex-api
21
24
 
22
- ## в Ruby:
25
+
26
+ ## Direct
27
+ ### в Ruby:
23
28
 
24
29
  Создать конфигурационный файл yandex_direct.yml
25
30
 
26
- token: "token"
27
- application_id: "id"
28
- login: "login"
29
- locale: "ru"
31
+ token: token
32
+ login: login
33
+ locale: ru
30
34
  verbose: true
35
+ sandbox: true
31
36
 
32
- ## в Ruby On Rails:
37
+ ### в Ruby On Rails:
33
38
 
34
39
  Создать конфигурационный файл yandex_direct.yml
35
40
 
36
41
  development:
37
- token: "token"
38
- application_id: "id"
39
- login: "login"
40
- locale: "ru"
41
- verbose: true
42
+ token: token
43
+ login: login
44
+ locale: ru
45
+ verbose: true
46
+ sandbox: true
42
47
 
43
48
  Добавить в initializers файл yandex_direct.rb
44
49
 
45
50
  Yandex::API::Direct.load File.join(Rails.root,"config","yandex_direct.yml"), Rails.env
46
51
 
47
- ## Пример работы:
52
+ ### Пример работы:
48
53
 
49
54
  require 'yandex-api'
50
55
  Yandex::API::Direct.load "yandex_direct.yml"
@@ -52,3 +57,44 @@
52
57
  campaign = Yandex::API::Direct::CampaignInfo.list.first
53
58
  puts campaign.inspect
54
59
  puts campaign.banners.first.inspect
60
+
61
+ ## Translate
62
+ ### в Ruby:
63
+
64
+ Создать конфигурационный файл yandex_direct.yml
65
+
66
+ token: "token"
67
+ ui: true
68
+ verbose: true
69
+
70
+ ### в Ruby On Rails:
71
+
72
+ Создать конфигурационный файл yandex_translate.yml
73
+
74
+ development:
75
+ token: "token"
76
+ ui: "ru"
77
+ verbose: true
78
+
79
+ Добавить в initializers файл yandex_translate.rb
80
+
81
+ Yandex::API::Translate.load File.join(Rails.root,"config","yandex_translate.yml"), Rails.env
82
+
83
+
84
+ ### Пример работы
85
+
86
+ require 'yandex-api'
87
+ Yandex::API::Translate.load "yandex.yml", "production"
88
+
89
+ puts Yandex::API::Translate.languages.inspect
90
+ puts Yandex::API::Translate.detect('test').inspect
91
+ puts Yandex::API::Translate.do('Hello GitHub', 'ru').inspect
92
+
93
+
94
+ ## Contributing
95
+
96
+ 1. Fork it ( https://github.com/jpascal/yandex-api/fork )
97
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
98
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
99
+ 4. Push to the branch (`git push origin my-new-feature`)
100
+ 5. Create a new Pull Request
@@ -0,0 +1,18 @@
1
+ development:
2
+ token: token
3
+ login: login
4
+ locale: ru
5
+ verbose: true
6
+ sandbox: true
7
+ test:
8
+ token: token
9
+ login: login
10
+ locale: ru
11
+ verbose: true
12
+ sandbox: true
13
+ production:
14
+ token: token
15
+ login: login
16
+ locale: ru
17
+ verbose: true
18
+ sandbox: true
@@ -0,0 +1,12 @@
1
+ development:
2
+ token: "token"
3
+ ui: "id"
4
+ verbose: true
5
+ test:
6
+ token: "token"
7
+ ui: "ui"
8
+ verbose: true
9
+ production:
10
+ token: "token"
11
+ ui: "ui"
12
+ verbose: true
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  #
2
3
  # Взаимодействие с API Яндекс.Директа в формате JSON.
3
4
  # http://api.yandex.ru/direct/doc/concepts/JSON.xml
@@ -18,7 +19,7 @@ module Yandex::API
18
19
  #
19
20
  class BannerPhraseInfo < Base
20
21
  direct_attributes :PhraseID, :Phrase, :IsRubric, :Price, :AutoBudgetPriority, :ContextPrice, :AutoBroker
21
- direct_objects [:UserParams, PhraseUserParams]
22
+ direct_objects :UserParams => PhraseUserParams
22
23
  end
23
24
 
24
25
  #
@@ -41,7 +42,7 @@ module Yandex::API
41
42
  class ContactInfo < Base
42
43
  direct_attributes :CompanyName, :ContactPerson, :Country, :CountryCode, :City, :Street, :House, :Build,
43
44
  :Apart, :CityCode, :Phone, :PhoneExt, :IMClient, :IMLogin, :ExtraMessage, :ContactEmail, :WorkTime, :OGRN
44
- direct_objects [:PointOnMap, MapPoint]
45
+ direct_objects :PointOnMap => MapPoint
45
46
  end
46
47
 
47
48
  #
@@ -49,34 +50,34 @@ module Yandex::API
49
50
  #
50
51
  class BannerInfo < Base
51
52
  direct_attributes :BannerID, :CampaignID, :Title, :Text, :Href, :Geo, :MinusKeywords
52
- direct_arrays [:Phrases, BannerPhraseInfo], [:Sitelinks, Sitelink]
53
- direct_objects [:ContactInfo, ContactInfo]
53
+ direct_arrays :Phrases => BannerPhraseInfo, :Sitelinks => Sitelink
54
+ direct_objects :ContactInfo => ContactInfo
54
55
  def self.find id
55
- result = Direct::request("GetBanners", {:BannerIDS => [id]})
56
+ result = Direct::request('GetBanners', {:BannerIDS => [id]})
56
57
  raise Yandex::NotFound.new("not found banner where id = #{id}") unless result.any?
57
58
  banner = new(result.first)
58
59
  end
59
60
  def save
60
- Direct::request("CreateOrUpdateBanners", [self.to_hash]).first
61
+ Direct::request('CreateOrUpdateBanners', [self.to_hash]).first
61
62
  end
62
63
 
63
64
  def archive
64
- Direct::request("ArchiveBanners", {:CampaignID => self.CampaignID, :BannerIDS => [self.BannerID]})
65
+ Direct::request('ArchiveBanners', {:CampaignID => self.CampaignID, :BannerIDS => [self.BannerID]})
65
66
  end
66
67
  def unarchive
67
- Direct::request("UnArchiveCampaign", {:CampaignID => self.CampaignID, :BannerIDS => [self.BannerID]})
68
+ Direct::request('UnArchiveCampaign', {:CampaignID => self.CampaignID, :BannerIDS => [self.BannerID]})
68
69
  end
69
70
  def moderate
70
- Direct::request("ModerateBanners", {:CampaignID => self.CampaignID, :BannerIDS => [self.BannerID]})
71
+ Direct::request('ModerateBanners', {:CampaignID => self.CampaignID, :BannerIDS => [self.BannerID]})
71
72
  end
72
73
  def resume
73
- Direct::request("ResumeBanners", {:CampaignID => self.CampaignID, :BannerIDS => [self.BannerID]})
74
+ Direct::request('ResumeBanners', {:CampaignID => self.CampaignID, :BannerIDS => [self.BannerID]})
74
75
  end
75
76
  def stop
76
- Direct::request("StopBanners", {:CampaignID => self.CampaignID, :BannerIDS => [self.BannerID]})
77
+ Direct::request('StopBanners', {:CampaignID => self.CampaignID, :BannerIDS => [self.BannerID]})
77
78
  end
78
79
  def delete
79
- Direct::request("DeleteBanners", {:CampaignID => self.CampaignID, :BannerIDS => [self.BannerID]})
80
+ Direct::request('DeleteBanners', {:CampaignID => self.CampaignID, :BannerIDS => [self.BannerID]})
80
81
  end
81
82
  end
82
83
  end
@@ -6,25 +6,25 @@ module Yandex::API::Direct
6
6
  args.each do |arg|
7
7
  @attributes << arg
8
8
  self.class_eval("def #{arg};@#{arg};end")
9
- self.class_eval("def #{arg}=(val);@#{arg}=val;end")
9
+ self.class_eval("def #{arg}=(val);@#{arg}=val;end")
10
10
  end
11
11
  end
12
12
  def self.objects ; @objects || [] ; end
13
- def self.direct_objects *args
13
+ def self.direct_objects options
14
14
  @objects = []
15
- args.each do |object,type|
16
- @objects << [object,type]
17
- self.class_eval("def #{object};@#{object};end")
18
- self.class_eval("def #{object}=(val);@#{object}=val;end")
15
+ options.each do |name,type|
16
+ @objects << [name,type]
17
+ self.class_eval("def #{name};@#{name};end")
18
+ self.class_eval("def #{name}=(val);@#{name}=val;end")
19
19
  end
20
20
  end
21
21
  def self.arrays ; @arrays || [] ; end
22
- def self.direct_arrays *args
22
+ def self.direct_arrays options
23
23
  @arrays = []
24
- args.each do |array,type|
25
- @arrays << [array,type]
26
- self.class_eval("def #{array};@#{array};end")
27
- self.class_eval("def #{array}=(val);@#{array}=val;end")
24
+ options.each do |name,type|
25
+ @arrays << [name,type]
26
+ self.class_eval("def #{name};@#{name};end")
27
+ self.class_eval("def #{name}=(val);@#{name}=val;end")
28
28
  end
29
29
  end
30
30
  def to_hash
@@ -32,7 +32,7 @@ module Yandex::API::Direct
32
32
  # build hash of attributes
33
33
  self.class.attributes.each do |attribute|
34
34
  value = send(attribute)
35
- next unless value.present?
35
+ next unless not value.nil?
36
36
  result[attribute] = value
37
37
  end
38
38
  # build hash of arrays
@@ -45,10 +45,12 @@ module Yandex::API::Direct
45
45
  end
46
46
  end
47
47
  # build hash of objects
48
- self.class.objects.each do |object,type|
49
- value_hash = send(object).try(:to_hash) || {}
48
+ self.class.objects.each do |name,_|
49
+ object = send(name)
50
+ next if object.nil?
51
+ value_hash = send(name).to_hash || {}
50
52
  next if value_hash.empty?
51
- result[object] = value_hash
53
+ result[name] = value_hash
52
54
  end
53
55
  result
54
56
  end
@@ -48,41 +48,41 @@ module Yandex::API
48
48
  direct_attributes :Login, :CampaignID, :Name, :FIO, :StartDate, :StatusBehavior, :StatusContextStop, :ContextLimit, :ContextLimitSum, :ContextPricePercent,
49
49
  :AutoOptimization, :StatusMetricaControl, :DisabledDomains, :DisabledIps, :StatusOpenStat, :ConsiderTimeTarget, :MinusKeywords, :AddRelevantPhrases,
50
50
  :RelevantPhrasesBudgetLimit
51
- direct_objects [:Strategy, CampaignStrategy], [:SmsNotification, SmsNotification], [:EmailNotification, EmailNotification], [:TimeTarget, TimeTarget]
51
+ direct_objects :Strategy => CampaignStrategy, :SmsNotification => SmsNotification, :EmailNotification => EmailNotification, :TimeTarget => TimeTarget
52
52
 
53
53
  def banners
54
54
  banners = []
55
- Direct::request("GetBanners", {:CampaignIDS => [self.CampaignID]}).each do |banner|
55
+ Direct::request('GetBanners', {:CampaignIDS => [self.CampaignID]}).each do |banner|
56
56
  banners << BannerInfo.new(banner)
57
57
  end
58
58
  banners
59
59
  end
60
60
  def save
61
- Direct::request("CreateOrUpdateCampaign", self.to_hash)
61
+ Direct::request('CreateOrUpdateCampaign', self.to_hash)
62
62
  end
63
63
  def archive
64
- Direct::request("ArchiveCampaign", {:CampaignID => self.CampaignID})
64
+ Direct::request('ArchiveCampaign', {:CampaignID => self.CampaignID})
65
65
  end
66
66
  def unarchive
67
- Direct::request("UnArchiveCampaign", {:CampaignID => self.CampaignID})
67
+ Direct::request('UnArchiveCampaign', {:CampaignID => self.CampaignID})
68
68
  end
69
69
  def resume
70
- Direct::request("ResumeCampaign", {:CampaignID => self.CampaignID})
70
+ Direct::request('ResumeCampaign', {:CampaignID => self.CampaignID})
71
71
  end
72
72
  def stop
73
- Direct::request("StopCampaign", {:CampaignID => self.CampaignID})
73
+ Direct::request('StopCampaign', {:CampaignID => self.CampaignID})
74
74
  end
75
75
  def delete
76
- Direct::request("DeleteCampaign", {:CampaignID => self.CampaignID})
76
+ Direct::request('DeleteCampaign', {:CampaignID => self.CampaignID})
77
77
  end
78
78
  def self.find id
79
- result = Direct::request("GetCampaignParams", {:CampaignID => id})
79
+ result = Direct::request('GetCampaignParams', {:CampaignID => id})
80
80
  raise Yandex::NotFound.new("not found campaign where CampaignID = #{id}") if result.empty?
81
81
  new(result)
82
82
  end
83
83
  def self.list
84
84
  campaigs = []
85
- Direct::request("GetCampaignsList").each do |campaig|
85
+ Direct::request('GetCampaignsList').each do |campaig|
86
86
  campaigs << new(campaig)
87
87
  end
88
88
  campaigs
@@ -1,4 +1,5 @@
1
1
  require 'net/http'
2
+ require 'net/https'
2
3
  require 'json'
3
4
  require 'yaml'
4
5
  require 'uri'
@@ -6,13 +7,14 @@ require 'uri'
6
7
  module Yandex
7
8
  module API
8
9
  module Direct
9
- URL_API = "https://soap.direct.yandex.ru/json-api/v4/"
10
-
10
+ URL_API = 'https://api.direct.yandex.ru/v4/json/'
11
+ URL_API_SANDBOX = 'https://api-sandbox.direct.yandex.ru/v4/json/'
12
+
11
13
  def self.configuration
12
- if defined? @enviroment
13
- raise RuntimeError.new("not configured Yandex.Direct for #{@enviroment} enviroment") unless @configuration
14
+ if defined? @environment
15
+ raise RuntimeError.new("not configured Yandex.Direct for #{@environment} enviroment") unless @configuration
14
16
  else
15
- raise RuntimeError.new("not configured Yandex.Direct") unless @configuration
17
+ raise RuntimeError.new('not configured Yandex.Direct') unless @configuration
16
18
  end
17
19
  @configuration
18
20
  end
@@ -26,28 +28,30 @@ module Yandex
26
28
  end
27
29
 
28
30
  def self.load file, env = nil
29
- @enviroment = env if env
31
+ @environment = env.to_s if env
30
32
  config = YAML.load_file(file)
31
- @configuration = defined?(@enviroment) ? config[@enviroment] : config
33
+ @configuration = defined?(@environment) ? config[@environment] : config
34
+ @configuration['sandbox'] ||= false
32
35
  end
33
36
 
34
37
  def self.request method, params = {}
35
38
 
36
39
  body = {
37
- :locale => configuration["locale"],
38
- :login => configuration["login"],
39
- :application_id => configuration["application_id"],
40
- :token => configuration["application_token"],
40
+ :locale => configuration['locale'],
41
+ :token => configuration['token'],
41
42
  :method => method
42
43
  }
43
-
44
- body.merge!({:param => params}) unless params.empty?
45
- url = URI.parse(URL_API)
46
44
 
47
- if configuration["verbose"]
48
- puts "\t\033[32mURL: \033[0m#{URL_API}"
49
- puts "\t\033[32mMethod: \033[0m#{method}"
50
- puts "\t\033[32mParams: \033[0m#{params.inspect}"
45
+ if body[:method] == 'GetCampaignsList'
46
+ body.merge!({:param => [configuration['login']]})
47
+ else
48
+ body.merge!({:param => params})
49
+ end
50
+
51
+ url = URI((configuration['sandbox'] ? URL_API_SANDBOX : URL_API))
52
+
53
+ if configuration['verbose']
54
+ puts "\t\033[32mYandex.Direct:\033[0m #{method}(#{body[:param]})"
51
55
  end
52
56
 
53
57
  http = Net::HTTP.new(url.host, url.port)
@@ -59,13 +63,13 @@ module Yandex
59
63
 
60
64
  json = Direct.parse_json(response.body)
61
65
 
62
- if json.has_key?("error_code") and json.has_key?("error_str")
63
- code = json["error_code"].to_i
64
- error = json["error_detail"].length > 0 ? json["error_detail"] : json["error_str"]
66
+ if json.has_key?('error_code') and json.has_key?('error_str')
67
+ code = json['error_code'].to_i
68
+ error = json['error_detail'].length > 0 ? json['error_detail'] : json['error_str']
65
69
  raise RuntimeError.new "#{code} - #{error}"
66
70
  end
67
71
 
68
- return json["data"]
72
+ return json['data']
69
73
  end
70
74
  end
71
75
  end
@@ -0,0 +1,91 @@
1
+ require 'net/http'
2
+ require 'net/https'
3
+ require 'json'
4
+ require 'yaml'
5
+ require 'uri'
6
+ require 'cgi'
7
+
8
+ module Yandex
9
+ module API
10
+ module Translate
11
+ URL_API = 'https://translate.yandex.net/'
12
+
13
+ def self.configuration
14
+ if defined? @environment
15
+ raise RuntimeError.new("not configured Yandex.Translate for #{@environment} enviroment") unless @configuration
16
+ else
17
+ raise RuntimeError.new('not configured Yandex.Translate') unless @configuration
18
+ end
19
+ @configuration
20
+ end
21
+
22
+ def self.load file, env = nil
23
+ @environment = env.to_s if env
24
+ config = YAML.load_file(file)
25
+ @configuration = defined?(@environment) ? config[@environment] : config
26
+ end
27
+
28
+ def self.parse_json json
29
+ begin
30
+ return JSON.parse(json)
31
+ rescue => e
32
+ raise RuntimeError.new "#{e.message} in response"
33
+ end
34
+ end
35
+
36
+ def self.connection
37
+ return @connection if defined? @connection
38
+ uri = URI.parse(URL_API)
39
+ @connection = Net::HTTP.new(uri.host, uri.port)
40
+ if uri.scheme == "https"
41
+ @connection.use_ssl = true
42
+ @connection.verify_mode = OpenSSL::SSL::VERIFY_NONE
43
+ end
44
+ return @connection
45
+ end
46
+
47
+ def self.request path, params = {}
48
+
49
+ if configuration['verbose']
50
+ puts "\t\033[32mYandex.Translate:\033[0m #{params}"
51
+ end
52
+
53
+ query = (
54
+ params.merge!({
55
+ :key => configuration['token'],
56
+ :ui => configuration['ui']
57
+ })
58
+ ).collect {|key,value| "#{key.to_s}=#{CGI.escape(value.to_s)}" }.join("&")
59
+
60
+ response = connection.send(:get,[File.join('/api/v1.5/tr.json',path.to_s),query].join("?"))
61
+
62
+ json = Direct.parse_json(response.body)
63
+
64
+ if json.has_key?('code') and json.has_key?('message')
65
+ raise RuntimeError.new "#{json['code']} - #{json['message']}"
66
+ end
67
+ return json
68
+ end
69
+
70
+ def self.languages
71
+ request(:getLangs)
72
+ end
73
+
74
+ def self.detect(text)
75
+ result = request(:detect, :text => text)
76
+ if result.include? 'lang'
77
+ return result['lang']
78
+ else
79
+ raise RuntimeError.new "#{json['code']} - Can't detect language"
80
+ end
81
+ end
82
+
83
+ def self.do(text, lang, options = {})
84
+ request(:translate, options.merge({
85
+ :text => text,
86
+ :lang => lang
87
+ }))
88
+ end
89
+ end
90
+ end
91
+ end
@@ -1,5 +1,5 @@
1
1
  module Yandex
2
2
  module API
3
- VERSION = "0.0.3"
3
+ VERSION = '0.0.5'
4
4
  end
5
5
  end
data/lib/yandex-api.rb CHANGED
@@ -1,8 +1,10 @@
1
- require "yandex-api/version"
2
- require "yandex-api/direct"
3
- require "yandex-api/direct/base"
4
- require "yandex-api/direct/banner_info"
5
- require "yandex-api/direct/campaign_info"
1
+ require 'yandex-api/version'
2
+ require 'yandex-api/direct'
3
+ require 'yandex-api/direct/base'
4
+ require 'yandex-api/direct/banner_info'
5
+ require 'yandex-api/direct/campaign_info'
6
+
7
+ require 'yandex-api/translate'
6
8
 
7
9
  module Yandex
8
10
  module API
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ describe Yandex::API::Direct do
4
+ before { Yandex::API::Direct.load File.join(File.dirname(__FILE__),'yandex_direct.yml'), :test }
5
+ it 'config' do
6
+ expect(Yandex::API::Direct.configuration).not_to be_nil
7
+ end
8
+ it 'campaigns' do
9
+ campaigns = Yandex::API::Direct::CampaignInfo.list
10
+ expect(campaigns).not_to be_nil
11
+ end
12
+ end
@@ -0,0 +1,7 @@
1
+ require 'bundler/setup'
2
+ Bundler.setup
3
+
4
+ require 'yandex-api'
5
+
6
+ RSpec.configure do |config|
7
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ describe Yandex::API::Translate do
4
+ before { Yandex::API::Translate.load File.join(File.dirname(__FILE__),'yandex_translate.yml'), :test }
5
+ it 'config' do
6
+ expect(Yandex::API::Translate.configuration).not_to be_nil
7
+ end
8
+ it 'languages' do
9
+ languages = Yandex::API::Translate.languages
10
+ expect(languages).to have_key('dirs')
11
+ expect(languages['dirs']).to include('ru-en')
12
+ end
13
+ it 'detect' do
14
+ expect(Yandex::API::Translate.detect('Ruby')).to eql('en')
15
+ expect(Yandex::API::Translate.detect('Руби')).to eql('ru')
16
+ end
17
+ it 'translate' do
18
+ result = Yandex::API::Translate.do('Рубин', :en)
19
+ expect(result).to have_key('code')
20
+ expect(result).to have_key('lang')
21
+ expect(result).to have_key('text')
22
+ expect(result['lang']).to eql('ru-en')
23
+ expect(result['text']).to include('Ruby')
24
+ end
25
+ end
data/test.rb ADDED
File without changes
data/yandex-api.gemspec CHANGED
@@ -2,16 +2,20 @@
2
2
  require File.expand_path('../lib/yandex-api/version', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |gem|
5
- gem.authors = ["Evgeniy Shurmin"]
6
- gem.email = ["eshurmin@gmail.com"]
5
+ gem.authors = ['Evgeniy Shurmin']
6
+ gem.email = ['eshurmin@gmail.com']
7
7
  gem.description = %q{Yandex.API integration}
8
8
  gem.summary = %q{Yandex.API integration}
9
- gem.homepage = "https://github.com/jpascal/yandex-api"
9
+ gem.homepage = 'https://github.com/jpascal/yandex-api'
10
10
 
11
11
  gem.files = `git ls-files`.split($\)
12
12
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
13
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
- gem.name = "yandex-api"
15
- gem.require_paths = ["lib"]
14
+ gem.name = 'yandex-api'
15
+ gem.require_paths = ['lib']
16
16
  gem.version = Yandex::API::VERSION
17
+
18
+ gem.add_development_dependency 'bundler', '~> 1.7'
19
+ gem.add_development_dependency 'rake', '~> 10.0'
20
+ gem.add_development_dependency 'rspec'
17
21
  end
data/yandex.yml ADDED
@@ -0,0 +1,2 @@
1
+ production:
2
+ token: b89f01551bb74bff8a49f26dd0f571f4
metadata CHANGED
@@ -1,16 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yandex-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
5
- prerelease:
4
+ version: 0.0.5
6
5
  platform: ruby
7
6
  authors:
8
7
  - Evgeniy Shurmin
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-08-13 00:00:00.000000000 Z
13
- dependencies: []
11
+ date: 2015-01-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.7'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
14
55
  description: Yandex.API integration
15
56
  email:
16
57
  - eshurmin@gmail.com
@@ -18,40 +59,50 @@ executables: []
18
59
  extensions: []
19
60
  extra_rdoc_files: []
20
61
  files:
21
- - .gitignore
62
+ - ".gitignore"
22
63
  - Gemfile
23
64
  - LICENSE
24
65
  - README.md
25
66
  - Rakefile
67
+ - examples/yandex_direct.yml
68
+ - examples/yandex_translate.yml
26
69
  - lib/yandex-api.rb
27
70
  - lib/yandex-api/direct.rb
28
71
  - lib/yandex-api/direct/banner_info.rb
29
72
  - lib/yandex-api/direct/base.rb
30
73
  - lib/yandex-api/direct/campaign_info.rb
74
+ - lib/yandex-api/translate.rb
31
75
  - lib/yandex-api/version.rb
76
+ - spec/direct_spec.rb
77
+ - spec/spec_helper.rb
78
+ - spec/translate_spec.rb
79
+ - test.rb
32
80
  - yandex-api.gemspec
81
+ - yandex.yml
33
82
  homepage: https://github.com/jpascal/yandex-api
34
83
  licenses: []
84
+ metadata: {}
35
85
  post_install_message:
36
86
  rdoc_options: []
37
87
  require_paths:
38
88
  - lib
39
89
  required_ruby_version: !ruby/object:Gem::Requirement
40
- none: false
41
90
  requirements:
42
- - - ! '>='
91
+ - - ">="
43
92
  - !ruby/object:Gem::Version
44
93
  version: '0'
45
94
  required_rubygems_version: !ruby/object:Gem::Requirement
46
- none: false
47
95
  requirements:
48
- - - ! '>='
96
+ - - ">="
49
97
  - !ruby/object:Gem::Version
50
98
  version: '0'
51
99
  requirements: []
52
100
  rubyforge_project:
53
- rubygems_version: 1.8.24
101
+ rubygems_version: 2.4.5
54
102
  signing_key:
55
- specification_version: 3
103
+ specification_version: 4
56
104
  summary: Yandex.API integration
57
- test_files: []
105
+ test_files:
106
+ - spec/direct_spec.rb
107
+ - spec/spec_helper.rb
108
+ - spec/translate_spec.rb