mushikago-sdk 0.2.3 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. data/README.md +9 -6
  2. data/autotest/discover.rb +1 -0
  3. data/doc/Mushikago.html +37 -21
  4. data/doc/Mushikago/Auth.html +8 -4
  5. data/doc/Mushikago/Auth/Signature.html +59 -32
  6. data/doc/Mushikago/Auth/Signer.html +81 -44
  7. data/doc/Mushikago/Config.html +41 -18
  8. data/doc/Mushikago/Hotaru.html +120 -0
  9. data/doc/Mushikago/Hotaru/Client.html +818 -0
  10. data/doc/Mushikago/Hotaru/Request.html +303 -0
  11. data/doc/Mushikago/Http.html +10 -6
  12. data/doc/Mushikago/Http/Client.html +107 -58
  13. data/doc/Mushikago/Http/MultipartRequest.html +366 -0
  14. data/doc/Mushikago/Http/Request.html +289 -167
  15. data/doc/Mushikago/Http/Response.html +153 -70
  16. data/doc/Mushikago/Mitsubachi.html +108 -0
  17. data/doc/Mushikago/Mitsubachi/Client.html +2923 -0
  18. data/doc/Mushikago/Mitsubachi/HttpFetchRequest.html +363 -0
  19. data/doc/Mushikago/Mitsubachi/HttpPushRequest.html +365 -0
  20. data/doc/Mushikago/Mitsubachi/MultipartRequest.html +332 -0
  21. data/doc/Mushikago/Mitsubachi/ProjectCreateRequest.html +361 -0
  22. data/doc/Mushikago/Mitsubachi/ProjectDeleteRequest.html +351 -0
  23. data/doc/Mushikago/Mitsubachi/ProjectDiscontinueRequest.html +349 -0
  24. data/doc/Mushikago/Mitsubachi/ProjectInfoRequest.html +302 -0
  25. data/doc/Mushikago/Mitsubachi/ProjectListRequest.html +304 -0
  26. data/doc/Mushikago/Mitsubachi/ProjectQueuesRequest.html +300 -0
  27. data/doc/Mushikago/Mitsubachi/ProjectUpdateRequest.html +359 -0
  28. data/doc/Mushikago/Mitsubachi/Request.html +307 -0
  29. data/doc/Mushikago/Mitsubachi/ResourceDeleteRequest.html +351 -0
  30. data/doc/Mushikago/Mitsubachi/ResourceGetRequest.html +302 -0
  31. data/doc/Mushikago/Mitsubachi/ResourceListRequest.html +306 -0
  32. data/doc/Mushikago/Mitsubachi/ResourceStoreRequest.html +390 -0
  33. data/doc/Mushikago/Mitsubachi/ScriptDeleteRequest.html +351 -0
  34. data/doc/Mushikago/Mitsubachi/ScriptDeployRequest.html +386 -0
  35. data/doc/Mushikago/Mitsubachi/ScriptGetRequest.html +302 -0
  36. data/doc/Mushikago/Mitsubachi/ScriptListRequest.html +306 -0
  37. data/doc/Mushikago/Tombo.html +8 -4
  38. data/doc/Mushikago/Tombo/CaptureRequest.html +90 -34
  39. data/doc/Mushikago/Tombo/CapturesRequest.html +68 -27
  40. data/doc/Mushikago/Tombo/Client.html +181 -75
  41. data/doc/Mushikago/Tombo/DeleteRequest.html +44 -24
  42. data/doc/Mushikago/Tombo/InfoRequest.html +32 -16
  43. data/doc/Mushikago/Tombo/Request.html +45 -15
  44. data/doc/_index.html +192 -9
  45. data/doc/class_list.html +1 -1
  46. data/doc/css/full_list.css +2 -0
  47. data/doc/css/style.css +12 -10
  48. data/doc/file.README.html +66 -60
  49. data/doc/frames.html +1 -1
  50. data/doc/index.html +66 -60
  51. data/doc/js/app.js +4 -4
  52. data/doc/js/full_list.js +23 -6
  53. data/doc/method_list.html +622 -62
  54. data/doc/top-level-namespace.html +3 -3
  55. data/lib/mushikago-sdk.rb +1 -0
  56. data/lib/mushikago.rb +3 -0
  57. data/lib/mushikago/auth.rb +1 -0
  58. data/lib/mushikago/auth/signature.rb +1 -0
  59. data/lib/mushikago/auth/signer.rb +1 -0
  60. data/lib/mushikago/configuration.rb +3 -2
  61. data/lib/mushikago/hotaru.rb +22 -0
  62. data/lib/mushikago/hotaru/client.rb +76 -0
  63. data/lib/mushikago/hotaru/request.rb +32 -0
  64. data/lib/mushikago/http.rb +2 -0
  65. data/lib/mushikago/http/client.rb +2 -1
  66. data/lib/mushikago/http/multipart_request.rb +62 -0
  67. data/lib/mushikago/http/request.rb +5 -2
  68. data/lib/mushikago/http/response.rb +1 -0
  69. data/lib/mushikago/mitsubachi.rb +33 -0
  70. data/lib/mushikago/mitsubachi/client.rb +256 -0
  71. data/lib/mushikago/mitsubachi/http_fetch_request.rb +33 -0
  72. data/lib/mushikago/mitsubachi/http_push_request.rb +36 -0
  73. data/lib/mushikago/mitsubachi/multipart_request.rb +33 -0
  74. data/lib/mushikago/mitsubachi/project_create_request.rb +32 -0
  75. data/lib/mushikago/mitsubachi/project_delete_request.rb +23 -0
  76. data/lib/mushikago/mitsubachi/project_discontinue_request.rb +22 -0
  77. data/lib/mushikago/mitsubachi/project_info_request.rb +17 -0
  78. data/lib/mushikago/mitsubachi/project_list_request.rb +21 -0
  79. data/lib/mushikago/mitsubachi/project_queues_request.rb +16 -0
  80. data/lib/mushikago/mitsubachi/project_update_request.rb +31 -0
  81. data/lib/mushikago/mitsubachi/request.rb +32 -0
  82. data/lib/mushikago/mitsubachi/resource_delete_request.rb +24 -0
  83. data/lib/mushikago/mitsubachi/resource_get_request.rb +19 -0
  84. data/lib/mushikago/mitsubachi/resource_list_request.rb +22 -0
  85. data/lib/mushikago/mitsubachi/resource_store_request.rb +33 -0
  86. data/lib/mushikago/mitsubachi/script_delete_request.rb +23 -0
  87. data/lib/mushikago/mitsubachi/script_deploy_request.rb +28 -0
  88. data/lib/mushikago/mitsubachi/script_get_request.rb +18 -0
  89. data/lib/mushikago/mitsubachi/script_list_request.rb +21 -0
  90. data/lib/mushikago/tombo.rb +1 -0
  91. data/lib/mushikago/tombo/capture_request.rb +2 -1
  92. data/lib/mushikago/tombo/captures_request.rb +2 -1
  93. data/lib/mushikago/tombo/client.rb +1 -0
  94. data/lib/mushikago/tombo/delete_request.rb +2 -1
  95. data/lib/mushikago/tombo/info_request.rb +2 -1
  96. data/lib/mushikago/tombo/request.rb +3 -2
  97. data/lib/mushikago/version.rb +2 -1
  98. data/spec/mushikago/auth/signature_spec.rb +1 -0
  99. data/spec/mushikago/auth/signer_spec.rb +1 -0
  100. data/spec/mushikago/configuration_spec.rb +7 -6
  101. data/spec/mushikago/http/client_spec.rb +3 -2
  102. data/spec/mushikago/http/request_spec.rb +3 -1
  103. data/spec/mushikago/http/response_spec.rb +1 -0
  104. data/spec/mushikago/tombo/capture_request_spec.rb +3 -2
  105. data/spec/mushikago/tombo/captures_request_spec.rb +3 -2
  106. data/spec/mushikago/tombo/client_spec.rb +91 -32
  107. data/spec/mushikago/tombo/delete_request_spec.rb +3 -2
  108. data/spec/mushikago/tombo/info_request_spec.rb +3 -2
  109. data/spec/mushikago/tombo/request_spec.rb +2 -1
  110. data/spec/spec_helper.rb +1 -0
  111. metadata +136 -115
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Top Level Namespace
8
8
 
