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

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

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)
  • :cookiejar (String)
  • :parent_request_id (String)
  • :group_id (String)
  • :unique_key (String)
  • :unique_key_expires (Integer)
  • :encode (String)

Returns:



164
165
166
167
# File 'lib/mushikago/mitsubachi/client.rb', line 164

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

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

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)
  • :cookiejar (String)
  • :parent_request_id (String)
  • :group_id (String)
  • :unique_key (String)
  • :unique_key_expires (Integer)
  • :encode (String)

Returns:



190
191
192
193
# File 'lib/mushikago/mitsubachi/client.rb', line 190

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

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

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

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

project/deleteを発行します

Examples:

client.project_delete('project01')

Parameters:

  • project_name (String)

    プロジェクト名

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

    リクエストのオプション

Options Hash (options):

  • :forcedelete (Boolean)

Returns:



110
111
112
113
# File 'lib/mushikago/mitsubachi/client.rb', line 110

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

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

project/discontinueを発行します

Examples:

client.project_discontinue('project01')

Parameters:

  • project_name (String)

    プロジェクト名

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

    リクエストのオプション

Returns:



139
140
141
142
# File 'lib/mushikago/mitsubachi/client.rb', line 139

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

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

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['storage_prefix']
result['hourly_counts'].each do |hourly_count|
  puts hourly_count['name']
  hourly_count['call_counts'].each_with_index do |call_count,time|
    puts "#{time} : call_count"
  end
end
result['daily_counts'].each do |daily_count|
  puts daily_count['name']
  puts daily_count['call_count']
end
result['monthly_counts'].each do |monthly_count|
  puts monthly_count['name']
  puts monthly_count['call_count']
end

Parameters:

  • project_name (String)

    プロジェクト名

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

    リクエストのオプション

Returns:



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

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

#project_list(options = {}) ⇒ Mushikago::Http::Response

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

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

project/queuesを発行します

Examples:

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

Parameters:

  • project_name (String)

    プロジェクト名

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

    リクエストのオプション

Returns:



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

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

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

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:



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

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

#projectsObject



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

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

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

resource/deleteを発行します

Examples:

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

Parameters:

  • project_name (String)

    プロジェクト名

  • file_name (String)

    保存先のファイル名

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

    リクエストのオプション

Returns:



346
347
348
349
# File 'lib/mushikago/mitsubachi/client.rb', line 346

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

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

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

Returns:



325
326
327
328
329
330
331
332
333
334
335
336
# File 'lib/mushikago/mitsubachi/client.rb', line 325

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

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

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:



310
311
312
313
# File 'lib/mushikago/mitsubachi/client.rb', line 310

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

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

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:



283
284
285
286
# File 'lib/mushikago/mitsubachi/client.rb', line 283

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

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

script/deleteを発行します

Examples:

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

Parameters:

  • project_name (String)

    プロジェクト名

  • script_name (String)

    デプロイ先のファイル名

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

    リクエストのオプション

Returns:



267
268
269
270
# File 'lib/mushikago/mitsubachi/client.rb', line 267

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

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

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:



204
205
206
207
# File 'lib/mushikago/mitsubachi/client.rb', line 204

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

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

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

Returns:



246
247
248
249
250
251
252
253
254
255
256
257
# File 'lib/mushikago/mitsubachi/client.rb', line 246

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

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

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:



231
232
233
234
# File 'lib/mushikago/mitsubachi/client.rb', line 231

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