Class: Mushikago::Mitsubachi::Client

Inherits:
Http::Client show all
Defined in:
lib/mushikago/mitsubachi/client.rb

Overview

mitsubachiサービスを利用する

Examples:

require 'mushikago'
client = Mushikago::Mitsubachi::Client.new(:api_key => '<api_key>', :secret_key => '<secret_key>')

client.project_create('project01')
client.script_deploy('project01', 'sample.rb', 'sample.rb')
client.http_fetch('project01', 'http://www.mushikago.org/', 'sample.rb')

APIキーをファイルから読み込む場合

Mushikago.config.load(YAML.load(File.read('config.yml')))
client = Mushikago::Mitsubachi::Client.new

Instance Attribute Summary

Attributes inherited from Http::Client

api_key, signer, use_ssl

Instance Method Summary (collapse)

Methods inherited from Http::Client

#initialize, #send_request

Constructor Details

This class inherits a constructor from Mushikago::Http::Client

Instance Method Details

- (Mushikago::Http::Response) http_fetch(project_name, url, script_name, options = {})

http/fetchを発行します

Examples:

client.http_fetch('project01', 'http://www.tombo.ne.jp/', 'sample.rb', :follow_redirect => true)

Parameters:

  • project_name (String)

    プロジェクト名

  • url (String)

    クロール対象のURL

  • script_name (String)

    スクレイピングスクリプトのパス

  • options (Hash) (defaults to: {})

    リクエストのオプション

Options Hash (options):

  • :method (String)
  • :entity_parameter (String)
  • :follow_redirect (Boolean)
  • :parameters (String)
  • :header_overwrite (String)

Returns:



146
147
148
149
# File 'lib/mushikago/mitsubachi/client.rb', line 146

def http_fetch project_name, url, script_name, options={}
  request = HttpFetchRequest.new(project_name, url, script_name, options)
  send_request(request)
end

- (Mushikago::Http::Response) http_push(project_name, url, script_name, file_name, file_input_key, options = {})

http/pushを発行します

Examples:

client.http_push('project01', 'http://www.tombo.ne.jp/', 'sample.rb')

Parameters:

  • project_name (String)

    プロジェクト名

  • url (String)

    クロール対象のURL

  • script_name (String)

    スクレイピングスクリプトのパス

  • file_name (String)
  • file_input_key (String)
  • options (Hash) (defaults to: {})

    リクエストのオプション

Options Hash (options):

  • :entity_parameter (String)
  • :parameters (String)
  • :header_overwrite (String)
  • :mime_type (String)

Returns:



166
167
168
169
# File 'lib/mushikago/mitsubachi/client.rb', line 166

def http_push project_name, url, script_name, file_name, file_input_key, options={}
  request = HttpPushRequest.new(project_name, url, script_name, file_name, file_input_key, options)
  send_request(request)
end

- (Mushikago::Http::Response) project_create(project_name, options = {})

project/createを発行します

Examples:

client.project_create('project01', :stdout => true)

Parameters:

  • project_name (String)

    プロジェクト名

  • options (Hash) (defaults to: {})

    リクエストのオプション

Options Hash (options):

  • :dedicated (Boolean)
  • :max_lead_time (Integer)
  • :stdout (Boolean)
  • :stderr (Boolean)
  • :system_log (Boolean)
  • :log_prefix (String)

Returns:



34
35
36
37
# File 'lib/mushikago/mitsubachi/client.rb', line 34

def project_create project_name, options={}
  request = ProjectCreateRequest.new(project_name, options)
  send_request(request)
end

- (Mushikago::Http::Response) project_delete(project_name, options = {})

project/deleteを発行します

Examples:

client.project_delete('project01')

Parameters:

  • project_name (String)

    プロジェクト名

  • options (Hash) (defaults to: {})

    リクエストのオプション

Options Hash (options):

  • :forcedelete (Boolean)

Returns:



98
99
100
101
# File 'lib/mushikago/mitsubachi/client.rb', line 98

def project_delete project_name, options={}
  request = ProjectDeleteRequest.new(project_name, options)
  send_request(request)
end

- (Mushikago::Http::Response) project_discontinue(project_name, options = {})

project/discontinueを発行します

Examples:

client.project_discontinue('project01')

Parameters:

  • project_name (String)

    プロジェクト名

  • options (Hash) (defaults to: {})

    リクエストのオプション

Returns:



127
128
129
130
# File 'lib/mushikago/mitsubachi/client.rb', line 127

def project_discontinue project_name, options={}
  request = ProjectDiscontinueRequest.new(project_name, options)
  send_request(request)
