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
@@ -0,0 +1,33 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Mushikago
3
+ module Mitsubachi
4
+ class HttpFetchRequest < Request
5
+ def method_name; 'http/fetch.json' end
6
+ request_parameter :url
7
+ request_parameter :project_name
8
+ request_parameter :script_name
9
+ request_parameter :method do |v| v.upcase end
10
+ request_parameter :entity_parameter
11
+ request_parameter :follow_redirect do |v| (v ? 1 : 0).to_s end
12
+ request_parameter :parameters
13
+ request_parameter :header_overwrite
14
+
15
+ def initialize project_name, url, script_name, options={}
16
+ super(options)
17
+ self.project_name = project_name
18
+ self.url = url
19
+ self.script_name = script_name
20
+ self.method = options[:method] if options.has_key?(:method)
21
+ self.entity_parameter = options[:entity_parameter] if options.has_key?(:entity_parameter)
22
+ self.follow_redirect = options[:follow_redirect] if options.has_key?(:follow_redirect)
23
+ self.parameters = options[:parameters] if options.has_key?(:parameters)
24
+ self.header_overwrite = options[:header_overwrite] if options.has_key?(:header_overwrite)
25
+ end
26
+
27
+ def new_http_request
28
+ new_http_post_request(path)
29
+ end
30
+ end
31
+ end
32
+ end
33
+
@@ -0,0 +1,36 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Mushikago
3
+ module Mitsubachi
4
+ class HttpPushRequest < Request
5
+ def method_name; 'http/fetch.json' end
6
+ request_parameter :url
7
+ request_parameter :project_name
8
+ request_parameter :script_name
9
+ request_parameter :file_name
10
+ request_parameter :file_input_key
11
+ request_parameter :entity_parameter
12
+ request_parameter :parameters
13
+ request_parameter :header_overwrite
14
+ request_parameter :mime_type
15
+
16
+ def initialize project_name, url, script_name, file_name, file_input_key, options={}
17
+ super(options)
18
+ self.project_name = project_name
19
+ self.url = url
20
+ self.script_name = script_name
21
+ self.file_name = file_name
22
+ self.file_input_key = file_input_key
23
+ self.entity_parameter = options[:entity_parameter] if options.has_key?(:entity_parameter)
24
+ self.parameters = options[:parameters] if options.has_key?(:parameters)
25
+ self.header_overwrite = options[:header_overwrite] if options.has_key?(:header_overwrite)
26
+ self.mime_type = options[:mime_type] if options.has_key?(:mime_type)
27
+ end
28
+
29
+ def new_http_request
30
+ new_http_post_request(path)
31
+ end
32
+ end
33
+ end
34
+ end
35
+
36
+
@@ -0,0 +1,33 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Mushikago
3
+ module Mitsubachi
4
+ # Mitsubachiのリクエストを表す抽象クラス
5
+ class MultipartRequest < Mushikago::Http::MultipartRequest
6
+ include Mushikago::Auth::Signature
7
+
8
+ # @param [Hash] options オプション
9
+ # @option options [String] :endpoint('tombo.mushikago.org') Mitsubachiのエンドポイント
10
+ def initialize options={}
11
+ super()
12
+ endpoint = options[:endpoint] || Mushikago.config.endpoint
13
+ host, port = endpoint.split(':')
14
+ @host = host
15
+ @port = port if port
16
+ @path = "/#{api_version}/mitsubachi/#{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
33
+
@@ -0,0 +1,32 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Mushikago
3
+ module Mitsubachi
4
+ class ProjectCreateRequest < Request
5
+ def method_name; 'project/create' end
6
+ request_parameter :project_name
7
+ request_parameter :dedicated, :default=>false do |v| (v ? 1 : 0).to_s end
8
+ request_parameter :max_lead_time do |v| v.to_i.to_s end
9
+ request_parameter :stdout, :default=>true do |v| (v ? 1 : 0).to_s end
10
+ request_parameter :stderr, :default=>true do |v| (v ? 1 : 0).to_s end
11
+ request_parameter :system_log, :default=>true do |v| (v ? 1 : 0).to_s end
12
+ request_parameter :log_prefix
13
+
14
+ def initialize project_name, options={}
15
+ super(options)
16
+ self.project_name = project_name
17
+ self.dedicated = options[:dedicated]
18
+ self.max_lead_time = options[:max_lead_time] if options.has_key?(:max_lead_time)
19
+ self.stdout = options[:stdout]
20
+ self.stderr = options[:stderr]
21
+ self.system_log = options[:system_log]
22
+ self.log_prefix = options[:log_prefix] if options.has_key?(:log_prefix)
23
+ end
24
+
25
+ def new_http_request
26
+ new_http_post_request(path)
27
+ end
28
+ end
29
+ end
30
+ end
31
+
32
+
@@ -0,0 +1,23 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Mushikago
3
+ module Mitsubachi
4
+ class ProjectDeleteRequest < Request
5
+ def method_name; 'project/delete' end
6
+ request_parameter :project_name
7
+ request_parameter :forcedelete, :default=>true do |v| (v ? 1 : 0).to_s end
8
+
9
+ def initialize project_name, options={}
10
+ super(options)
11
+ self.project_name = project_name
12
+ self.forcedelete = options[:forcedelete]
13
+ end
14
+
15
+ def new_http_request
16
+ new_http_delete_request("#{path}?#{url_encoded_params}")
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+
23
+
@@ -0,0 +1,22 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Mushikago
3
+ module Mitsubachi
4
+ class ProjectDiscontinueRequest < Request
5
+ def method_name; 'project/discontinue' end
6
+ request_parameter :project_name
7
+
8
+ def initialize project_name, options={}
9
+ super(options)
10
+ self.project_name = project_name
11
+ end
12
+
13
+ def new_http_request
14
+ new_http_post_request(path)
15
+ end
16
+ end
17
+ end
18
+ end
19
+
20
+
21
+
22
+
@@ -0,0 +1,17 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Mushikago
3
+ module Mitsubachi
4
+ class ProjectInfoRequest < Request
5
+ def method_name; 'project/info' end
6
+ request_parameter :project_name
7
+ request_parameter :time do |v| v.to_i end
8
+
9
+ def initialize project_name, options={}
10
+ super(options)
11
+ self.project_name = project_name
12
+ self.time = options[:time] if options.has_key?(:time)
13
+ end
14
+ end
15
+ end
16
+ end
17
+
@@ -0,0 +1,21 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Mushikago
3
+ module Mitsubachi
4
+ class ProjectListRequest < Request
5
+ def method_name; 'project/list' end
6
+ request_parameter :limit do |v| v.to_i end
7
+ request_parameter :offset do |v| v.to_i end
8
+ request_parameter :filter
9
+
10
+ def initialize options={}
11
+ super(options)
12
+ self.limit = options[:limit] if options.has_key?(:limit)
13
+ self.offset = options[:offset] if options.has_key?(:offset)
14
+ self.filter = options[:filter] if options.has_key?(:filter)
15
+ end
16
+ end
17
+ end
18
+ end
19
+
20
+
21
+
@@ -0,0 +1,16 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Mushikago
3
+ module Mitsubachi
4
+ class ProjectQueuesRequest < Request
5
+ def method_name; 'project/queues' end
6
+ request_parameter :project_name
7
+
8
+ def initialize project_name, options={}
9
+ super(options)
10
+ self.project_name = project_name
11
+ end
12
+ end
13
+ end
14
+ end
15
+
16
+
@@ -0,0 +1,31 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Mushikago
3
+ module Mitsubachi
4
+ class ProjectUpdateRequest < Request
5
+ def method_name; 'project/update' end
6
+ request_parameter :project_name
7
+ request_parameter :max_lead_time do |v| v.to_i.to_s end
8
+ request_parameter :stdout do |v| (v ? 1 : 0).to_s end
9
+ request_parameter :stderr do |v| (v ? 1 : 0).to_s end
10
+ request_parameter :system_log do |v| (v ? 1 : 0).to_s end
11
+ request_parameter :log_prefix
12
+
13
+ def initialize project_name, options={}
14
+ super(options)
15
+ self.project_name = project_name
16
+ self.dedicated = options[:dedicated] if options.has_key?(:dedicated)
17
+ self.stdout = options[:stdout] if options.has_key?(:stdout)
18
+ self.stderr = options[:stderr] if options.has_key?(:stderr)
19
+ self.system_log = options[:system_log] if options.has_key?(:system_log)
20
+ self.log_prefix = options[:log_prefix] if options.has_key?(:log_prefix)
21
+ end
22
+
23
+ def new_http_request
24
+ new_http_post_request(path)
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+
31
+
@@ -0,0 +1,32 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Mushikago
3
+ module Mitsubachi
4
+ # Mitsubachiのリクエストを表す抽象クラス
5
+ class Request < Mushikago::Http::Request
6
+ include Mushikago::Auth::Signature
7
+
8
+ # @param [Hash] options オプション
9
+ # @option options [String] :endpoint('api.mushikago.org') Mitsubachiのエンドポイント
10
+ def initialize options={}
11
+ super()
12
+ endpoint = options[:endpoint] || Mushikago.config.endpoint
13
+ host, port = endpoint.split(':')
14
+ @host = host
15
+ @port = port if port
16
+ @path = "/#{api_version}/mitsubachi/#{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
@@ -0,0 +1,24 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Mushikago
3
+ module Mitsubachi
4
+ class ResourceDeleteRequest < Request
5
+ def method_name; 'resource/delete' end
6
+ request_parameter :project_name
7
+ request_parameter :file_name
8
+
9
+ def initialize project_name, file_name, options={}
10
+ super(options)
11
+ self.project_name = project_name
12
+ self.file_name = file_name
13
+ end
14
+
15
+ def new_http_request
16
+ new_http_delete_request("#{path}?#{url_encoded_params}")
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+
23
+
24
+
@@ -0,0 +1,19 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Mushikago
3
+ module Mitsubachi
4
+ class ResourceGetRequest < Request
5
+ def method_name; 'resource/get' end
6
+ request_parameter :project_name
7
+ request_parameter :file_name
8
+
9
+ def initialize project_name, file_name, options={}
10
+ super(options)
11
+ self.project_name = project_name
12
+ self.file_name = file_name
13
+ end
14
+ end
15
+ end
16
+ end
17
+
18
+
19
+
@@ -0,0 +1,22 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Mushikago
3
+ module Mitsubachi
4
+ class ResourceListRequest < Request
5
+ def method_name; 'resource/list' end
6
+ request_parameter :project_name
7
+ request_parameter :limit do |v| v.to_i end
8
+ request_parameter :offset do |v| v.to_i end
9
+ request_parameter :filter
10
+
11
+ def initialize project_name, options={}
12
+ super(options)
13
+ self.project_name = project_name
14
+ self.limit = options[:limit] if options.has_key?(:limit)
15
+ self.offset = options[:offset] if options.has_key?(:offset)
16
+ self.filter = options[:filter] if options.has_key?(:filter)
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+
@@ -0,0 +1,33 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Mushikago
3
+ module Mitsubachi
4
+ class ResourceStoreRequest < MultipartRequest
5
+ def method_name; 'resource/store' end
6
+ request_parameter :project_name
7
+ request_parameter :file
8
+ request_parameter :file_name
9
+ request_parameter :content_type
10
+ request_parameter :public, :default=>false do |v| (v ? 1 : 0).to_s end
11
+
12
+ def initialize project_name, file_or_file_name, options={}
13
+ super(options)
14
+ self.project_name = project_name
15
+ if(file_or_file_name.kind_of?(File))
16
+ self.file = file_or_file_name
17
+ else
18
+ self.file = File.new(file_or_file_name.to_s)
19
+ end
20
+ self.file_name = options[:file_name] || file.path
21
+ self.content_type = options[:content_type] || MIME::Types.of(file.path).first.to_s
22
+ self.public = options[:public]
23
+ end
24
+
25
+ def new_http_request
26
+ new_http_post_request(path)
27
+ end
28
+ end
29
+ end
30
+ end
31
+
32
+
33
+
@@ -0,0 +1,23 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Mushikago
3
+ module Mitsubachi
4
+ class ScriptDeleteRequest < Request
5
+ def method_name; 'script/delete' end
6
+ request_parameter :project_name
7
+ request_parameter :script_name
8
+
9
+ def initialize project_name, script_name, options={}
10
+ super(options)
11
+ self.project_name = project_name
12
+ self.script_name = script_name
13
+ end
14
+
15
+ def new_http_request
16
+ new_http_delete_request("#{path}?#{url_encoded_params}")
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+
23
+