/yandex-api

Yandex::API

Primary LanguageRubyMIT LicenseMIT

Yandex::API

Gem Version

Allow you work with any Yandex.APIs

Modules:

To get your access_token:

  1. Register your app at Yandex
    1. Be sure to check 'Yandex.Disk permits'
    2. Be sure to check 'Client for development' (it will set https://oauth.yandex.ru/verification_code?dev=True as Callback URI)
  2. Get access token https://oauth.yandex.ru/authorize?response_type=token&client_id=YOUR_APP_ID
  3. Get your access token from redirect url (right from the browser, it will be one of parameters)

Installation

Add this line to your application's Gemfile:

gem 'yandex-api'

And then execute:

$ bundle

Or install it yourself as:

$ gem install yandex-api

Direct

Ruby:

Create configuration file yandex_direct.yml

token: token
login: login
locale: ru
verbose: true
sandbox: true

Ruby On Rails:

Create configuration file yandex_direct.yml

development:
    token: token
    login: login
    locale: ru
    verbose: true
    sandbox: true

Create yandex_direct.rb in config/initializers

Yandex::API::Direct.load File.join(Rails.root,"config","yandex_direct.yml"), Rails.env

Simple example:

require 'yandex-api'
Yandex::API::Direct.load "yandex_direct.yml"

campaign = Yandex::API::Direct::CampaignInfo.list.first
puts campaign.inspect
puts campaign.banners.first.inspect

Translate

Ruby:

Create configuration file yandex_translate.yml

token: "token"
ui: true
verbose: true

Ruby On Rails:

Create configuration file yandex_translate.yml

development:
    token: "token"
    ui: "ru"
    verbose: true

Create yandex_translate.rb in config/initializers

Yandex::API::Translate.load File.join(Rails.root,"config","yandex_translate.yml"), Rails.env

Simple example

require 'yandex-api'
Yandex::API::Translate.load "yandex.yml", "production"

puts Yandex::API::Translate.languages.inspect
puts Yandex::API::Translate.detect('test').inspect
puts Yandex::API::Translate.do('Hello GitHub', 'ru').inspect

Disk

Create configuration file yandex_disk.yml

token: "token"
verbose: true

Ruby On Rails:

Create configuration file yandex_disk.yml

development:
    token: "token"
    verbose: true

Simple example

require 'yandex-api'
Yandex::API::Disk.load "yandex_disk.yml", "production"

include Yandex::API::Disk

storage = Storage.new
puts "Storage:\n\ttrash: #{storage.trash_size} bytes\n\ttotal: #{storage.total_space} bytes\n\tused: #{storage.used_space} bytes"
Storage.upload(File.open('foo'), 'disk:/bar')
Storage.move('disk:/bar', 'disk:/foo')
Storage.rm('disk:/foo')
Storage.clean('disk:/foo')

Storage class has methods

Storage.rm(path)            # remove directory
Storage.write(file, path)   # upload file to path
Storage.move(from, to)      # move file from -> to
Storage.copy(from, to)      # copy file form -> to
Storage.clean(path)         # clean trash (if path nil, clena all)
Storage.mkdir(path)         # create directory
Storage.exists?(path)       # existing path or not?

Using it with backup gem

require 'yandex-api/disk/backup_storage'

Backup::Model.new(:my_backup, 'Description for my_backup') do
  store_with Yandex::API::Disk::BackupStorage do |disk|
    disk.access_token = 'YOUR_ACCESS_TOKEN'
    disk.keep         = 5
  end
end

Contributing

  1. Fork it ( https://github.com/jpascal/yandex-api/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request