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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0c49c3ae295fd127f7533a0af4c543d5315a2929a580a21b6b4c26379e519490
4
- data.tar.gz: 6867e3004c89dc7362a83378f3b0d55a14803d513cc77445c7893a31ffb4e4bd
3
+ metadata.gz: 0c19632ef74b70bca618fa332e555bc93a277ccb71791df1e43f871b2d6d54e7
4
+ data.tar.gz: e1c4be606929e0d1c3a07e21bcf43b9d89847b45ccc59ff3a78ee9713a64bb55
5
5
  SHA512:
6
- metadata.gz: '0056694b64f9ac4d000e85341570b4a5b630f27b5de15d5dcf12eeae1dc3625368abfd1d65a6c0a26f9793cbd6993e076c7e46d76ef97007874e8dddfd75c7af'
7
- data.tar.gz: fa5469997f6e674f3f2b1daf8bbc525637b2cbb2db7b9a8a1d494c85b1ce4d2725753ece2a2d114a905b994fe96f99e9db09178fa6f92483d4ee5d6208a500ad
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.register_defaults
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
@@ -37,9 +37,9 @@ module Yarrow
37
37
  :port,
38
38
  :host,
39
39
  :handler,
40
- :docroot,
40
+ #:docroot,
41
41
  :middleware,
42
- :root_dir
42
+ #:root_dir
43
43
  )
44
44
 
45
45
  # Top level root config namespace.
@@ -18,7 +18,7 @@ assets:
18
18
  - js
19
19
  manifest_file: manifest.json
20
20
  server:
21
- live_reload: true
21
+ live_reload: false
22
22
  auto_index: true
23
23
  default_index: index.html
24
24
  default_type: text/plain
@@ -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(unit=nil)
18
- @unit = 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 check_respond_to!(input)
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
- end
63
-
64
- class Optional
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 Constrained
69
-
106
+
107
+ class Union
70
108
  end
71
109
  end
72
110
  end
@@ -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(path)
56
- !request_path.ends_with(".html") || !request_path.ends_with("/")
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 = Rack::Handler.get(run_options[:server])
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  module Yarrow
3
3
  APP_NAME = 'Yarrow'
4
- VERSION = '0.7.3'
4
+ VERSION = '0.7.4'
5
5
  end
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', '~> 2.0'
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.8'
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.3
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-08 00:00:00.000000000 Z
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: '2.0'
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: '2.0'
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.8'
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.8'
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