yarrow 0.7.3 → 0.7.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/README.md +0 -1
- data/bin/yarrow-server +2 -2
- data/lib/yarrow/config.rb +2 -2
- data/lib/yarrow/defaults.yml +1 -1
- data/lib/yarrow/schema/types.rb +51 -13
- data/lib/yarrow/schema/value.rb +11 -0
- data/lib/yarrow/server.rb +5 -4
- data/lib/yarrow/version.rb +1 -1
- data/yarrow.gemspec +3 -2
- metadata +20 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0c19632ef74b70bca618fa332e555bc93a277ccb71791df1e43f871b2d6d54e7
|
4
|
+
data.tar.gz: e1c4be606929e0d1c3a07e21bcf43b9d89847b45ccc59ff3a78ee9713a64bb55
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 592a83f0ae68084ad789353f8319a290b02e2268c00fd84fed70cba5e1469f5cbd215ea17732801622c8b10867513bdd37fd02dc8bda95d75c3a70014230fb46
|
7
|
+
data.tar.gz: f1eab1e023451b5bbd6a88aecf610a887db96b37fff19c6c4cf500dacfadeb0461865d4ffad118f4b4d254889e52bbbc4583b8d74e5299efe7940308a1eeba07
|
data/README.md
CHANGED
@@ -40,7 +40,6 @@ A rough sketch of the project direction.
|
|
40
40
|
|
41
41
|
| Version | Features |
|
42
42
|
|---------|----------|
|
43
|
-
| `0.6` | Default media type mapping, graph collectors, markup converters |
|
44
43
|
| `0.7` | Content model/object mapping, template/site context |
|
45
44
|
| `0.8` | HTML publishing workflow |
|
46
45
|
| `0.9` | PDF publishing workflow |
|
data/bin/yarrow-server
CHANGED
@@ -9,9 +9,9 @@ $:.unshift(File.join(File.dirname(File.expand_path(path)), '..', 'lib'))
|
|
9
9
|
|
10
10
|
require 'yarrow'
|
11
11
|
|
12
|
-
Yarrow::Configuration.
|
12
|
+
config = Yarrow::Configuration.load_defaults
|
13
13
|
|
14
14
|
Yarrow.logger = Logger.new(STDOUT)
|
15
15
|
|
16
|
-
server = Yarrow::Server.new
|
16
|
+
server = Yarrow::Server.new(config)
|
17
17
|
server.run
|
data/lib/yarrow/config.rb
CHANGED
data/lib/yarrow/defaults.yml
CHANGED
data/lib/yarrow/schema/types.rb
CHANGED
@@ -9,13 +9,25 @@ module Yarrow
|
|
9
9
|
def self.kind_of(t, u)
|
10
10
|
new("#{t} is not a subclass of #{u}")
|
11
11
|
end
|
12
|
+
|
13
|
+
def self.respond_to_any(t, m)
|
14
|
+
new("#{t} does not implement any of #{m}")
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.respond_to_all(t, m)
|
18
|
+
new("#{t} does not implement #{m}")
|
19
|
+
end
|
12
20
|
end
|
13
21
|
|
14
22
|
class TypeClass
|
23
|
+
def self.of(unit_type)
|
24
|
+
new(unit_type)
|
25
|
+
end
|
26
|
+
|
15
27
|
attr_reader :unit
|
16
28
|
|
17
|
-
def initialize(
|
18
|
-
@unit =
|
29
|
+
def initialize(unit_type=nil)
|
30
|
+
@unit = unit_type
|
19
31
|
end
|
20
32
|
|
21
33
|
def check_instance_of!(input)
|
@@ -30,8 +42,16 @@ module Yarrow
|
|
30
42
|
end
|
31
43
|
end
|
32
44
|
|
33
|
-
def
|
45
|
+
def check_respond_to_any!(input, methods)
|
46
|
+
unless methods.any? { |m| input.respond_to?(m) }
|
47
|
+
raise CastError.respond_to_any(input.class, methods)
|
48
|
+
end
|
49
|
+
end
|
34
50
|
|
51
|
+
def check_respond_to_all!(input, methods)
|
52
|
+
unless methods.all? { |m| input.respond_to?(m) }
|
53
|
+
raise CastError.respond_to_all(input.class, methods)
|
54
|
+
end
|
35
55
|
end
|
36
56
|
|
37
57
|
def cast(input); end
|
@@ -50,23 +70,41 @@ module Yarrow
|
|
50
70
|
end
|
51
71
|
end
|
52
72
|
|
53
|
-
class Kind
|
73
|
+
class Kind < TypeClass
|
54
74
|
def cast(input)
|
55
75
|
check_kind_of!(input)
|
56
76
|
input
|
57
77
|
end
|
58
78
|
end
|
59
79
|
|
60
|
-
class Interface
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
80
|
+
class Interface < TypeClass
|
81
|
+
def self.any(*args)
|
82
|
+
interface_type = new(args)
|
83
|
+
interface_type.implementation = :any
|
84
|
+
interface_type
|
85
|
+
end
|
86
|
+
|
87
|
+
def self.all(*args)
|
88
|
+
interface_type = new(args)
|
89
|
+
interface_type.implementation = :all
|
90
|
+
interface_type
|
91
|
+
end
|
92
|
+
|
93
|
+
attr_accessor :implementation
|
94
|
+
|
95
|
+
alias members unit
|
96
|
+
|
97
|
+
def cast(input)
|
98
|
+
case implementation
|
99
|
+
when :any then check_respond_to_any!(input, members)
|
100
|
+
when :all then check_respond_to_all!(input, members)
|
101
|
+
end
|
102
|
+
|
103
|
+
input
|
104
|
+
end
|
66
105
|
end
|
67
|
-
|
68
|
-
class
|
69
|
-
|
106
|
+
|
107
|
+
class Union
|
70
108
|
end
|
71
109
|
end
|
72
110
|
end
|
data/lib/yarrow/schema/value.rb
CHANGED
@@ -1,5 +1,16 @@
|
|
1
1
|
module Yarrow
|
2
2
|
module Schema
|
3
|
+
# class Structure < Struct
|
4
|
+
# def self.inherited(subclass)
|
5
|
+
# unless subclass.name
|
6
|
+
# puts "CLASS"
|
7
|
+
# p caller_locations[3]
|
8
|
+
# else
|
9
|
+
# p subclass.name.downcase.to_sym
|
10
|
+
# end
|
11
|
+
# end
|
12
|
+
# end
|
13
|
+
|
3
14
|
# Value object (with comparison by value equality). This just chucks back a
|
4
15
|
# Ruby struct but wraps the constructor with method advice that handles
|
5
16
|
# type checking and conversion.
|
data/lib/yarrow/server.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'rack'
|
2
|
+
require 'rackup'
|
2
3
|
|
3
4
|
module Yarrow
|
4
5
|
##
|
@@ -52,8 +53,8 @@ module Yarrow
|
|
52
53
|
@app = app
|
53
54
|
end
|
54
55
|
|
55
|
-
def should_try_rewrite(
|
56
|
-
!request_path.
|
56
|
+
def should_try_rewrite(request_path)
|
57
|
+
!request_path.end_with?(".html") || !request_path.end_with?("/")
|
57
58
|
end
|
58
59
|
|
59
60
|
def call(env)
|
@@ -123,14 +124,14 @@ module Yarrow
|
|
123
124
|
reactor.start
|
124
125
|
end
|
125
126
|
|
126
|
-
handler =
|
127
|
+
handler = Rackup::Handler.get(run_options[:server])
|
127
128
|
|
128
129
|
trap(:INT) do
|
129
130
|
handler.shutdown if handler.respond_to?(:shutdown)
|
130
131
|
reactor.stop if live_reload?
|
131
132
|
end
|
132
133
|
|
133
|
-
handler.run(app, run_options)
|
134
|
+
handler.run(app, **run_options)
|
134
135
|
end
|
135
136
|
|
136
137
|
private
|
data/lib/yarrow/version.rb
CHANGED
data/yarrow.gemspec
CHANGED
@@ -14,7 +14,8 @@ Gem::Specification.new do |spec|
|
|
14
14
|
spec.executables << 'yarrow'
|
15
15
|
spec.executables << 'yarrow-server'
|
16
16
|
spec.add_runtime_dependency 'mementus', '~> 0.8'
|
17
|
-
spec.add_runtime_dependency 'rack', '~>
|
17
|
+
spec.add_runtime_dependency 'rack', '~> 3.0'
|
18
|
+
spec.add_runtime_dependency 'rackup', '~> 0.2'
|
18
19
|
spec.add_runtime_dependency 'rack-livereload', '~> 0.3'
|
19
20
|
spec.add_runtime_dependency 'eventmachine', '~> 1.2'
|
20
21
|
spec.add_runtime_dependency 'em-websocket', '~> 0.5.1'
|
@@ -24,7 +25,7 @@ Gem::Specification.new do |spec|
|
|
24
25
|
spec.add_development_dependency 'rake', '~> 13.0'
|
25
26
|
spec.add_development_dependency 'rspec', '~> 3.11'
|
26
27
|
spec.add_development_dependency 'coveralls', '~> 0.8.23'
|
27
|
-
spec.add_development_dependency 'rack-test', '~> 0
|
28
|
+
spec.add_development_dependency 'rack-test', '~> 2.0'
|
28
29
|
spec.homepage = 'http://rubygemspec.org/gems/yarrow'
|
29
30
|
spec.license = 'MIT'
|
30
31
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yarrow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Rickerby
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-10-
|
11
|
+
date: 2022-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mementus
|
@@ -30,14 +30,28 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '3.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '3.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rackup
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.2'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.2'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rack-livereload
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,14 +184,14 @@ dependencies:
|
|
170
184
|
requirements:
|
171
185
|
- - "~>"
|
172
186
|
- !ruby/object:Gem::Version
|
173
|
-
version: '0
|
187
|
+
version: '2.0'
|
174
188
|
type: :development
|
175
189
|
prerelease: false
|
176
190
|
version_requirements: !ruby/object:Gem::Requirement
|
177
191
|
requirements:
|
178
192
|
- - "~>"
|
179
193
|
- !ruby/object:Gem::Version
|
180
|
-
version: '0
|
194
|
+
version: '2.0'
|
181
195
|
description: Yarrow is a tool for generating well structured documentation from a
|
182
196
|
variety of input sources.
|
183
197
|
email: me@maetl.net
|