liberty 0.2.0 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ede5cdde3613b724200d29d2dcb72b0333e489ad450d38002e290b1fcc24cab2
4
- data.tar.gz: 8c721bcb1c50cb616ceb4362ed908c7a5886433fb21ea511eec1893355cc59a6
3
+ metadata.gz: 4cd2f5e057e9a8a59d5fd94c67b47972793d0662a010e06a824271a9717dc1af
4
+ data.tar.gz: 2a03907e15c4100c6dbff7d6d4af219c00d72e94d91ab4c1bdf31cb32b6f0ca8
5
5
  SHA512:
6
- metadata.gz: b4dae5a62791caaa7ef3cd8f2827f210f43403ca19c19a82b535c0b219eeac0e9117069ff333603491870858c10b1607f7fe1c691c9016ea5fe121e67f27a7bd
7
- data.tar.gz: 5cb89372460ddf1d183ef214f40c86a5b28fb174b97a14f9d47f13b49c1ee034634e7b06239a6ef9b04e59412c17005d97a1a6afe36059cef154aeae7111cf23
6
+ metadata.gz: 85adf8822f586339d802a8389d48babd728fb522d3df1c2c6bd3383b36ab5f4d2bf395cd6f6ffb01b20a6ddffa083e6757bad0f4203fcd51f40c3f77a37124a3
7
+ data.tar.gz: 4fb75c34eb3382e668b63b4ea12dfc5d35de40fc7d1734fa2d89023c0ec3ad9c9ea6fb38153aa952d016cdcad05153bd4c3dfa2df276e7fd6da352afc2fe8f78
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 4.0.6
data/CHANGELOG.md CHANGED
@@ -1,4 +1,34 @@
1
- ## [Unreleased]
1
+ ## [0.3.0] - 2026-09-06
2
+
3
+ ### Breaking changes
4
+
5
+ - Requires Ruby 3.3 or newer (previously 3.1). Ruby 3.1 and 3.2 are past end of life, and the updated dependencies no longer support them.
6
+ - Requires Rack 3.1 or newer (previously 2.2). Response headers are now emitted in lowercase (`content-type`, `content-length`), as Rack 3 requires. Applications that read Liberty's response headers by their capitalized names should switch to lowercase.
7
+
8
+ ### Fixed
9
+
10
+ - Handles requests with no `rack.input`, which Rack 3.1 made optional. Previously a bodiless request raised `NoMethodError`.
11
+ - Only rewinds the request body when it supports `rewind`, since Rack 3 no longer guarantees a rewindable input.
12
+
13
+ ### Changed
14
+
15
+ - Updates mustermann and mustermann-contrib to 4.x.
16
+ - Pins runtime dependencies with pessimistic version constraints.
17
+ - Moves development dependencies from the gemspec to the Gemfile.
18
+ - Enables SimpleCov branch coverage and enforces 100% line and branch coverage in CI.
19
+ - Tests against Ruby 3.3, 3.4, and 4.0 in CI.
20
+
21
+ ### Removed
22
+
23
+ - Removes the Code Climate integration and badges. Code Climate Quality has shut down.
24
+
25
+ ## [0.2.1] - 2022-04-30
26
+
27
+ - Handles situation where CORS headers are nil
28
+
29
+ ## [0.2.0] - 2022-04-27
30
+
31
+ - Adds ability to add your own Rack middleware
2
32
 
3
33
  ## [0.1.1] - 2022-04-24
4
34
 
data/Gemfile CHANGED
@@ -5,8 +5,9 @@ source "https://rubygems.org"
5
5
  # Specify your gem's dependencies in liberty.gemspec
6
6
  gemspec
7
7
 
8
+ gem "flog"
8
9
  gem "rake", "~> 13.0"
9
-
10
- gem "rspec", "~> 3.0"
11
-
12
- gem "standard", "~> 1.3"
10
+ gem "rspec", "~> 3.13"
11
+ gem "rspec_junit_formatter", "~> 0.6"
12
+ gem "simplecov", "~> 1.0"
13
+ gem "standard", "~> 1.0"
data/Gemfile.lock CHANGED
@@ -1,91 +1,109 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- liberty (0.2.0)
4
+ liberty (0.3.0)
5
5
  json (~> 2.3)