end

- (Mushikago::Http::Response) project_info(project_name, options = {})

project/infoを発行します

Examples:

result = client.project_info('project01')
puts result['dedicated']
puts result['max_lead_time']
puts result['stdout']
puts result['stderr']
puts result['system_log']
puts result['log_prefix']
puts result['count']
puts result['usage']
puts result['storage_prefix']

Parameters:

  • project_name (String)

    プロジェクト名

  • options (Hash) (defaults to: {})

    リクエストのオプション

Returns:



72
73
74
75
# File 'lib/mushikago/mitsubachi/client.rb', line 72

def project_info project_name, options={}
  request = ProjectInfoRequest.new(project_name, options)
  send_request(request)
end

- (Mushikago::Http::Response) project_list(options = {})

project/listを発行します

Examples:

result = client.project_list
result['projects'].each do |project|
  puts project['name']
end

Parameters:

  • options (Hash) (defaults to: {})

    リクエストのオプション

Options Hash (options):

  • :limit (Integer)
  • :offset (Integer)
  • :filter (String)

Returns:



51
52
53
54
# File 'lib/mushikago/mitsubachi/client.rb', line 51

def project_list options={}
  request = ProjectListRequest.new(options)
  send_request(request)
end

- (Mushikago::Http::Response) project_queues(project_name, options = {})

project/queuesを発行します

Examples:

result = client.project_queues('project01')
puts result['count']

Parameters:

  • project_name (String)

    プロジェクト名

  • options (Hash) (defaults to: {})

    リクエストのオプション

Returns:



85
86
87
88
# File 'lib/mushikago/mitsubachi/client.rb', line 85

def project_queues project_name, options={}
  request = ProjectQueuesRequest.new(project_name, options)
  send_request(request)
end

- (Mushikago::Http::Response) project_update(project_name, options = {})

project/updateを発行します

Examples:

client.project_update('project01', :stdout => false)

Parameters:

  • project_name (String)

    プロジェクト名

  • options (Hash) (defaults to: {})

    リクエストのオプション

Options Hash (options):

  • :max_lead_time (Integer)
  • :stdout (Boolean)
  • :stderr (Boolean)
  • :system_log (Boolean)
  • :log_prefix (String)

Returns:



115
116
117
118
# File 'lib/mushikago/mitsubachi/client.rb', line 115

def project_update project_name, options={}
  request = ProjectUpdateRequest.new(project_name, options)
  send_request(request)
end

- (Object) projects



18
19
20
# File 'lib/mushikago/mitsubachi/client.rb', line 18

def projects
  Mitsubachi::Projects.new(self)
end

- (Mushikago::Http::Response) resource_delete(project_name, file_name, options = {})

resource/deleteを発行します

Examples:

client.resource_delete('project01', 'sample.rb')

Parameters:

  • project_name (String)

    プロジェクト名

  • file_name (String)

    保存先のファイル名

  • options (Hash) (defaults to: {})

    リクエストのオプション

Returns:



322
323
324
325
# File 'lib/mushikago/mitsubachi/client.rb', line 322

def resource_delete project_name, file_name, options={}
  request = ResourceDeleteRequest.new(project_name, file_name, options)
  send_request(request)
end

- (Mushikago::Http::Response) resource_get(project_name, file_name, options = {})

resource/getを発行します

Examples:

result = client.resource_get('project01', 'sample.rb')
puts result['url']

Parameters:

  • project_name (String)

    プロジェクト名

  • file_name (String)

    保存先のファイル名

  • options (Hash) (defaults to: {})

    リクエストのオプション

Options Hash (options):

  • :with_body (Boolean)

    trueを指定すると、response[‘body’]でファイルの内容にアクセスすることができるようになります。

Returns:



301
302
303
304
305
306
307
308
309
310
311
312
# File 'lib/mushikago/mitsubachi/client.rb', line 301

def resource_get project_name, file_name, options={}
  request = ResourceGetRequest.new(project_name, file_name, options)
  result = send_request(request)
  if options[:with_body]
    begin
      uri = URI.parse(result['url'])
      result['body'] = Net::HTTP.get(uri.host, uri.request_uri)
    rescue
    end
  end
  return result
end

- (Mushikago::Http::Response) resource_list(project_name, options = {})

resource/listを発行します

Examples:

limit = 10
offset = 0
has_more_files = 1
until has_more_files == 0
  result = client.resource_list('project01', :limit => limit, :offset => offset)
  result['files'].each do |file|
    puts script['name']
    puts script['size']
    puts script['timestamp']
  end
  offset += limit
  has_more_files = result['has_more_files']
