hanami 1.3.0.beta1 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/FEATURES.md +8 -1
- data/README.md +3 -2
- data/hanami.gemspec +10 -10
- data/lib/hanami/application.rb +2 -2
- data/lib/hanami/application_configuration.rb +3 -3
- data/lib/hanami/cli/commands/generate/app/layout_spec.minitest.erb +1 -2
- data/lib/hanami/cli/commands/generate/app/layout_spec.rspec.erb +1 -2
- data/lib/hanami/cli/commands/new.rb +1 -1
- data/lib/hanami/common_logger.rb +12 -2
- data/lib/hanami/components/app/routes.rb +7 -5
- data/lib/hanami/components/routes_inspector.rb +1 -1
- data/lib/hanami/configuration.rb +1 -1
- data/lib/hanami/{middleware.rb → middleware_stack.rb} +5 -5
- data/lib/hanami/version.rb +1 -1
- metadata +25 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 870b0c86168d11ad956299e21d5539258f7ee546cc2464f1fcb574613077a924
|
4
|
+
data.tar.gz: eadbb4b369ae677fdfab342efaefdf7306b9f51cd6cb16563bab3c193e54df93
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '03280999dd346b5d755e4a125750556cb2e7060f0191f6f5a77ad44c4f6844c50af036694edcad618c02e04ab39d5ed0911415d897a384519d95d15178a5e4fd'
|
7
|
+
data.tar.gz: 671e094c229f016afb38022c8253a85a89b1e3ecc9ef2f9662505c97677f4635c66f85d18519a3d79735187bc4923edacee489e65e2ed79aee60f2b4dd4e746f
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,14 @@
|
|
1
1
|
# Hanami
|
2
2
|
The web, with simplicity.
|
3
3
|
|
4
|
+
## v1.3.0 - 2018-10-24
|
5
|
+
### Added
|
6
|
+
- [Luca Guidi] Automatically log body payload from body parsers
|
7
|
+
|
8
|
+
### Fixed
|
9
|
+
- [Luca Guidi] Generate correct syntax for layout unit tests
|
10
|
+
- [Vladislav Yashin] Fix concatenation of `Pathname` and `String` in `Hanami::CommonLogger`
|
11
|
+
|
4
12
|
## v1.3.0.beta1 - 2018-08-08
|
5
13
|
### Added
|
6
14
|
- [Sean Collins] Generate new projects with RSpec as default testing framework
|
data/FEATURES.md
CHANGED
@@ -3,7 +3,14 @@
|
|
3
3
|
|
4
4
|
## Features
|
5
5
|
|
6
|
-
## v1.3.0
|
6
|
+
## v1.3.0 - 2018-10-24
|
7
|
+
|
8
|
+
- Default testing framework is RSpec
|
9
|
+
- Introduced `Hanami::Middleware::BodyParser` Rack middleware
|
10
|
+
- Log payload (body) for non-GET HTTP requests coming from body parsers
|
11
|
+
- Added support for `reply_to` in mailers
|
12
|
+
- Variadic arguments for `hanami-cli`
|
13
|
+
- Array as argument or option for `hanami-cli`
|
7
14
|
|
8
15
|
## v1.2.0 - 2018-04-11
|
9
16
|
|
data/README.md
CHANGED
@@ -47,7 +47,7 @@ cd bookshelf && bundle
|
|
47
47
|
bundle exec hanami server # visit http://localhost:2300
|
48
48
|
```
|
49
49
|
|
50
|
-
Please follow along with the [Getting Started guide](
|
50
|
+
Please follow along with the [Getting Started guide](https://guides.hanamirb.org/getting-started/).
|
51
51
|
|
52
52
|
## Donations
|
53
53
|
|
@@ -63,7 +63,8 @@ You can give back to Open Source, by supporting Hanami development via a [donati
|
|
63
63
|
|
64
64
|
* Home page: http://hanamirb.org
|
65
65
|
* Community: http://hanamirb.org/community
|
66
|
-
* Guides:
|
66
|
+
* Guides: https://guides.hanamirb.org
|
67
|
+
* Snippets: https://snippets.hanamirb.org
|
67
68
|
* Mailing List: http://hanamirb.org/mailing-list
|
68
69
|
* API Doc: http://rdoc.info/gems/hanami
|
69
70
|
* Bugs/Issues: https://github.com/hanami/hanami/issues
|
data/hanami.gemspec
CHANGED
@@ -21,20 +21,20 @@ Gem::Specification.new do |spec|
|
|
21
21
|
|
22
22
|
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
23
23
|
|
24
|
-
spec.add_dependency 'hanami-utils', '~> 1.3
|
25
|
-
spec.add_dependency 'hanami-validations', '~> 1.3
|
26
|
-
spec.add_dependency 'hanami-router', '~> 1.3
|
27
|
-
spec.add_dependency 'hanami-controller', '~> 1.3
|
28
|
-
spec.add_dependency 'hanami-view', '~> 1.3
|
29
|
-
spec.add_dependency 'hanami-helpers', '~> 1.3
|
30
|
-
spec.add_dependency 'hanami-mailer', '~> 1.3
|
31
|
-
spec.add_dependency 'hanami-assets', '~> 1.3
|
32
|
-
spec.add_dependency 'hanami-cli', '~> 0.3
|
24
|
+
spec.add_dependency 'hanami-utils', '~> 1.3'
|
25
|
+
spec.add_dependency 'hanami-validations', '~> 1.3'
|
26
|
+
spec.add_dependency 'hanami-router', '~> 1.3'
|
27
|
+
spec.add_dependency 'hanami-controller', '~> 1.3'
|
28
|
+
spec.add_dependency 'hanami-view', '~> 1.3'
|
29
|
+
spec.add_dependency 'hanami-helpers', '~> 1.3'
|
30
|
+
spec.add_dependency 'hanami-mailer', '~> 1.3'
|
31
|
+
spec.add_dependency 'hanami-assets', '~> 1.3'
|
32
|
+
spec.add_dependency 'hanami-cli', '~> 0.3'
|
33
33
|
spec.add_dependency 'concurrent-ruby', '~> 1.0'
|
34
34
|
spec.add_dependency 'bundler'
|
35
35
|
|
36
36
|
spec.add_development_dependency 'rspec', '~> 3.7'
|
37
|
-
spec.add_development_dependency 'rack-test', '~>
|
37
|
+
spec.add_development_dependency 'rack-test', '~> 1.1'
|
38
38
|
spec.add_development_dependency 'aruba', '~> 0.14'
|
39
39
|
spec.add_development_dependency 'rake', '~> 12.0'
|
40
40
|
end
|
data/lib/hanami/application.rb
CHANGED
@@ -191,12 +191,12 @@ module Hanami
|
|
191
191
|
|
192
192
|
# Rack middleware stack
|
193
193
|
#
|
194
|
-
# @return [Hanami::
|
194
|
+
# @return [Hanami::MiddlewareStack] the middleware stack
|
195
195
|
#
|
196
196
|
# @since 0.1.0
|
197
197
|
# @api private
|
198
198
|
#
|
199
|
-
# @see Hanami::
|
199
|
+
# @see Hanami::MiddlewareStack
|
200
200
|
attr_reader :middleware
|
201
201
|
end
|
202
202
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'hanami/utils/kernel'
|
2
2
|
require 'hanami/environment'
|
3
|
-
require 'hanami/
|
3
|
+
require 'hanami/middleware_stack'
|
4
4
|
require 'hanami/config/cookies'
|
5
5
|
require 'hanami/config/framework_configuration'
|
6
6
|
require 'hanami/config/load_paths'
|
@@ -670,7 +670,7 @@ module Hanami
|
|
670
670
|
# @since 0.2.0
|
671
671
|
#
|
672
672
|
# @see http://rdoc.info/gems/rack/Rack/Static
|
673
|
-
# @see Hanami::
|
673
|
+
# @see Hanami::MiddlewareStack#use
|
674
674
|
#
|
675
675
|
# @example
|
676
676
|
# require 'hanami'
|
@@ -684,7 +684,7 @@ module Hanami
|
|
684
684
|
# end
|
685
685
|
# end
|
686
686
|
def middleware
|
687
|
-
@middleware ||= Hanami::
|
687
|
+
@middleware ||= Hanami::MiddlewareStack.new(self)
|
688
688
|
end
|
689
689
|
|
690
690
|
# Adapter configuration.
|
@@ -1,9 +1,8 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe <%= app.classify %>::Views::ApplicationLayout do
|
4
|
-
let(:layout) { <%= app.classify %>::Views::ApplicationLayout.new(
|
4
|
+
let(:layout) { <%= app.classify %>::Views::ApplicationLayout.new({ format: :html }, "contents") }
|
5
5
|
let(:rendered) { layout.render }
|
6
|
-
let(:template) { Hanami::View::Template.new('apps/<%= app %>/templates/application.html.<%= template %>') }
|
7
6
|
|
8
7
|
it 'contains application name' do
|
9
8
|
rendered.must_include('<%= app.classify %>')
|
@@ -1,9 +1,8 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
RSpec.describe <%= app.classify %>::Views::ApplicationLayout, type: :view do
|
4
|
-
let(:layout) { <%= app.classify %>::Views::ApplicationLayout.new(
|
4
|
+
let(:layout) { <%= app.classify %>::Views::ApplicationLayout.new({ format: :html }, "contents") }
|
5
5
|
let(:rendered) { layout.render }
|
6
|
-
let(:template) { Hanami::View::Template.new('apps/<%= app %>/templates/application.html.<%= template %>') }
|
7
6
|
|
8
7
|
it 'contains application name' do
|
9
8
|
expect(rendered).to include('<%= app.classify %>')
|
@@ -301,7 +301,7 @@ module Hanami
|
|
301
301
|
application_name: options.fetch(:application_name),
|
302
302
|
application_base_url: options.fetch(:application_base_url),
|
303
303
|
hanami_head: options.fetch(:hanami_head),
|
304
|
-
hanami_model_version: '~> 1.3
|
304
|
+
hanami_model_version: '~> 1.3',
|
305
305
|
code_reloading: code_reloading?,
|
306
306
|
hanami_version: hanami_version,
|
307
307
|
project_module: Utils::String.classify(project),
|
data/lib/hanami/common_logger.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'rack/common_logger'
|
2
|
+
require 'hanami/utils/hash'
|
2
3
|
|
3
4
|
module Hanami
|
4
5
|
# Rack logger for Hanami.app
|
@@ -44,6 +45,10 @@ module Hanami
|
|
44
45
|
# @api private
|
45
46
|
FORM_HASH = 'rack.request.form_hash'.freeze
|
46
47
|
|
48
|
+
# @since 1.3.0
|
49
|
+
# @api private
|
50
|
+
ROUTER_PARAMS = 'router.params'.freeze
|
51
|
+
|
47
52
|
# @since 1.0.0
|
48
53
|
# @api private
|
49
54
|
#
|
@@ -58,7 +63,7 @@ module Hanami
|
|
58
63
|
verb: env[REQUEST_METHOD],
|
59
64
|
status: status.to_s[0..3],
|
60
65
|
ip: env[HTTP_X_FORWARDED_FOR] || env[REMOTE_ADDR],
|
61
|
-
path: env[SCRIPT_NAME] + env[PATH_INFO],
|
66
|
+
path: env[SCRIPT_NAME] + env[PATH_INFO].to_s,
|
62
67
|
length: length,
|
63
68
|
params: extract_params(env),
|
64
69
|
elapsed: now - began_at
|
@@ -73,11 +78,16 @@ module Hanami
|
|
73
78
|
logger.info(msg)
|
74
79
|
end
|
75
80
|
end
|
81
|
+
# rubocop:enable Metrics/MethodLength
|
82
|
+
# rubocop:enable Metrics/AbcSize
|
76
83
|
|
77
84
|
# @since 1.1.0
|
78
85
|
# @api private
|
79
86
|
def extract_params(env)
|
80
|
-
|
87
|
+
result = env.fetch(QUERY_HASH, {})
|
88
|
+
result.merge!(env.fetch(FORM_HASH, {}))
|
89
|
+
result.merge!(Utils::Hash.deep_stringify(env.fetch(ROUTER_PARAMS, {})))
|
90
|
+
result
|
81
91
|
end
|
82
92
|
end
|
83
93
|
end
|
@@ -39,17 +39,19 @@ module Hanami
|
|
39
39
|
resolver = Hanami::Routing::EndpointResolver.new(pattern: config.controller_pattern, namespace: namespace)
|
40
40
|
default_app = Hanami::Routing::Default.new
|
41
41
|
|
42
|
-
|
42
|
+
options = {
|
43
43
|
resolver: resolver,
|
44
44
|
default_app: default_app,
|
45
|
-
parsers: config.body_parsers,
|
46
45
|
scheme: config.scheme,
|
47
46
|
host: config.host,
|
48
47
|
port: config.port,
|
49
48
|
prefix: config.path_prefix,
|
50
|
-
force_ssl: config.force_ssl
|
51
|
-
|
52
|
-
|
49
|
+
force_ssl: config.force_ssl
|
50
|
+
}
|
51
|
+
|
52
|
+
options[:parsers] = config.body_parsers if config.body_parsers.any?
|
53
|
+
|
54
|
+
Hanami::Router.new(options, &config.routes)
|
53
55
|
end
|
54
56
|
end
|
55
57
|
end
|
data/lib/hanami/configuration.rb
CHANGED
@@ -6,12 +6,12 @@ module Hanami
|
|
6
6
|
#
|
7
7
|
# @since 0.1.0
|
8
8
|
# @api private
|
9
|
-
class
|
9
|
+
class MiddlewareStack
|
10
10
|
# Instantiate a middleware stack
|
11
11
|
#
|
12
12
|
# @param configuration [Hanami::ApplicationConfiguration] the application's configuration
|
13
13
|
#
|
14
|
-
# @return [Hanami::
|
14
|
+
# @return [Hanami::MiddlewareStack] the new stack
|
15
15
|
#
|
16
16
|
# @since 0.1.0
|
17
17
|
# @api private
|
@@ -25,7 +25,7 @@ module Hanami
|
|
25
25
|
|
26
26
|
# Load the middleware stack
|
27
27
|
#
|
28
|
-
# @return [Hanami::
|
28
|
+
# @return [Hanami::MiddlewareStack] the loaded middleware stack
|
29
29
|
#
|
30
30
|
# @since 0.2.0
|
31
31
|
# @api private
|
@@ -62,7 +62,7 @@ module Hanami
|
|
62
62
|
#
|
63
63
|
# @since 0.2.0
|
64
64
|
#
|
65
|
-
# @see Hanami::
|
65
|
+
# @see Hanami::MiddlewareStack#prepend
|
66
66
|
#
|
67
67
|
# @example
|
68
68
|
# # apps/web/application.rb
|
@@ -89,7 +89,7 @@ module Hanami
|
|
89
89
|
#
|
90
90
|
# @since 0.6.0
|
91
91
|
#
|
92
|
-
# @see Hanami::
|
92
|
+
# @see Hanami::MiddlewareStack#use
|
93
93
|
#
|
94
94
|
# @example
|
95
95
|
# # apps/web/application.rb
|
data/lib/hanami/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hanami
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.0
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luca Guidi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-10-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hanami-utils
|
@@ -16,126 +16,126 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.3
|
19
|
+
version: '1.3'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.3
|
26
|
+
version: '1.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: hanami-validations
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.3
|
33
|
+
version: '1.3'
|
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: 1.3
|
40
|
+
version: '1.3'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: hanami-router
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.3
|
47
|
+
version: '1.3'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.3
|
54
|
+
version: '1.3'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: hanami-controller
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.3
|
61
|
+
version: '1.3'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 1.3
|
68
|
+
version: '1.3'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: hanami-view
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 1.3
|
75
|
+
version: '1.3'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 1.3
|
82
|
+
version: '1.3'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: hanami-helpers
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 1.3
|
89
|
+
version: '1.3'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 1.3
|
96
|
+
version: '1.3'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: hanami-mailer
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 1.3
|
103
|
+
version: '1.3'
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 1.3
|
110
|
+
version: '1.3'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: hanami-assets
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 1.3
|
117
|
+
version: '1.3'
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 1.3
|
124
|
+
version: '1.3'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: hanami-cli
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0.3
|
131
|
+
version: '0.3'
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: 0.3
|
138
|
+
version: '0.3'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: concurrent-ruby
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -184,14 +184,14 @@ dependencies:
|
|
184
184
|
requirements:
|
185
185
|
- - "~>"
|
186
186
|
- !ruby/object:Gem::Version
|
187
|
-
version: '
|
187
|
+
version: '1.1'
|
188
188
|
type: :development
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
192
|
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
|
-
version: '
|
194
|
+
version: '1.1'
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
name: aruba
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -353,7 +353,7 @@ files:
|
|
353
353
|
- lib/hanami/frameworks.rb
|
354
354
|
- lib/hanami/hanamirc.rb
|
355
355
|
- lib/hanami/mailer/glue.rb
|
356
|
-
- lib/hanami/
|
356
|
+
- lib/hanami/middleware_stack.rb
|
357
357
|
- lib/hanami/rake_helper.rb
|
358
358
|
- lib/hanami/rake_tasks.rb
|
359
359
|
- lib/hanami/rendering_policy.rb
|
@@ -385,9 +385,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
385
385
|
version: 2.3.0
|
386
386
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
387
387
|
requirements:
|
388
|
-
- - "
|
388
|
+
- - ">="
|
389
389
|
- !ruby/object:Gem::Version
|
390
|
-
version:
|
390
|
+
version: '0'
|
391
391
|
requirements: []
|
392
392
|
rubyforge_project:
|
393
393
|
rubygems_version: 2.7.7
|