9
- &mdash; Documentation by YARD 0.7.2
9
+ &mdash; Documentation by YARD 0.7.4
10
10
 
11
11
  </title>
12
12
 
@@ -94,9 +94,9 @@
94
94
  </div>
95
95
 
96
96
  <div id="footer">
97
- Generated on Thu Sep 8 10:07:02 2011 by
97
+ Generated on Thu Jan 26 17:19:03 2012 by
98
98
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
99
- 0.7.2 (ruby-1.8.7).
99
+ 0.7.4 (ruby-1.9.2).
100
100
  </div>
101
101
 
102
102
  </body>
data/lib/mushikago-sdk.rb CHANGED
@@ -1 +1,2 @@
1
+ # -*- coding: utf-8 -*-
1
2
  require 'mushikago'
data/lib/mushikago.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  # Mushikagoサービスを提供するモジュール
2
3
  module Mushikago
3
4
  # class
@@ -7,6 +8,8 @@ module Mushikago
7
8
  autoload :Http, 'mushikago/http'
8
9
  autoload :Auth, 'mushikago/auth'
9
10
  autoload :Tombo, 'mushikago/tombo'
11
+ autoload :Hotaru, 'mushikago/hotaru'
12
+ autoload :Mitsubachi, 'mushikago/mitsubachi'
10
13
 
