yarrow 0.7.3 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
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