dmm-sdk-ruby 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/dmm-sdk-ruby.gemspec +2 -2
- data/lib/dmm-sdk.rb +1 -0
- data/lib/dmm.rb +1 -0
- data/lib/dmm/api/base.rb +7 -0
- data/lib/dmm/core.rb +77 -0
- data/lib/dmm/core/configuration.rb +156 -0
- data/lib/dmm/version.rb +3 -0
- metadata +8 -4
- data/lib/dmm/sdk/ruby.rb +0 -9
- data/lib/dmm/sdk/ruby/version.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de24be485715bce4e0231108745d48e4ba81b675
|
4
|
+
data.tar.gz: 1fc4a091932861bc3549d2809732a201b798c558
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71a9ebc838284ed6a6f8dfd412893b197355e87d22120ce9c57922d1ac82314f51f43aa36879a450eaee088071c5c8ff1ebbaf60325d5a5bc888d778b40d055a
|
7
|
+
data.tar.gz: 2966e96bbdaf0ce7449b5928a656c4086b8e4af6d33011967bb8b9e09a5cc8e0df2ba329c209705a45627f4cc963ac308ff2d12ed8b00b888bff13265ffa3a30
|
data/dmm-sdk-ruby.gemspec
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
lib = File.expand_path('../lib', __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'dmm/
|
4
|
+
require 'dmm/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "dmm-sdk-ruby"
|
8
|
-
spec.version = Dmm::
|
8
|
+
spec.version = Dmm::VERSION
|
9
9
|
spec.authors = ["sutoh"]
|
10
10
|
spec.email = ["sutoh.shohei@human-net.co.jp"]
|
11
11
|
spec.description = %q{ dmm-api はXML取得の為、Ruby用のsdk Library作成 }
|
data/lib/dmm-sdk.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'dmm/core'
|
data/lib/dmm.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'dmm-sdk'
|
data/lib/dmm/api/base.rb
ADDED
data/lib/dmm/core.rb
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
require 'aws/version'
|
2
|
+
require 'set'
|
3
|
+
|
4
|
+
module DMM
|
5
|
+
class SvcDetails
|
6
|
+
def initialize class_name, options
|
7
|
+
@class_name = classname
|
8
|
+
@full_name = options[:full_name]
|
9
|
+
@method_name = options[:method_name]
|
10
|
+
@method_alias = options[:method_alias]
|
11
|
+
@old_name = @method_alias || @method_name
|
12
|
+
end
|
13
|
+
attr_render :class_name, :full_name, :method_name, :method_alias, :old_name
|
14
|
+
end
|
15
|
+
|
16
|
+
SERVICES = [
|
17
|
+
SvcDetails.new("Com"
|
18
|
+
:full_name => "DMM.com",
|
19
|
+
:method_name => :com),
|
20
|
+
SvcDetails.new("R18"
|
21
|
+
:full_name => "DMM.r18",
|
22
|
+
:method_name => :r18)
|
23
|
+
].inject({}) { |h,svc| h[svc.class_name] = svc; h }
|
24
|
+
|
25
|
+
ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))
|
26
|
+
|
27
|
+
module Core
|
28
|
+
autoload :Configuration, 'aws/core/configuration'
|
29
|
+
|
30
|
+
#module XML
|
31
|
+
#end
|
32
|
+
|
33
|
+
#module Http
|
34
|
+
#end
|
35
|
+
end
|
36
|
+
|
37
|
+
class << self
|
38
|
+
|
39
|
+
SERVICES.values.each do |svc|
|
40
|
+
define_method(svc.method_name) do |*args|
|
41
|
+
AWS.const_get(svc.class_name).new(args.first || {})
|
42
|
+
end
|
43
|
+
alias_method(svc.method_alias, svc.method_name) if svc.method_alias
|
44
|
+
end
|
45
|
+
|
46
|
+
@@coonfig = nil
|
47
|
+
|
48
|
+
def config options = {}
|
49
|
+
@@config ||= Core::Configuration.new
|
50
|
+
@@config = @@config.with(options) unless options.empty?
|
51
|
+
@@config
|
52
|
+
end
|
53
|
+
|
54
|
+
# Eagerly loads all DMM classes/modules registered with autoload.
|
55
|
+
# @return [void]
|
56
|
+
def eager_autoload! klass_or_module = AWS, visited = Set.new
|
57
|
+
kalass_or_module.constants.each do |const_name|
|
58
|
+
path = klass_or_module.autoload?(const_name)
|
59
|
+
require(path) if path
|
60
|
+
const = klass_or_module.const_get(const_name)
|
61
|
+
if const.is_a?(Module)
|
62
|
+
unless visited.include?(const)
|
63
|
+
visited << const
|
64
|
+
eager_autoload!(const, visited)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
SERVICES.values.each do |svc|
|
72
|
+
autoload(svc.class_name, "aws/"#{svc.old_name}")
|
73
|
+
require "aws/#{svc.old_name}/config"
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
|
@@ -0,0 +1,156 @@
|
|
1
|
+
require 'set'
|
2
|
+
require 'uri'
|
3
|
+
|
4
|
+
module AWS
|
5
|
+
module Core
|
6
|
+
class Confiduration
|
7
|
+
|
8
|
+
# Creates a new Configuration object.
|
9
|
+
# @param options (see DMM.config)
|
10
|
+
# @option options (see DMM.config)
|
11
|
+
def initialize options = {}
|
12
|
+
@created = options.delete(:__created__) || {}
|
13
|
+
|
14
|
+
options.each_pair do |opt_name, value|
|
15
|
+
opt_name = opt_name.to_sym
|
16
|
+
if self.class.accepted_options.include?(opt_name)
|
17
|
+
supplied[opt_name] = value
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# @return [Hash] Returns a hash with your configured credentials.
|
23
|
+
def credentials
|
24
|
+
credentials = {}
|
25
|
+
[:api_id, :affiliate_id].each do |opt|
|
26
|
+
if value = credential_provider.send(opt)
|
27
|
+
credentials[opt] = value
|
28
|
+
end
|
29
|
+
end
|
30
|
+
credentials
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
def with options = {}
|
35
|
+
# symbolize option keys
|
36
|
+
options = options.inject({}) {|h,kv| h[kv.first.to_sym] = kv.last; h }
|
37
|
+
values = supplied.merge(options)
|
38
|
+
if supplied == values
|
39
|
+
self # nothing changed
|
40
|
+
else
|
41
|
+
self.class.new(values.merge(:__created__ => @created.dup))
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
|
46
|
+
# @return [Hash] Returns a hash of all configuration values.
|
47
|
+
def to_h
|
48
|
+
self.class.accepted_options.inject({}) do |h,k|
|
49
|
+
h.merge(k => send(k))
|
50
|
+
end
|
51
|
+
end
|
52
|
+
alias_method :to_hash, :to_h
|
53
|
+
|
54
|
+
|
55
|
+
# @return [Boolean] Returns true if the two configuration objects have
|
56
|
+
# the same values.
|
57
|
+
def eql? other
|
58
|
+
other.is_a?(self.class) and self.supplied == other.supplied
|
59
|
+
end
|
60
|
+
alias_method :==, :eql?
|
61
|
+
|
62
|
+
|
63
|
+
def inspect
|
64
|
+
"<#{self.class.name}>"
|
65
|
+
end
|
66
|
+
|
67
|
+
|
68
|
+
protected
|
69
|
+
|
70
|
+
add_options :api_id
|
71
|
+
|
72
|
+
add_options :affiliate_id
|
73
|
+
|
74
|
+
def supplied
|
75
|
+
@supplied ||= {}
|
76
|
+
end
|
77
|
+
|
78
|
+
=begin
|
79
|
+
class << self
|
80
|
+
def accepted_options
|
81
|
+
@options ||= Set.new
|
82
|
+
end
|
83
|
+
|
84
|
+
|
85
|
+
def add_option name, default_value = nil, options = {}, &transform
|
86
|
+
accepted_options << name
|
87
|
+
define_method(name) do |&default_override|
|
88
|
+
value =
|
89
|
+
if supplied.has_key?(name)
|
90
|
+
supplied[name]
|
91
|
+
elsif default_override
|
92
|
+
default_override.call
|
93
|
+
else
|
94
|
+
default_value
|
95
|
+
end
|
96
|
+
transform ? transform.call(self, value) : value
|
97
|
+
end
|
98
|
+
alias_method("#{name}?", name) if options[:boolean]
|
99
|
+
end
|
100
|
+
|
101
|
+
|
102
|
+
# Configuration options that have dependencies are re-recreated
|
103
|
+
# anytime one of their dependent configuration values are
|
104
|
+
# changed.
|
105
|
+
# @api private
|
106
|
+
def add_option_with_needs name, needs, &create_block
|
107
|
+
accepted_options << name
|
108
|
+
define_method(name) do
|
109
|
+
return supplied[name] if supplied.has_key?(name)
|
110
|
+
needed = needs.inject({}) {|h,need| h.merge(need => send(need)) }
|
111
|
+
unless @created.key?(name) and @created[name][:needed] == needed
|
112
|
+
created = {}
|
113
|
+
created[:object] = create_block.call(self,needed)
|
114
|
+
created[:needed] = needed
|
115
|
+
@created[name] = created
|
116
|
+
end
|
117
|
+
@created[name][:object]
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
def add_service name, ruby_name, endpoint_pattern = nil, &endpoint_builder
|
122
|
+
svc = SERVICES[name]
|
123
|
+
svc_opt = svc.method_name
|
124
|
+
ruby_name = svc.old_name
|
125
|
+
add_option(svc_opt, {})
|
126
|
+
needs = [
|
127
|
+
:"#{ruby_name}_endpoint",
|
128
|
+
:"#{ruby_name}_port",
|
129
|
+
:"#{ruby_name}_region",
|
130
|
+
:credential_provider,
|
131
|
+
:http_handler,
|
132
|
+
:http_read_timeout,
|
133
|
+
:http_continue_timeout,
|
134
|
+
:http_continue_threshold,
|
135
|
+
:log_formatter,
|
136
|
+
:log_level,
|
137
|
+
:logger,
|
138
|
+
:proxy_uri,
|
139
|
+
:max_retries,
|
140
|
+
:stub_requests?,
|
141
|
+
:ssl_verify_peer?,
|
142
|
+
:ssl_ca_file,
|
143
|
+
:ssl_ca_path,
|
144
|
+
:use_ssl?,
|
145
|
+
:user_agent_prefix,
|
146
|
+
]
|
147
|
+
create_block = lambda do |config,client_options|
|
148
|
+
AWS.const_get(name)::Client.new(:config => config)
|
149
|
+
end
|
150
|
+
add_option_with_needs :"#{ruby_name}_client", needs, &create_block
|
151
|
+
end
|
152
|
+
end
|
153
|
+
=end
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
data/lib/dmm/version.rb
ADDED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dmm-sdk-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sutoh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-07-
|
11
|
+
date: 2013-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -51,8 +51,12 @@ files:
|
|
51
51
|
- README.md
|
52
52
|
- Rakefile
|
53
53
|
- dmm-sdk-ruby.gemspec
|
54
|
-
- lib/dmm
|
55
|
-
- lib/dmm
|
54
|
+
- lib/dmm-sdk.rb
|
55
|
+
- lib/dmm.rb
|
56
|
+
- lib/dmm/api/base.rb
|
57
|
+
- lib/dmm/core.rb
|
58
|
+
- lib/dmm/core/configuration.rb
|
59
|
+
- lib/dmm/version.rb
|
56
60
|
homepage: ''
|
57
61
|
licenses:
|
58
62
|
- MIT
|
data/lib/dmm/sdk/ruby.rb
DELETED