11
14
  # @return [Mushikago::Config] config コンフィグのインスタンスへのアクセスを提供する
12
15
  def self.config
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  module Mushikago
2
3
  # Mushikagoサービスの認証を扱うモジュール
3
4
  module Auth
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  module Mushikago
2
3
  module Auth
3
4
  # MushikagoのリクエストにMix-inして利用する
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  require 'base64'
2
3
  require 'openssl'
3
4
 
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  require 'singleton'
2
3
  module Mushikago
3
4
  # Mushikago SDK for Rubyの各設定
@@ -7,7 +8,7 @@ module Mushikago
7
8
  # @param [Hash] options optionsをロードします
8
9
  # @option options [String] :api_key(ENV['MUSHIKAGO_API_KEY']) 発行されたAPIKeyを設定する
9
10
  # @option options [String] :secret_key(ENV['MUSHIKAGO_SECRET_KEY']) 発行されたSecretKeyを設定する
10
- # @option options [String] :tombo_endpoint('tombo.mushikago.org') tomboサービスのエンドポイントを設定する
11
+ # @option options [String] :endpoint('api.mushikago.org') 標準のエンドポイントを設定する
11
12
  # @example
12
13
  # Mushikago.config.load(:api_key => 'ABCDEFG', :secret_key => 'HIJKLMN')
13
14
  def load options={}
@@ -38,7 +39,7 @@ module Mushikago
38
39
 
39
40
  add_option :api_key, ENV['MUSHIKAGO_API_KEY'] || ENV['MUSHIKAGO_API_KEY_ID']
40
41
  add_option :secret_key, ENV['MUSHIKAGO_SECRET_KEY'] || ENV['MUSHIKAGO_SECRET_ACCESS_KEY']
41
- add_option :tombo_endpoint, 'tombo.mushikago.org'
42
+ add_option :endpoint, 'api.mushikago.org'
42
43
 
43
44
  # @private
44
45
  private