6
- mustermann (~> 1.1)
7
- mustermann-contrib (~> 1.1)
8
- rack (~> 2.2)
6
+ mustermann (~> 4.0)
7
+ mustermann-contrib (~> 4.0)
8
+ rack (~> 3.1)
9
9
  rack-abstract-format (~> 0.9.9)
10
10
  rack-accept-media-types (~> 0.9)
11
11
 
12
12
  GEM
13
13
  remote: https://rubygems.org/
14
14
  specs:
15
- ast (2.4.2)
16
- diff-lcs (1.5.0)
17
- docile (1.4.0)
18
- hansi (0.2.0)
19
- json (2.6.1)
20
- mustermann (1.1.1)
21
- ruby2_keywords (~> 0.0.1)
22
- mustermann-contrib (1.1.1)
15
+ ast (2.4.3)
16
+ diff-lcs (1.6.2)
17
+ flog (4.9.4)
18
+ path_expander (~> 2.0)
19
+ prism (~> 1.7)
20
+ sexp_processor (~> 4.8)
21
+ hansi (0.2.1)
22
+ json (2.21.2)
23
+ language_server-protocol (3.17.0.6)
24
+ lint_roller (1.1.0)
25
+ mustermann (4.0.0)
26
+ mustermann-contrib (4.0.0)
23
27
  hansi (~> 0.2.0)
24
- mustermann (= 1.1.1)
25
- parallel (1.22.1)
26
- parser (3.1.2.0)
28
+ mustermann (= 4.0.0)
29
+ parallel (2.2.0)
30
+ parser (3.3.12.0)
27
31
  ast (~> 2.4.1)
28
- rack (2.2.3)
32
+ racc
33
+ path_expander (2.0.1)
34
+ prism (1.9.0)
35
+ racc (1.8.1)
36
+ rack (3.2.7)
29
37
  rack-abstract-format (0.9.9)
30
38
  rack-accept-media-types (0.9)
31
39
  rainbow (3.1.1)
32
- rake (13.0.6)
33
- regexp_parser (2.3.0)
34
- rexml (3.2.5)
35
- rspec (3.11.0)
36
- rspec-core (~> 3.11.0)
37
- rspec-expectations (~> 3.11.0)
38
- rspec-mocks (~> 3.11.0)
39
- rspec-core (3.11.0)
40
- rspec-support (~> 3.11.0)
41
- rspec-expectations (3.11.0)
40
+ rake (13.4.2)
41
+ regexp_parser (2.12.0)
42
+ rspec (3.13.2)
43
+ rspec-core (~> 3.13.0)
44
+ rspec-expectations (~> 3.13.0)
45
+ rspec-mocks (~> 3.13.0)
46
+ rspec-core (3.13.6)
47
+ rspec-support (~> 3.13.0)
48
+ rspec-expectations (3.13.5)
42
49
  diff-lcs (>= 1.2.0, < 2.0)
43
- rspec-support (~> 3.11.0)
44
- rspec-mocks (3.11.1)
50
+ rspec-support (~> 3.13.0)
51
+ rspec-mocks (3.13.8)
45
52
  diff-lcs (>= 1.2.0, < 2.0)
46
- rspec-support (~> 3.11.0)
47
- rspec-support (3.11.0)
48
- rspec_junit_formatter (0.5.1)
53
+ rspec-support (~> 3.13.0)
54
+ rspec-support (3.13.7)
55
+ rspec_junit_formatter (0.6.0)
49
56
  rspec-core (>= 2, < 4, != 2.12.0)
50
- rubocop (1.27.0)
51
- parallel (~> 1.10)
52
- parser (>= 3.1.0.0)
57
+ rubocop (1.88.2)
58
+ json (~> 2.3)
59
+ language_server-protocol (~> 3.17.0.2)
60
+ lint_roller (~> 1.1.0)
61
+ parallel (>= 1.10)
62
+ parser (>= 3.3.0.2)
53
63
  rainbow (>= 2.2.2, < 4.0)
54
- regexp_parser (>= 1.8, < 3.0)
55
- rexml
56
- rubocop-ast (>= 1.16.0, < 2.0)
64
+ regexp_parser (>= 2.9.3, < 3.0)
65
+ rubocop-ast (>= 1.49.0, < 2.0)
57
66
  ruby-progressbar (~> 1.7)
