yaks-sinatra 0.7.0
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 +7 -0
- data/README.md +30 -0
- data/Rakefile +3 -0
- data/lib/yaks-sinatra.rb +31 -0
- data/yaks-sinatra.gemspec +22 -0
- metadata +77 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 28c35c58ace4346a97002a21dfaed0511727f9ff
|
4
|
+
data.tar.gz: 73530e6769357b55adbcfa83e9a46e5cbda2f6c3
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 64937f85fc62289840d67532d72a02caa28e5847a48548b4c8a0d2673be3e4ab8e710172734131c13ec93c45fa51c4ae030ba4a824549c8931839099b4846a37
|
7
|
+
data.tar.gz: 9fe45f75c8d256e1334330f91e1d6888f4727cc59c661a3e9c3d90a37aa5338bec0629253a86852cf04f20e69cd66f921a19d92919e0b7472657219efb6ff10c
|
data/README.md
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
Provide basic integration for using Yaks in sinatra. It gives you a top level `configure_yaks` method, and a `yaks` helper for use in routes.
|
2
|
+
|
3
|
+
This will register all media types known to Yaks, make sure the right one is picked based on the `Accept` header, and it will put the correct `Content-Type` header on the response.
|
4
|
+
|
5
|
+
|
6
|
+
``` ruby
|
7
|
+
require 'yaks-sinatra'
|
8
|
+
|
9
|
+
configure_yaks do
|
10
|
+
# Yaks configuration as used in Yaks.new do ; ... ; end
|
11
|
+
end
|
12
|
+
|
13
|
+
class RootMapper < Yaks::Mapper
|
14
|
+
link :self, '/
|
15
|
+
link :posts, '/posts'
|
16
|
+
end
|
17
|
+
|
18
|
+
class PostMapper < Yaks::Mapper
|
19
|
+
attributes :title, :body, :date
|
20
|
+
has_one :author
|
21
|
+
end
|
22
|
+
|
23
|
+
get '/' do
|
24
|
+
yaks nil, mapper: RootMapper
|
25
|
+
end
|
26
|
+
|
27
|
+
get '/posts' do
|
28
|
+
yaks Post.all
|
29
|
+
end
|
30
|
+
```
|
data/Rakefile
ADDED
data/lib/yaks-sinatra.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'sinatra/base'
|
2
|
+
require 'yaks'
|
3
|
+
|
4
|
+
module Sinatra
|
5
|
+
module Yaks
|
6
|
+
class << self
|
7
|
+
attr_accessor :yaks_config
|
8
|
+
end
|
9
|
+
|
10
|
+
def configure_yaks(&block)
|
11
|
+
Yaks.yaks_config = ::Yaks.new(&block)
|
12
|
+
|
13
|
+
configure do
|
14
|
+
::Yaks::Format.all.each do |format|
|
15
|
+
mime_type format.format_name, format.mime_type
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
module YaksHelpers
|
22
|
+
def yaks(*args)
|
23
|
+
runner = Yaks.yaks_config.runner(*args, env: env)
|
24
|
+
content_type runner.format
|
25
|
+
runner.result
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
register Yaks
|
30
|
+
helpers YaksHelpers
|
31
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require File.expand_path('../../yaks/lib/yaks/version', __FILE__)
|
4
|
+
|
5
|
+
Gem::Specification.new do |gem|
|
6
|
+
gem.name = 'yaks-sinatra'
|
7
|
+
gem.version = Yaks::VERSION
|
8
|
+
gem.authors = [ 'Arne Brasseur' ]
|
9
|
+
gem.email = [ 'arne@arnebrasseur.net' ]
|
10
|
+
gem.description = 'Sinatra integration for Yaks'
|
11
|
+
gem.summary = gem.description
|
12
|
+
gem.homepage = 'https://github.com/plexus/yaks'
|
13
|
+
gem.license = 'MIT'
|
14
|
+
|
15
|
+
gem.require_paths = %w[lib]
|
16
|
+
gem.files = `git ls-files`.split($/)
|
17
|
+
gem.test_files = gem.files.grep(/^spec/)
|
18
|
+
gem.extra_rdoc_files = %w[README.md]
|
19
|
+
|
20
|
+
gem.add_runtime_dependency 'yaks', Yaks::VERSION
|
21
|
+
gem.add_runtime_dependency 'sinatra', '~> 1.4'
|
22
|
+
end
|
metadata
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: yaks-sinatra
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.7.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Arne Brasseur
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-11-10 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: yaks
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.7.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.7.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: sinatra
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.4'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.4'
|
41
|
+
description: Sinatra integration for Yaks
|
42
|
+
email:
|
43
|
+
- arne@arnebrasseur.net
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files:
|
47
|
+
- README.md
|
48
|
+
files:
|
49
|
+
- README.md
|
50
|
+
- Rakefile
|
51
|
+
- lib/yaks-sinatra.rb
|
52
|
+
- yaks-sinatra.gemspec
|
53
|
+
homepage: https://github.com/plexus/yaks
|
54
|
+
licenses:
|
55
|
+
- MIT
|
56
|
+
metadata: {}
|
57
|
+
post_install_message:
|
58
|
+
rdoc_options: []
|
59
|
+
require_paths:
|
60
|
+
- lib
|
61
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
62
|
+
requirements:
|
63
|
+
- - ">="
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
requirements: []
|
72
|
+
rubyforge_project:
|
73
|
+
rubygems_version: 2.2.2
|
74
|
+
signing_key:
|
75
|
+
specification_version: 4
|
76
|
+
summary: Sinatra integration for Yaks
|
77
|
+
test_files: []
|