@@ -0,0 +1,22 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Mushikago
3
+ # Hotaruへのアクセスを行うモジュール
4
+ module Hotaru
5
+ autoload :Client, 'mushikago/hotaru/client'
6
+ autoload :Request, 'mushikago/hotaru/request'
7
+
8
+ autoload :ListDomainRequest, 'mushikago/hotaru/list_domain_request'
9
+ autoload :CreateDomainRequest, 'mushikago/hotaru/create_domain_request'
10
+ autoload :DeleteDomainRequest, 'mushikago/hotaru/delete_domain_request'
11
+
12
+ autoload :ListDocumentRequest, 'mushikago/hotaru/list_document_request'
13
+ autoload :PutDocumentRequest, 'mushikago/hotaru/put_document_request'
14
+ autoload :DeleteDocumentRequest, 'mushikago/hotaru/delete_document_request'
15
+
16
+ autoload :ListCollocationRequest, 'mushikago/hotaru/list_collocation_request'
17
+ autoload :BuildCollocationRequest, 'mushikago/hotaru/build_collocation_request'
18
+ autoload :SearchCollocationRequest, 'mushikago/hotaru/search_collocation_request'
19
+ autoload :DeleteCollocationRequest, 'mushikago/hotaru/delete_collocation_request'
20
+ autoload :GetCollocationGraphRequest, 'mushikago/hotaru/get_collocation_graph_request'
21
+ end
22
+ end
@@ -0,0 +1,76 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Mushikago
3
+ module Hotaru
4
+ # Hotaruサービスを利用する
5
+ #
6
+ # @example
7
+ # client = Mushikago::Hotaru::Client.new(:api_key => '<api_key>', :secret_key => '<secret_key>')
8
+ #
9
+ # client.capture('http://www.hotaru.ne.jp/', :thumbnail => true, :tags => ['hotaru', 'webservice'])
10
+ #
11
+ # captures = client.captures
12
+ # captures['images'].each do |image|
13
+ # puts image['image_url']
14
+ # end
15
+ #
16
+ # @example APIキーをファイルから読み込む場合
17
+ # Mushikago.config.load(YAML.load(File.read('config.yml')))
18
+ # client = Mushikago::Hotaru::Client.new
19
+ class Client < Mushikago::Http::Client
20
+ # 指定したURLのキャプチャを取得する
21
+ #
22
+ # @param [String] url キャプチャ対象のURL
23
+ # @param [Hash] options リクエストのオプション
24
+ # @option options [String] :image_format('jpg') 画像のフォーマット(jpg,png)
25
+ # @option options [Integer] :image_quality(80) 画像の品質(0-100)
26
+ # @option options [Boolean] :thumbnail(0) サムネイル取得フラグ(false:取得しない,true:取得する)
27
+ # @option options [String,Array] :tags タグ
28
+ # @example
29
+ # client.capture('http://www.hotaru.ne.jp/', :thumbnail => true, :tags => ['hotaru', 'webservice'])
30
+ # @return [Mushikago::Http::Response] リクエストの結果
31
+ def capture url, options={}
32
+ request = CaptureRequest.new(url, options)
33
+ send_request(request)
34
+ end
35
+
36
+ # いままでキャプチャした画像の情報を取得する
37
+ #
38
+ # @param [Hash] options リクエストのオプション
39
+ # @option options [String] :id 画像のID
40
+ # @option options [String] :domain 指定したドメインの画像一覧を取得する
41
+ # @option options [String] :tag 指定したタグの画像一覧を取得する
42
+ # @option options [Integer] :limit(10) 最大取得件数(1-100)
43
+ # @option options [Integer] :offset(0) 取得オフセット
44
+ # @example
45
+ # client.captures(:tag => 'webservice')
46
+ # @return [Mushikago::Http::Response] リクエストの結果
47
+ def captures options={}
48
+ request = CapturesRequest.new(options)
49
+ send_request(request)
50
+ end
51
+
52
+ # 指定した画像を削除する
53
+ #
54
+ # @param [String] id 画像のID
55
+ # @param [Hash] options リクエストのオプション
56
+ # @example
57
+ # client.delete('5a6cdfa3-xxx3-47d6-8xxx-5f83af6b66cc')
58
+ # @return [Mushikago::Http::Response] リクエストの結果
59
+ def delete id, options={}
60
+ request = DeleteRequest.new(id, options)
61
+ send_request(request)
62
+ end
63
+
64
+ # APIの使用状況を取得する
65
+ #
66
+ # @param [Hash] options リクエストのオプション
67
+ # @example
68
+ # client.info
69
+ # @return [Mushikago::Http::Response] リクエストの結果
70
+ def info options={}
71
+ request = InfoRequest.new(options)
72
+ send_request(request)
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,32 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Mushikago
3
+ module Hotaru
4
+ # Hotaruのリクエストを表す抽象クラス
5
+ class Request < Mushikago::Http::Request
6
+ include Mushikago::Auth::Signature
7
+
8
+ # @param [Hash] options オプション
9
+ # @option options [String] :endpoint('hotaru.mushikago.org') Hotaruのエンドポイント
10
+ def initialize options={}
11
+ super()
12
+ endpoint = options[:endpoint] || Mushikago.config.hotaru_endpoint
13
+ host, port = endpoint.split(':')
14
+ @host = host
15
+ @port = port if port
16
+ @path = "/#{api_version}/#{method_name}"
17
+ end
18
+
19
+ # @private
20
+ private
21
+ def api_version
22
+ 1
23
+ end
24
+
25
+ # @private
26
+ private
27
+ def method_name
28
+ ''
29
+ end
30
+ end
31
+ end
32
+ end
@@ -1,8 +1,10 @@
1
+ # -*- coding: utf-8 -*-
1
2
  module Mushikago