58
- unicode-display_width (>= 1.4.0, < 3.0)
59
- rubocop-ast (1.17.0)
60
- parser (>= 3.1.1.0)
61
- rubocop-performance (1.13.3)
62
- rubocop (>= 1.7.0, < 2.0)
63
- rubocop-ast (>= 0.4.0)
64
- ruby-progressbar (1.11.0)
65
- ruby2_keywords (0.0.5)
66
- simplecov (0.17.1)
67
- docile (~> 1.1)
68
- json (>= 1.8, < 3)
69
- simplecov-html (~> 0.10.0)
70
- simplecov-html (0.10.2)
71
- standard (1.10.0)
72
- rubocop (= 1.27.0)
73
- rubocop-performance (= 1.13.3)
74
- unicode-display_width (2.1.0)
67
+ unicode-display_width (>= 2.4.0, < 4.0)
68
+ rubocop-ast (1.50.0)
69
+ parser (>= 3.3.7.2)
70
+ prism (~> 1.7)
71
+ rubocop-performance (1.26.1)
72
+ lint_roller (~> 1.1)
73
+ rubocop (>= 1.75.0, < 2.0)
74
+ rubocop-ast (>= 1.47.1, < 2.0)
75
+ ruby-progressbar (1.13.0)
76
+ sexp_processor (4.17.5)
77
+ simplecov (1.2.0)
78
+ standard (1.56.0)
79
+ language_server-protocol (~> 3.17.0.2)
80
+ lint_roller (~> 1.0)
81
+ rubocop (~> 1.88.0)
82
+ standard-custom (~> 1.0.0)
83
+ standard-performance (~> 1.8)
84
+ standard-custom (1.0.2)
85
+ lint_roller (~> 1.0)
86
+ rubocop (~> 1.50)
87
+ standard-performance (1.9.0)
88
+ lint_roller (~> 1.1)
89
+ rubocop-performance (~> 1.26.0)
90
+ unicode-display_width (3.2.0)
91
+ unicode-emoji (~> 4.1)
92
+ unicode-emoji (4.2.0)
75
93
 
76
94
  PLATFORMS
95
+ arm64-darwin-23
77
96
  x86_64-darwin-21
78
97
  x86_64-linux
79
98
 
80
99
  DEPENDENCIES
81
- bundler (~> 2.0)
100
+ flog
82
101
  liberty!
83
- rack (~> 2.2)
84
102
  rake (~> 13.0)
85
- rspec (~> 3.0)
86
- rspec_junit_formatter (~> 0.4)
87
- simplecov (~> 0.17.1)
88
- standard (~> 1.3)
103
+ rspec (~> 3.13)
104
+ rspec_junit_formatter (~> 0.6)
105
+ simplecov (~> 1.0)
106
+ standard (~> 1.0)
89
107
 
90
108
  BUNDLED WITH
91
- 2.3.11
109
+ 2.6.9
data/README.md CHANGED
@@ -2,25 +2,38 @@
2
2
 
3
3
  # Liberty
4
4
 
