typekit-client 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -1
- data/README.md +1 -4
- data/bin/typekit +0 -8
- data/lib/typekit.rb +3 -5
- data/lib/typekit/client.rb +28 -21
- data/lib/typekit/core.rb +23 -8
- data/lib/typekit/helper.rb +0 -40
- data/lib/typekit/processing.rb +0 -1
- data/lib/typekit/processing/converter.rb +2 -1
- data/lib/typekit/processing/converter/unknown.rb +2 -1
- data/lib/typekit/processing/translator.rb +6 -9
- data/lib/typekit/record.rb +2 -2
- data/lib/typekit/version.rb +1 -1
- data/spec/spec_helper.rb +1 -0
- data/spec/typekit/client_spec.rb +1 -3
- data/spec/typekit/helper_spec.rb +0 -88
- data/spec/typekit/processing/converter_spec.rb +1 -2
- data/spec/typekit/record/base_spec.rb +0 -1
- data/spec/typekit/record_spec.rb +0 -1
- data/typekit-client.gemspec +3 -3
- metadata +18 -41
- data/lib/typekit/configuration.rb +0 -16
- data/lib/typekit/configuration/base.rb +0 -21
- data/lib/typekit/configuration/default.rb +0 -38
- data/lib/typekit/connection.rb +0 -10
- data/lib/typekit/connection/adaptor.rb +0 -13
- data/lib/typekit/connection/adaptor/standard.rb +0 -32
- data/lib/typekit/connection/dispatcher.rb +0 -17
- data/lib/typekit/connection/request.rb +0 -26
- data/lib/typekit/connection/response.rb +0 -16
- data/lib/typekit/processing/parser.rb +0 -14
- data/lib/typekit/processing/parser/json.rb +0 -15
- data/lib/typekit/processing/parser/yaml.rb +0 -15
- data/lib/typekit/routing.rb +0 -9
- data/lib/typekit/routing/mapper.rb +0 -43
- data/lib/typekit/routing/node.rb +0 -5
- data/lib/typekit/routing/node/base.rb +0 -46
- data/lib/typekit/routing/node/collection.rb +0 -34
- data/lib/typekit/routing/node/operation.rb +0 -32
- data/lib/typekit/routing/node/root.rb +0 -8
- data/lib/typekit/routing/node/scope.rb +0 -19
- data/lib/typekit/routing/proxy.rb +0 -17
- data/spec/typekit/configuration_spec.rb +0 -50
- data/spec/typekit/connection/adaptor_spec.rb +0 -24
- data/spec/typekit/connection/dispatcher_spec.rb +0 -36
- data/spec/typekit/connection/request_spec.rb +0 -13
- data/spec/typekit/connection/response_spec.rb +0 -18
- data/spec/typekit/processing/parser_spec.rb +0 -23
- data/spec/typekit/routing/mapper_spec.rb +0 -177
- data/spec/typekit/routing/node_spec.rb +0 -61
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require 'typekit'
|
3
2
|
|
4
3
|
describe Typekit::Processing::Converter do
|
5
4
|
def create(name)
|
@@ -47,7 +46,7 @@ describe Typekit::Processing::Converter do
|
|
47
46
|
%w{kittens puppies}.each do |name|
|
48
47
|
it "returns unknowns like '#{ name }' as they are" do
|
49
48
|
result = create(name).process(request, 42)
|
50
|
-
expect(result).to
|
49
|
+
expect(result).to eq(name => 42)
|
51
50
|
end
|
52
51
|
end
|
53
52
|
end
|
data/spec/typekit/record_spec.rb
CHANGED
data/typekit-client.gemspec
CHANGED
@@ -9,9 +9,8 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = [ 'Ivan Ukhov' ]
|
10
10
|
spec.email = [ 'ivan.ukhov@gmail.com' ]
|
11
11
|
spec.summary = 'A Ruby library for accessing the Typekit API'
|
12
|
-
spec.description = 'A Ruby library for
|
13
|
-
'
|
14
|
-
'provided by the Typekit service.'
|
12
|
+
spec.description = 'A Ruby library for manipulating the resources ' \
|
13
|
+
'provided by the Typekit Web service.'
|
15
14
|
spec.homepage = 'https://github.com/IvanUkhov/typekit-client'
|
16
15
|
spec.license = 'MIT'
|
17
16
|
|
@@ -24,6 +23,7 @@ Gem::Specification.new do |spec|
|
|
24
23
|
|
25
24
|
spec.add_dependency 'rack', '~> 1.5'
|
26
25
|
spec.add_dependency 'json', '~> 1.8'
|
26
|
+
spec.add_dependency 'apitizer', '~> 0.0.1'
|
27
27
|
|
28
28
|
spec.add_development_dependency 'bundler', '~> 1.6'
|
29
29
|
spec.add_development_dependency 'rake'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: typekit-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ivan Ukhov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-06-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.8'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: apitizer
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.0.1
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.0.1
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: bundler
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,8 +136,8 @@ dependencies:
|
|
122
136
|
- - "~>"
|
123
137
|
- !ruby/object:Gem::Version
|
124
138
|
version: '2.9'
|
125
|
-
description: A Ruby library for
|
126
|
-
|
139
|
+
description: A Ruby library for manipulating the resources provided by the Typekit
|
140
|
+
Web service.
|
127
141
|
email:
|
128
142
|
- ivan.ukhov@gmail.com
|
129
143
|
executables:
|
@@ -143,15 +157,6 @@ files:
|
|
143
157
|
- bin/typekit
|
144
158
|
- lib/typekit.rb
|
145
159
|
- lib/typekit/client.rb
|
146
|
-
- lib/typekit/configuration.rb
|
147
|
-
- lib/typekit/configuration/base.rb
|
148
|
-
- lib/typekit/configuration/default.rb
|
149
|
-
- lib/typekit/connection.rb
|
150
|
-
- lib/typekit/connection/adaptor.rb
|
151
|
-
- lib/typekit/connection/adaptor/standard.rb
|
152
|
-
- lib/typekit/connection/dispatcher.rb
|
153
|
-
- lib/typekit/connection/request.rb
|
154
|
-
- lib/typekit/connection/response.rb
|
155
160
|
- lib/typekit/core.rb
|
156
161
|
- lib/typekit/helper.rb
|
157
162
|
- lib/typekit/processing.rb
|
@@ -162,9 +167,6 @@ files:
|
|
162
167
|
- lib/typekit/processing/converter/record.rb
|
163
168
|
- lib/typekit/processing/converter/records.rb
|
164
169
|
- lib/typekit/processing/converter/unknown.rb
|
165
|
-
- lib/typekit/processing/parser.rb
|
166
|
-
- lib/typekit/processing/parser/json.rb
|
167
|
-
- lib/typekit/processing/parser/yaml.rb
|
168
170
|
- lib/typekit/processing/translator.rb
|
169
171
|
- lib/typekit/record.rb
|
170
172
|
- lib/typekit/record/base.rb
|
@@ -172,15 +174,6 @@ files:
|
|
172
174
|
- lib/typekit/record/kit.rb
|
173
175
|
- lib/typekit/record/library.rb
|
174
176
|
- lib/typekit/record/variation.rb
|
175
|
-
- lib/typekit/routing.rb
|
176
|
-
- lib/typekit/routing/mapper.rb
|
177
|
-
- lib/typekit/routing/node.rb
|
178
|
-
- lib/typekit/routing/node/base.rb
|
179
|
-
- lib/typekit/routing/node/collection.rb
|
180
|
-
- lib/typekit/routing/node/operation.rb
|
181
|
-
- lib/typekit/routing/node/root.rb
|
182
|
-
- lib/typekit/routing/node/scope.rb
|
183
|
-
- lib/typekit/routing/proxy.rb
|
184
177
|
- lib/typekit/version.rb
|
185
178
|
- spec/cassettes/delete_kits_xxx_ok.yml
|
186
179
|
- spec/cassettes/index_kits_ok.yml
|
@@ -189,18 +182,10 @@ files:
|
|
189
182
|
- spec/spec_helper.rb
|
190
183
|
- spec/support/rest_helper.rb
|
191
184
|
- spec/typekit/client_spec.rb
|
192
|
-
- spec/typekit/configuration_spec.rb
|
193
|
-
- spec/typekit/connection/adaptor_spec.rb
|
194
|
-
- spec/typekit/connection/dispatcher_spec.rb
|
195
|
-
- spec/typekit/connection/request_spec.rb
|
196
|
-
- spec/typekit/connection/response_spec.rb
|
197
185
|
- spec/typekit/helper_spec.rb
|
198
186
|
- spec/typekit/processing/converter_spec.rb
|
199
|
-
- spec/typekit/processing/parser_spec.rb
|
200
187
|
- spec/typekit/record/base_spec.rb
|
201
188
|
- spec/typekit/record_spec.rb
|
202
|
-
- spec/typekit/routing/mapper_spec.rb
|
203
|
-
- spec/typekit/routing/node_spec.rb
|
204
189
|
- typekit-client.gemspec
|
205
190
|
homepage: https://github.com/IvanUkhov/typekit-client
|
206
191
|
licenses:
|
@@ -234,15 +219,7 @@ test_files:
|
|
234
219
|
- spec/spec_helper.rb
|
235
220
|
- spec/support/rest_helper.rb
|
236
221
|
- spec/typekit/client_spec.rb
|
237
|
-
- spec/typekit/configuration_spec.rb
|
238
|
-
- spec/typekit/connection/adaptor_spec.rb
|
239
|
-
- spec/typekit/connection/dispatcher_spec.rb
|
240
|
-
- spec/typekit/connection/request_spec.rb
|
241
|
-
- spec/typekit/connection/response_spec.rb
|
242
222
|
- spec/typekit/helper_spec.rb
|
243
223
|
- spec/typekit/processing/converter_spec.rb
|
244
|
-
- spec/typekit/processing/parser_spec.rb
|
245
224
|
- spec/typekit/record/base_spec.rb
|
246
225
|
- spec/typekit/record_spec.rb
|
247
|
-
- spec/typekit/routing/mapper_spec.rb
|
248
|
-
- spec/typekit/routing/node_spec.rb
|
@@ -1,16 +0,0 @@
|
|
1
|
-
require_relative 'configuration/base'
|
2
|
-
require_relative 'configuration/default'
|
3
|
-
|
4
|
-
module Typekit
|
5
|
-
module Configuration
|
6
|
-
Error = Class.new(Typekit::Error)
|
7
|
-
|
8
|
-
def self.build(name, **options)
|
9
|
-
self.const_get(name.to_s.capitalize).new(**options)
|
10
|
-
rescue NameError
|
11
|
-
raise Error, 'Unknown configuration'
|
12
|
-
rescue ArgumentError => e
|
13
|
-
raise Error, 'Not enough arguments'
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module Typekit
|
2
|
-
module Configuration
|
3
|
-
class Base
|
4
|
-
attr_reader :version, :format, :token
|
5
|
-
|
6
|
-
def initialize(version: 1, format: :json, token:)
|
7
|
-
@version = version
|
8
|
-
@format = format
|
9
|
-
@token = token
|
10
|
-
end
|
11
|
-
|
12
|
-
[ :mapper, :dispatcher, :translator ].each do |component|
|
13
|
-
class_eval <<-METHOD, __FILE__, __LINE__ + 1
|
14
|
-
def #{ component }
|
15
|
-
@#{ component } ||= build_#{ component }
|
16
|
-
end
|
17
|
-
METHOD
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
module Typekit
|
2
|
-
module Configuration
|
3
|
-
class Default < Base
|
4
|
-
private
|
5
|
-
|
6
|
-
def build_mapper
|
7
|
-
context = build_context
|
8
|
-
Routing::Mapper.new do
|
9
|
-
scope context do
|
10
|
-
resources :families, only: :show do
|
11
|
-
show ':variant', on: :member
|
12
|
-
end
|
13
|
-
|
14
|
-
resources :kits do
|
15
|
-
resources :families, only: [ :show, :update, :delete ]
|
16
|
-
show :published, on: :member
|
17
|
-
update :publish, on: :member
|
18
|
-
end
|
19
|
-
|
20
|
-
resources :libraries, only: [ :index, :show ]
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def build_dispatcher
|
26
|
-
Connection::Dispatcher.new(adaptor: :standard, token: token)
|
27
|
-
end
|
28
|
-
|
29
|
-
def build_translator
|
30
|
-
Processing::Translator.new(format: format)
|
31
|
-
end
|
32
|
-
|
33
|
-
def build_context
|
34
|
-
[ Typekit.address, "v#{ version }", format ]
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
data/lib/typekit/connection.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
require 'net/https'
|
2
|
-
require 'uri'
|
3
|
-
|
4
|
-
module Typekit
|
5
|
-
module Connection
|
6
|
-
module Adaptor
|
7
|
-
class Standard
|
8
|
-
def process(method, address, parameters = {}, headers = {})
|
9
|
-
klass = Net::HTTP.const_get(method.to_s.capitalize)
|
10
|
-
request = klass.new(build_uri(address, parameters))
|
11
|
-
headers.each { |k, v| request[k] = v }
|
12
|
-
http = Net::HTTP.new(request.uri.host, request.uri.port)
|
13
|
-
http.use_ssl = true if address =~ /^https:/
|
14
|
-
response = http.request(request)
|
15
|
-
[ response.code, response.to_hash, response.body ]
|
16
|
-
rescue NameError
|
17
|
-
raise Error, 'Invalid method'
|
18
|
-
rescue SocketError
|
19
|
-
raise Error, 'Connection failed'
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
def build_uri(address, parameters)
|
25
|
-
chunks = [ address ]
|
26
|
-
chunks << Helper.build_query(parameters) unless parameters.empty?
|
27
|
-
URI(chunks.join('?'))
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module Typekit
|
2
|
-
module Connection
|
3
|
-
class Dispatcher
|
4
|
-
def initialize(adaptor: :standard, token:)
|
5
|
-
@token = token
|
6
|
-
@adaptor = Adaptor.build(adaptor)
|
7
|
-
end
|
8
|
-
|
9
|
-
def process(request)
|
10
|
-
method = Helper.translate_action(request.action)
|
11
|
-
code, _, body = @adaptor.process(method, request.address,
|
12
|
-
request.parameters, 'X-Typekit-Token' => @token)
|
13
|
-
Response.new(code: code.to_i, body: body)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'forwardable'
|
2
|
-
|
3
|
-
module Typekit
|
4
|
-
module Connection
|
5
|
-
class Request
|
6
|
-
extend Forwardable
|
7
|
-
|
8
|
-
attr_reader :action, :parameters, :path, :node
|
9
|
-
def_delegators :@path, :<<
|
10
|
-
|
11
|
-
def initialize(action:, parameters: {})
|
12
|
-
@action = action
|
13
|
-
@parameters = parameters
|
14
|
-
@path = []
|
15
|
-
end
|
16
|
-
|
17
|
-
def address
|
18
|
-
@path.map(&:to_s).join('/')
|
19
|
-
end
|
20
|
-
|
21
|
-
def sign(node)
|
22
|
-
@node = node
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
require_relative 'parser/json'
|
2
|
-
require_relative 'parser/yaml'
|
3
|
-
|
4
|
-
module Typekit
|
5
|
-
module Processing
|
6
|
-
module Parser
|
7
|
-
def self.build(format)
|
8
|
-
self.const_get(format.to_s.upcase).new
|
9
|
-
rescue NameError
|
10
|
-
raise Error, 'Unknown format'
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
data/lib/typekit/routing.rb
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
require 'forwardable'
|
2
|
-
|
3
|
-
module Typekit
|
4
|
-
module Routing
|
5
|
-
class Mapper
|
6
|
-
extend Forwardable
|
7
|
-
|
8
|
-
def_delegator :@root, :assemble, :trace
|
9
|
-
|
10
|
-
def initialize(&block)
|
11
|
-
@root = Node::Root.new
|
12
|
-
define(&block) if block_given?
|
13
|
-
end
|
14
|
-
|
15
|
-
def define(&block)
|
16
|
-
proxy = Proxy.new(self)
|
17
|
-
proxy.instance_eval(&block)
|
18
|
-
end
|
19
|
-
|
20
|
-
def define_scope(path, parent: @root, &block)
|
21
|
-
child = Node::Scope.new(path)
|
22
|
-
parent.append(child)
|
23
|
-
proxy = Proxy.new(self, parent: child)
|
24
|
-
proxy.instance_eval(&block)
|
25
|
-
end
|
26
|
-
|
27
|
-
def define_resources(name, parent: @root, **options, &block)
|
28
|
-
child = Node::Collection.new(name, **options)
|
29
|
-
parent.append(child)
|
30
|
-
return unless block_given?
|
31
|
-
proxy = Proxy.new(self, parent: child)
|
32
|
-
proxy.instance_eval(&block)
|
33
|
-
end
|
34
|
-
|
35
|
-
Typekit.actions.each do |action|
|
36
|
-
define_method "define_#{ action }" do |name, parent:, **options|
|
37
|
-
child = Node::Operation.new(name, action: action, **options)
|
38
|
-
parent.append(child)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|