2
3
  # MushikagoサービスへのHTTPリクエストを扱うモジュール
3
4
  module Http
4
5
  autoload :Client, 'mushikago/http/client'
5
6
  autoload :Request, 'mushikago/http/request'
7
+ autoload :MultipartRequest, 'mushikago/http/multipart_request'
6
8
  autoload :Response, 'mushikago/http/response'
7
9
  end
8
10
  end
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  require 'net/http'
2
3
  require 'json'
3
4
  module Mushikago
@@ -30,7 +31,7 @@ module Mushikago
30
31
  Net::HTTP.start(request.host, request.port) do |http|
31
32
  http_request = request.to_http_request
32
33
  http_response = http.request(http_request)
33
- return Mushikago::Http::Response.new(JSON.parse(http_response.body))
34
+ return Mushikago::Http::Response.new(JSON.parse(http_response.body))
34
35
  end
35
36
  end
36
37
  end
@@ -0,0 +1,62 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'mime/types'
3
+ module Mushikago
4
+ module Http
5
+ class MultipartRequest < Request
6
+ CR = "\015"
7
+ LF = "\012"
8
+ EOL = CR+LF
9
+
10
+ def to_http_request
11
+ http_request = new_http_request
12
+ headers.each do |key, value|
13
+ http_request[key] = value
14
+ end
15
+ boundary = '----------------38117'
16
+ http_request.set_content_type "multipart/form-data; boundary=#{boundary}"
17
+ http_request.body = multipart_body(boundary)
18
+ http_request.content_length = http_request.body.size
19
+ return http_request
20
+ end
21
+
22
+ def multipart_body boundary='boundary'
23
+ content = ''
24
+
25
+ files, parameters = params.partition{|k, v| v.kind_of?(File)}
26
+ parameters.each do |k, v|
27
+ content << [
28
+ %Q|--#{boundary}|,
29
+ %Q|Content-Disposition: form-data; name="#{k}"|,
30
+ %Q||,
31
+ %Q|#{v}|
32
+ ].join(EOL)
33
+ content << EOL
34
+ end
35
+
36
+ files.each do |k, v|
37
+ v.rewind
38
+ content_type = ''
39
+ begin
40
+ content_type = MIME::Types.of(v.path).first.to_s
41
+ rescue NameError => e
42
+ ensure
43
+ content_type = "application/octet-stream" if content_type.to_s.empty?
44
+ end
45
+ content << [
46
+ %Q|--#{boundary}|,
47
+ %Q|Content-Disposition: form-data; name="#{k}"; filename="#{File::basename(v.path)}"|,
48
+ %Q|Content-Type: "#{content_type}"|,
49
+ %Q||,
50
+ %Q|#{v.read}|
51
+ ].join(EOL)
52
+ content << EOL
53
+ end
54
+ content << EOL
55
+ content << %Q|--#{boundary}--|
56
+ content << EOL
57
+ return content
58
+ end
59
+ end
60
+ end
61
+ end
62
+
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  require 'net/http'
2
3
  require 'cgi'
3
4
  module Mushikago
@@ -41,7 +42,7 @@ module Mushikago
41
42
 
42
43
  # @return [String] URLエンコードされ、&で接続されたパラメータの文字列
43
44
  def url_encoded_params
44
- params.sort.collect{|pp| pp.map{|p| encode p}.join('=')}.join('&')
45
+ params.sort.select{|p| p[1].kind_of?(String)}.collect{|pp| pp.map{|p| encode p}.join('=')}.join('&')
45
46
  end
46
47
 
47
48
  # HTTPリクエストオブジェクトに変換する
@@ -93,14 +94,16 @@ module Mushikago
93
94
  # @yieldreturn [Object] 変換された値
94
95
  # @example
95
96
  # add_param :price do |v| v.to_i end
96
- def add_param name, &transform
97
+ def add_param name, options={}, &transform
97
98
  attr_accessor name
98
99
  define_method("#{name}=") do |value|
100
+ value = value || options[:default]
99
101
  value = transform ? transform.call(value) : value
100
102
  self[name.to_s] = value
101
103
  instance_variable_set("@#{name}".to_sym, value)
102
104
  end
103
105
  end
106
+ alias request_parameter add_param
104
107
  end
105
108
  end
106
109
  end
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  module Mushikago
2
3
  module Http
3
4
  # Mushikagoサービスのレスポンスを扱うクラス