5
- [![Gem Version](https://badge.fury.io/rb/liberty.svg)](https://badge.fury.io/rb/liberty) [![Ruby](https://github.com/first-try-software/liberty/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/first-try-software/liberty/actions/workflows/main.yml) [![Maintainability](https://api.codeclimate.com/v1/badges/02bb162371c4fcfe10eb/maintainability)](https://codeclimate.com/github/first-try-software/liberty/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/02bb162371c4fcfe10eb/test_coverage)](https://codeclimate.com/github/first-try-software/liberty/test_coverage)
5
+ [![Gem Version](https://badge.fury.io/rb/liberty.svg)](https://badge.fury.io/rb/liberty)
6
+ [![Ruby](https://github.com/first-try-software/liberty/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/first-try-software/liberty/actions/workflows/main.yml)
6
7
 
7
8
  Liberty is the state of being free from oppressive restrictions imposed by authority.
8
9
 
9
- Liberty is also a minimalist web-framework for Ruby that seeks to get out of your way
10
- so that you can focus on your most valuable asset: your business logic. It is structured
11
- in a way that encourages you to separate your business logic from the framework code.
12
- It provides the web adapter for a Hexagonal Architecture and it works well with Domain
13
- Driven Design.
10
+ Liberty is also a minimalist web-framework for Ruby that seeks to get out of your way so that you can focus on your most valuable asset — the part of your application that is uniquely yours — your business logic.
14
11
 
15
- ## Installation
12
+ Liberty is structured in a way that encourages you to separate your business logic from the underlying framework code. It provides a web adapter for a Hexagonal Architecture, and it works very well with Domain Driven Design.
16
13
 
17
- Install the gem and add to the application's Gemfile by executing:
14
+ Though Liberty does not shackle you to convention, we (the authors) do consider there to be some best practices:
18
15
 
19
- $ bundle add liberty
16
+ First, we believe THE most important aspect of your software is your domain logic. As such, we believe you should start there, and spend the vast majority of your time working on that code. Tests can act as the front-end to drive your domain logic, and mock repositories can act as your data store. This allows you to develop your business logic in isolation.
20
17
 
21
- If bundler is not being used to manage dependencies, install the gem by executing:
18
+ Second, we believe your application should look uniquely yours inside an editor. Accounting programs should not look like social networks. And, neither should look like a game. As such, we encourage you to put your business logic in an obvious place that is separate and apart from the framework concepts. (We typically use a `domain` folder in which we have folders for each Bounded Context.)
22
19
 
23
- $ gem install liberty
20
+ Third, we believe the code that ties your application to physical infrastructure, like the web or a database or a messaging system, should be stored somewhere else. (We typically use an `app` folder for this code, with folders for `endpoints`, concrete `repositories`, and other bits of glue code.)
21
+
22
+ A small application for managing to-do lists might look like this:
23
+
24
+ ```
25
+ todo/
26
+ app/
27
+ endpoints/
28
+ repositories/
29
+ domain/
30
+ todos/
31
+ users/
32
+ ```
33
+
34
+ The `/app` folder contains the code that glues the domain logic to the outside world. While the `domain` folder contains the DDD Bounded Contexts within the application.
35
+
36
+ That said, Liberty does not use convention. It relies on classes declaratively registering themselves at load time to handle a specific use case or web request. The router dispatches requests to the appropriate endpoint (in lightning speed, we might add). And, a dispatcher calls the appropriate use case when needed.
24
37
 
25
38
  ## Usage
26
39
 
@@ -70,6 +83,16 @@ end
70
83
  If you configure your CORS headers before you launch your application, `Endpoints` will
71
84
  automatically respond with the right headers.
72
85
 
86
+ ## Installation
87
+
88
+ Install the gem and add to the application's Gemfile by executing:
89
+
90
+ $ bundle add liberty
91
+
92
+ If bundler is not being used to manage dependencies, install the gem by executing:
93
+
94
+ $ gem install liberty
95
+
73
96
  ## Development
74
97
 
75
98
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -52,8 +52,11 @@ module Liberty
52
52
  end
53
53
 
54
54
  def body
55
- read_body = rack_request.body.read
56
- rack_request.body.rewind
55
+ input = rack_request.body
56
+ return nil unless input
57
+
58
+ read_body = input.read
59
+ input.rewind if input.respond_to?(:rewind)
57
60
  read_body
58
61
  end
59
62
 
@@ -3,8 +3,8 @@
3
3
  module Liberty
4
4
  module Adapters
5
5
  class Response
6
- CONTENT_TYPE = "Content-Type"
7
- CONTENT_LENGTH = "Content-Length"
6
+ CONTENT_TYPE = "content-type"
7
+ CONTENT_LENGTH = "content-length"
8
8
  MIME_TYPE_JSON = "application/json"
9
9
  MIME_TYPE_HTML = "text/html"
10
10
  MIME_TYPE_TEXT = "text/plain"
@@ -40,7 +40,7 @@ module Liberty
40
40
  def content_type
41
41
  return MIME_TYPE_JSON if json
42
42
  return MIME_TYPE_HTML if html
43
- return MIME_TYPE_TEXT if text
43
+ MIME_TYPE_TEXT if text
44
44
  end
45
45
 
46
46
  def content_length
@@ -40,8 +40,8 @@ module Liberty
40
40
 
41
41
  def default_headers
42
42
  {
43
- "Content-Type" => "text/plain",
44
- "Content-Length" => "0"
43
+ "content-type" => "text/plain",
44
+ "content-length" => "0"
45
45
  }
46
46
  end
47
47
  end
data/lib/liberty/cors.rb CHANGED
@@ -12,7 +12,7 @@ module Liberty
12
12
  end
13
13
 
14
14
  def configured?
15
- !@headers.empty?
15
+ !@headers.nil? && !@headers.empty?
16
16
  end
17
17
 
18
18
  def access_control_header
@@ -15,7 +15,7 @@ module Liberty
15
15
  PATH_INFO = "PATH_INFO"
16
16
  ROUTER_PARAMS = "router.params"
17
17
  DYNAMIC_PREFIX = /:/
18
- NOT_FOUND_RESPONSE = [404, {"Content-Length" => "9"}, ["Not Found"]].freeze
18
+ NOT_FOUND_RESPONSE = [404, {"content-length" => "9"}, ["Not Found"]].freeze
19
19
 
20
20
  def initialize
21
21
  @apps = {}
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Liberty
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.0"
5
5
  end
data/liberty.gemspec CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
12
12
  spec.description = "Liberty is the state of being free from oppressive restrictions imposed by authority."
13
13
  spec.homepage = "https://github.com/first-try-software/liberty"
14
14
  spec.license = "MIT"
15
- spec.required_ruby_version = ">= 3.1.0"
15
+ spec.required_ruby_version = ">= 3.3.0"
16
16
 
17
17
  spec.metadata["homepage_uri"] = spec.homepage
18
18
  spec.metadata["source_code_uri"] = spec.homepage
@@ -28,16 +28,9 @@ Gem::Specification.new do |spec|
28
28
  spec.require_paths = ["lib"]
29
29
 
30
30
  spec.add_dependency "json", "~> 2.3"
31
- spec.add_dependency "mustermann", "~> 1.1"
32
- spec.add_dependency "mustermann-contrib", "~> 1.1"
33
- spec.add_dependency "rack", "~> 2.2"
31
+ spec.add_dependency "mustermann", "~> 4.0"
32
+ spec.add_dependency "mustermann-contrib", "~> 4.0"
33
+ spec.add_dependency "rack", "~> 3.1"
34
34
  spec.add_dependency "rack-abstract-format", "~> 0.9.9"
35
35
  spec.add_dependency "rack-accept-media-types", "~> 0.9"
36
-
37
- spec.add_development_dependency "bundler", "~> 2.0"
38
- spec.add_development_dependency "rack", "~> 2.2"
39
- spec.add_development_dependency "rake", "~> 12.0"
40
- spec.add_development_dependency "rspec", "~> 3.0"
41
- spec.add_development_dependency "rspec_junit_formatter", "~> 0.4"
42
- spec.add_development_dependency "simplecov", "~> 0.17.1"
43
36
  end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: liberty
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alan Ridlehoover
8
8
  - Fito von Zastrow
9
- autorequire:
10
9
  bindir: exe
11
10
  cert_chain: []
12
- date: 2022-04-28 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: json
@@ -31,42 +30,42 @@ dependencies:
31
30
  requirements:
32
31
  - - "~>"
33
32
  - !ruby/object:Gem::Version
34
- version: '1.1'
33
+ version: '4.0'
35
34
  type: :runtime
36
35
  prerelease: false
37
36
  version_requirements: !ruby/object:Gem::Requirement
38
37
  requirements:
39
38
  - - "~>"
40
39
  - !ruby/object:Gem::Version
41
- version: '1.1'
40
+ version: '4.0'
42
41
  - !ruby/object:Gem::Dependency
43
42
  name: mustermann-contrib
44
43
  requirement: !ruby/object:Gem::Requirement
45
44
  requirements:
46
45
  - - "~>"
47
46
  - !ruby/object:Gem::Version
48
- version: '1.1'
47
+ version: '4.0'
49
48
  type: :runtime
50
49
  prerelease: false
51
50
  version_requirements: !ruby/object:Gem::Requirement
52
51
  requirements:
53
52
  - - "~>"
54
53
  - !ruby/object:Gem::Version
55
- version: '1.1'
54
+ version: '4.0'
56
55
  - !ruby/object:Gem::Dependency
57
56
  name: rack
58
57
  requirement: !ruby/object:Gem::Requirement
59
58
  requirements:
60
59
  - - "~>"
61
60
  - !ruby/object:Gem::Version
62
- version: '2.2'
61
+ version: '3.1'
63
62
  type: :runtime
64
63
  prerelease: false
65
64
  version_requirements: !ruby/object:Gem::Requirement
66
65
  requirements:
67
66
  - - "~>"
68
67
  - !ruby/object:Gem::Version
69
- version: '2.2'
68
+ version: '3.1'
70
69
  - !ruby/object:Gem::Dependency
71
70
  name: rack-abstract-format
72
71
  requirement: !ruby/object:Gem::Requirement
@@ -95,90 +94,6 @@ dependencies:
95
94
  - - "~>"
96
95
  - !ruby/object:Gem::Version
97
96
  version: '0.9'
98
- - !ruby/object:Gem::Dependency
99
- name: bundler
100
- requirement: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - "~>"
103
- - !ruby/object:Gem::Version
104
- version: '2.0'
105
- type: :development
106
- prerelease: false
107
- version_requirements: !ruby/object:Gem::Requirement
108
- requirements:
109
- - - "~>"
110
- - !ruby/object:Gem::Version
111
- version: '2.0'
112
- - !ruby/object:Gem::Dependency
113
- name: rack
114
- requirement: !ruby/object:Gem::Requirement
115
- requirements:
116
- - - "~>"
117
- - !ruby/object:Gem::Version
118
- version: '2.2'
119
- type: :development
120
- prerelease: false
121
- version_requirements: !ruby/object:Gem::Requirement
122
- requirements:
123
- - - "~>"
124
- - !ruby/object:Gem::Version
125
- version: '2.2'
126
- - !ruby/object:Gem::Dependency
127
- name: rake
128
- requirement: !ruby/object:Gem::Requirement
129
- requirements:
130
- - - "~>"
131
- - !ruby/object:Gem::Version
132
- version: '12.0'
133
- type: :development
134
- prerelease: false
135
- version_requirements: !ruby/object:Gem::Requirement
136
- requirements:
137
- - - "~>"
138
- - !ruby/object:Gem::Version
139
- version: '12.0'
140
- - !ruby/object:Gem::Dependency
141
- name: rspec
142
- requirement: !ruby/object:Gem::Requirement
143
- requirements:
144
- - - "~>"
145
- - !ruby/object:Gem::Version
146
- version: '3.0'
147
- type: :development
148
- prerelease: false
149
- version_requirements: !ruby/object:Gem::Requirement
150
- requirements:
151
- - - "~>"
152
- - !ruby/object:Gem::Version
153
- version: '3.0'
154
- - !ruby/object:Gem::Dependency
155
- name: rspec_junit_formatter
156
- requirement: !ruby/object:Gem::Requirement
157
- requirements:
158
- - - "~>"
159
- - !ruby/object:Gem::Version
160
- version: '0.4'
161
- type: :development
162
- prerelease: false
163
- version_requirements: !ruby/object:Gem::Requirement
164
- requirements:
165
- - - "~>"
166
- - !ruby/object:Gem::Version
167
- version: '0.4'
168
- - !ruby/object:Gem::Dependency
169
- name: simplecov
170
- requirement: !ruby/object:Gem::Requirement
171
- requirements:
172
- - - "~>"
173
- - !ruby/object:Gem::Version
174
- version: 0.17.1
175
- type: :development
176
- prerelease: false
177
- version_requirements: !ruby/object:Gem::Requirement
178
- requirements:
179
- - - "~>"
180
- - !ruby/object:Gem::Version
181
- version: 0.17.1
182
97
  description: Liberty is the state of being free from oppressive restrictions imposed
183
98
  by authority.
184
99
  email:
@@ -188,6 +103,7 @@ extensions: []
188
103
  extra_rdoc_files: []
189
104
  files:
190
105
  - ".rspec"
106
+ - ".ruby-version"
191
107
  - ".standard.yml"
192
108
  - CHANGELOG.md
193
109
  - CODE_OF_CONDUCT.md
@@ -220,7 +136,6 @@ metadata:
220
136
  homepage_uri: https://github.com/first-try-software/liberty
221
137
  source_code_uri: https://github.com/first-try-software/liberty
222
138
  changelog_uri: https://github.com/first-try-software/liberty/CHANGELOG.md
223
- post_install_message:
224
139
  rdoc_options: []
225
140
  require_paths:
226
141
  - lib
@@ -228,15 +143,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
228
143
  requirements:
229
144
  - - ">="
230
145
  - !ruby/object:Gem::Version
231
- version: 3.1.0
146
+ version: 3.3.0
232
147
  required_rubygems_version: !ruby/object:Gem::Requirement
233
148
  requirements:
234
149
  - - ">="
235
150
  - !ruby/object:Gem::Version
236
151
  version: '0'
237
152
  requirements: []
238
- rubygems_version: 3.3.7
239
- signing_key:
153
+ rubygems_version: 4.0.16
240
154
  specification_version: 4
241
155
  summary: A framework for Ruby web applications
242
156
  test_files: []