yandex-api 0.0.3 → 0.0.5

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 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