@@ -0,0 +1,33 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Mushikago
3
+ module Mitsubachi
4
+ autoload :Client, 'mushikago/mitsubachi/client'
5
+ autoload :Request, 'mushikago/mitsubachi/request'
6
+ autoload :MultipartRequest, 'mushikago/mitsubachi/multipart_request'
7
+
8
+ # project
9
+ autoload :ProjectCreateRequest, 'mushikago/mitsubachi/project_create_request'
10
+ autoload :ProjectListRequest, 'mushikago/mitsubachi/project_list_request'
11
+ autoload :ProjectInfoRequest, 'mushikago/mitsubachi/project_info_request'
12
+ autoload :ProjectQueuesRequest, 'mushikago/mitsubachi/project_queues_request'
13
+ autoload :ProjectDeleteRequest, 'mushikago/mitsubachi/project_delete_request'
14
+ autoload :ProjectUpdateRequest, 'mushikago/mitsubachi/project_update_request'
15
+ autoload :ProjectDiscontinueRequest, 'mushikago/mitsubachi/project_discontinue_request'
16
+ # http
17
+ autoload :HttpFetchRequest, 'mushikago/mitsubachi/http_fetch_request'
18
+ autoload :HttpPushRequest, 'mushikago/mitsubachi/http_push_request'
19
+
20
+ # script
21
+ autoload :ScriptDeployRequest, 'mushikago/mitsubachi/script_deploy_request'
22
+ autoload :ScriptGetRequest, 'mushikago/mitsubachi/script_get_request'
23
+ autoload :ScriptListRequest, 'mushikago/mitsubachi/script_list_request'
24
+ autoload :ScriptDeleteRequest, 'mushikago/mitsubachi/script_delete_request'
25
+
26
+ # resource
27
+ autoload :ResourceStoreRequest, 'mushikago/mitsubachi/resource_store_request'
28
+ autoload :ResourceGetRequest, 'mushikago/mitsubachi/resource_get_request'
29
+ autoload :ResourceListRequest, 'mushikago/mitsubachi/resource_list_request'
30
+ autoload :ResourceDeleteRequest, 'mushikago/mitsubachi/resource_delete_request'
31
+ end
32
+ end
33
+
@@ -0,0 +1,256 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Mushikago
3
+ module Mitsubachi
4
+ # Mitsubachiサービスを利用する
5
+ #
6
+ # @example
7
+ # client = Mushikago::Mitsubachi::Client.new(:api_key => '<api_key>', :secret_key => '<secret_key>')
8
+ #
9
+ # client.project_create('project01')
10
+ # client.script_deploy('project01', 'sample.rb', 'sample.rb')
11
+ # client.http_fetch('project01', 'http://www.mushikago.org/', 'sample.rb')
12
+ #
13
+ # @example APIキーをファイルから読み込む場合
14
+ # Mushikago.config.load(YAML.load(File.read('config.yml')))
15
+ # client = Mushikago::Mitsubachi::Client.new
16
+ class Client < Mushikago::Http::Client
17
+ # TODO project/createの説明
18
+ #
19
+ # @param [String] project_name プロジェクト名
20
+ # @param [Hash] options リクエストのオプション
21
+ # @example
22
+ # client.project_create('project01', :stdout => true)
23
+ # @return [Mushikago::Http::Response] リクエストの結果
24
+ def project_create project_name, options={}
25
+ request = ProjectCreateRequest.new(project_name, options)
26
+ send_request(request)
27
+ end
28
+
29
+ # TODO project/listの説明
30
+ #
31
+ # @param [Hash] options リクエストのオプション
32
+ # @option options [Integer] :limit
33
+ # @option options [Integer] :offset
34
+ # @option options [String] :filter
35
+ # @example
36
+ # client.project_list
37
+ # @return [Mushikago::Http::Response] リクエストの結果
38
+ def project_list options={}
39
+ request = ProjectListRequest.new(options)
40
+ send_request(request)
41
+ end
42
+
43
+ # TODO project/infoの説明
44
+ #
45
+ # @param [String] project_name プロジェクト名
46
+ # @param [Hash] options リクエストのオプション
47
+ # @example
48
+ # client.project_info('project01')
49
+ # @return [Mushikago::Http::Response] リクエストの結果
50
+ def project_info project_name, options={}
51
+ request = ProjectInfoRequest.new(project_name, options)
52
+ send_request(request)
53
+ end
54
+
55
+ # TODO project/queuesの説明
56
+ #
57
+ # @param [String] project_name プロジェクト名
58
+ # @param [Hash] options リクエストのオプション
59
+ # @example
60
+ # client.project_queues('project01')
61
+ # @return [Mushikago::Http::Response] リクエストの結果
62
+ def project_queues project_name, options={}
63
+ request = ProjectQueuesRequest.new(project_name, options)
64
+ send_request(request)
65
+ end
66
+
67
+ # TODO project/deleteの説明
68
+ #
69
+ # @param [String] project_name プロジェクト名
70
+ # @param [Hash] options リクエストのオプション
71
+ # @example
72
+ # client.project_delete('project01')
73
+ # @return [Mushikago::Http::Response] リクエストの結果
74
+ def project_delete project_name, options={}
75
+ request = ProjectDeleteRequest.new(project_name, options)
76
+ send_request(request)
77
+ end
78
+
79
+ # TODO project/updateの説明
80
+ #
81
+ # @param [String] project_name プロジェクト名
82
+ # @param [Hash] options リクエストのオプション
83
+ # @example
84
+ # client.project_update('project01', :stdout => false)
85
+ # @return [Mushikago::Http::Response] リクエストの結果
86
+ def project_update project_name, options={}
87
+ request = ProjectUpdateRequest.new(project_name, options)
88
+ send_request(request)
89
+ end
90
+
91
+ # TODO project/discontinueの説明
92
+ #
93
+ # @param [String] project_name プロジェクト名
94
+ # @param [Hash] options リクエストのオプション
95
+ # @example
96
+ # client.project_discontinue('project01')
97
+ # @return [Mushikago::Http::Response] リクエストの結果
98
+ def project_discontinue project_name, options={}
99
+ request = ProjectDiscontinueRequest.new(project_name, options)
100
+ send_request(request)
101
+ end
102
+
103
+ # TODO http/fetchの説明
104
+ #
105
+ # @param [String] project_name プロジェクト名
106
+ # @param [String] url クロール対象のURL
107
+ # @param [String] script_name スクレイピングスクリプトのパス
108
+ # @param [Hash] options リクエストのオプション
109
+ # @option options [String] :method('GET') HTTPリクエストメソッド
110
+ # @option options [String] :entity_parameter
111
+ # @option options [Boolean] :follow_redirect
112
+ # @option options [String] :parameters
113
+ # @option options [String] :header_overwrite
114
+ # @example
115
+ # client.http_fetch('project01', 'http://www.tombo.ne.jp/', 'sample.rb', :follow_redirect => true)
116
+ # @return [Mushikago::Http::Response] リクエストの結果
117
+ def http_fetch project_name, url, script_name, options={}
118
+ request = HttpFetchRequest.new(project_name, url, script_name, options)
119
+ send_request(request)
120
+ end
121
+
122
+ # TODO http/pushの説明
123
+ #
124
+ # @param [String] project_name プロジェクト名
125
+ # @param [String] url クロール対象のURL
126
+ # @param [String] script_name スクレイピングスクリプトのパス
127
+ # @param [String] file_name
128
+ # @param [String] file_input_key
129
+ # @param [Hash] options リクエストのオプション
130
+ # @option options [String] :entity_parameter
131
+ # @option options [String] :parameters
132
+ # @option options [String] :header_overwrite
133
+ # @option options [String] :mime_type
134
+ # @example
135
+ # client.http_push('project01', 'http://www.tombo.ne.jp/', 'sample.rb')
136
+ # @return [Mushikago::Http::Response] リクエストの結果
137
+ def http_push project_name, url, script_name, file_name, file_input_key, options={}
138
+ request = HttpPushRequest.new(project_name, url, script_name, file_name, file_input_key, options)
139
+ send_request(request)
140
+ end
141
+
142
+ # TODO script/deployの説明
143
+ #
144
+ # @param [String] project_name プロジェクト名
145
+ # @param [String of File] file_or_file_name デプロイするファイルオブジェクトもしくはファイルパス
146
+ # @param [Hash] options リクエストのオプション
147
+ # @option options [String] script_name デプロイ先のファイル名
148
+ # @example
149
+ # client.script_deploy('project01', 'sample.rb', :script_name => 'hoge.rb')
150
+ # @return [Mushikago::Http::Response] リクエストの結果
151
+ def script_deploy project_name, file_or_file_name, options={}
152
+ request = ScriptDeployRequest.new(project_name, file_or_file_name, options)
153
+ send_request(request)
154
+ end
155
+
156
+ # TODO script/listの説明
157
+ #
158
+ # @param [String] project_name プロジェクト名
159
+ # @param [Hash] options リクエストのオプション
160
+ # @option options [Integer] :limit
161
+ # @option options [Integer] :offset
162
+ # @option options [String] :filter
163
+ # @example
164
+ # client.script_list('project01')
165
+ # @return [Mushikago::Http::Response] リクエストの結果
166
+ def script_list project_name, options={}
167
+ request = ScriptListRequest.new(project_name, options)
168
+ send_request(request)
169
+ end
170
+
171
+ # TODO script/getの説明
172
+ #
173
+ # @param [String] project_name プロジェクト名
174
+ # @param [String] script_name デプロイ先のファイル名
175
+ # @param [Hash] options リクエストのオプション
176
+ # @example
177
+ # client.script_get('project01', 'sample.rb')
178
+ # @return [Mushikago::Http::Response] リクエストの結果
179
+ def script_get project_name, script_name, options={}
180
+ request = ScriptGetRequest.new(project_name, script_name, options)
181
+ send_request(request)
182
+ end
183
+
184
+ # TODO script/deleteの説明
185
+ #
186
+ # @param [String] project_name プロジェクト名
187
+ # @param [String] script_name デプロイ先のファイル名
188
+ # @param [Hash] options リクエストのオプション
189
+ # @example
190
+ # client.script_delete('project01', 'sample.rb')
191
+ # @return [Mushikago::Http::Response] リクエストの結果
192
+ def script_delete project_name, script_name, options={}
193
+ request = ScriptDeleteRequest.new(project_name, script_name, options)
194
+ send_request(request)
195
+ end
196
+
197
+ # TODO resource/storeの説明
198
+ #
199
+ # @param [String] project_name プロジェクト名
200
+ # @param [String of File] file_or_file_name デプロイするファイルオブジェクトもしくはファイルパス
201
+ # @param [Hash] options リクエストのオプション
202
+ # @option options [String] :file_name デプロイ先のファイル名
203
+ # @option options [String] :content_type
204
+ # @option options [public] :public
205
+ # @example
206
+ # client.resource_store('project01', 'sample.csv',)
207
+ # @return [Mushikago::Http::Response] リクエストの結果
208
+ def resource_store project_name, file_or_file_name, options={}
209
+ request = ResourceStoreRequest.new(project_name, file_or_file_name, options)
210
+ send_request(request)
211
+ end
212
+
213
+ # TODO resource/listの説明
214
+ #
215
+ # @param [String] project_name プロジェクト名
216
+ # @param [Hash] options リクエストのオプション
217
+ # @option options [Integer] :limit
218
+ # @option options [Integer] :offset
219
+ # @option options [String] :filter
220
+ # @example
221
+ # client.resource_list('project01')
222
+ # @return [Mushikago::Http::Response] リクエストの結果
223
+ def resource_list project_name, options={}
224
+ request = ResourceListRequest.new(project_name, options)
225
+ send_request(request)
226
+ end
227
+
228
+ # TODO resource/getの説明
229
+ #
230
+ # @param [String] project_name プロジェクト名
231
+ # @param [String] file_name 保存先のファイル名
232
+ # @param [Hash] options リクエストのオプション
233
+ # @example
234
+ # client.resource_get('project01', 'sample.rb')
235
+ # @return [Mushikago::Http::Response] リクエストの結果
236
+ def resource_get project_name, file_name, options={}
237
+ request = ResourceGetRequest.new(project_name, file_name, options)
238
+ send_request(request)
239
+ end
240
+
241
+ # TODO resource/deleteの説明
242
+ #
243
+ # @param [String] project_name プロジェクト名
244
+ # @param [String] file_name 保存先のファイル名
245
+ # @param [Hash] options リクエストのオプション
246
+ # @example
247
+ # client.resource_delete('project01', 'sample.rb')
248
+ # @return [Mushikago::Http::Response] リクエストの結果
249
+ def resource_delete project_name, file_name, options={}
250
+ request = ResourceDeleteRequest.new(project_name, file_name, options)
251
+ send_request(request)
252
+ end
253
+ end
254
+ end
255
+ end
256
+