end

Parameters:

  • project_name (String)

    プロジェクト名

  • options (Hash) (defaults to: {})

    リクエストのオプション

Options Hash (options):

  • :limit (Integer)
  • :offset (Integer)
  • :filter (String)

Returns:



286
287
288
289
# File 'lib/mushikago/mitsubachi/client.rb', line 286

def resource_list project_name, options={}
  request = ResourceListRequest.new(project_name, options)
  send_request(request)
end

- (Mushikago::Http::Response) resource_store(project_name, file_or_file_name, options = {})

resource/storeを発行します

Examples:

client.resource_store('project01', 'sample.csv', :public => true)

Parameters:

  • project_name (String)

    プロジェクト名

  • file_or_file_name (String or File)

    デプロイするファイルオブジェクトもしくはファイルパス

  • options (Hash) (defaults to: {})

    リクエストのオプション

Options Hash (options):

  • :file_name (String)

    デプロイ先のファイル名

  • :content_type (String)
  • :public (public)

Returns:



259
260
261
262
# File 'lib/mushikago/mitsubachi/client.rb', line 259

def resource_store project_name, file_or_file_name, options={}
  request = ResourceStoreRequest.new(project_name, file_or_file_name, options)
  send_request(request)
end

- (Mushikago::Http::Response) script_delete(project_name, script_name, options = {})

script/deleteを発行します

Examples:

client.script_delete('project01', 'sample.rb')

Parameters:

  • project_name (String)

    プロジェクト名

  • script_name (String)

    デプロイ先のファイル名

  • options (Hash) (defaults to: {})

    リクエストのオプション

Returns:



243
244
245
246
# File 'lib/mushikago/mitsubachi/client.rb', line 243

def script_delete project_name, script_name, options={}
  request = ScriptDeleteRequest.new(project_name, script_name, options)
  send_request(request)
end

- (Mushikago::Http::Response) script_deploy(project_name, file_or_file_name, options = {})

script/deployを発行します

Examples:

client.script_deploy('project01', 'sample.rb', :script_name => 'hoge.rb')

Parameters:

  • project_name (String)

    プロジェクト名

  • file_or_file_name (String or File)

    デプロイするファイルオブジェクトもしくはファイルパス

  • options (Hash) (defaults to: {})

    リクエストのオプション

Options Hash (options):

  • script_name (String)

    デプロイ先のファイル名

Returns:



180
181
182
183
# File 'lib/mushikago/mitsubachi/client.rb', line 180

def script_deploy project_name, file_or_file_name, options={}
  request = ScriptDeployRequest.new(project_name, file_or_file_name, options)
  send_request(request)
end

- (Mushikago::Http::Response) script_get(project_name, script_name, options = {})

script/getを発行します

Examples:

result = client.script_get('project01', 'sample.rb')
puts result['url']

Parameters:

  • project_name (String)

    プロジェクト名

  • script_name (String)

    デプロイ先のファイル名

  • options (Hash) (defaults to: {})

    リクエストのオプション

Options Hash (options):

  • :with_body (Boolean)

    trueを指定すると、response[‘body’]でファイルの内容にアクセスすることができるようになります。

Returns:



222
223
224
225
226
227
228
229
230
231
232
233
# File 'lib/mushikago/mitsubachi/client.rb', line 222

def script_get project_name, script_name, options={}
  request = ScriptGetRequest.new(project_name, script_name, options)
  result = send_request(request)
  if options[:with_body]
    begin
      uri = URI.parse(result['url'])
      result['body'] = Net::HTTP.get(uri.host, uri.request_uri)
    rescue
    end
  end
  return result
end

- (Mushikago::Http::Response) script_list(project_name, options = {})

script/listを発行します

Examples:

limit = 10
offset = 0
has_more_files = 1
until has_more_files == 0
  result = client.script_list('project01', :limit => limit, :offset => offset)
  result['scripts'].each do |script|
    puts script['name']
    puts script['size']
    puts script['timestamp']
  end
  offset += limit
  has_more_files = result['has_more_files']
end

Parameters:

  • project_name (String)

    プロジェクト名

  • options (Hash) (defaults to: {})

    リクエストのオプション

Options Hash (options):

  • :limit (Integer)
  • :offset (Integer)
  • :filter (String)

Returns:



207
208
209
210
# File 'lib/mushikago/mitsubachi/client.rb', line 207

def script_list project_name, options={}
  request = ScriptListRequest.new(project_name, options)
  send_request(request)
end