geb 0.1.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +3 -0
  3. data/CHANGELOG.md +37 -0
  4. data/CODE_OF_CONDUCT.md +84 -0
  5. data/LICENSE +21 -0
  6. data/README.md +384 -0
  7. data/Rakefile +21 -0
  8. data/bin/geb +21 -0
  9. data/lib/geb/cli.rb +40 -0
  10. data/lib/geb/commands/build.rb +59 -0
  11. data/lib/geb/commands/init.rb +70 -0
  12. data/lib/geb/commands/release.rb +54 -0
  13. data/lib/geb/commands/remote.rb +48 -0
  14. data/lib/geb/commands/server.rb +77 -0
  15. data/lib/geb/commands/upload.rb +48 -0
  16. data/lib/geb/commands/version.rb +36 -0
  17. data/lib/geb/config.rb +103 -0
  18. data/lib/geb/defaults.rb +44 -0
  19. data/lib/geb/git.rb +112 -0
  20. data/lib/geb/page.rb +217 -0
  21. data/lib/geb/partial.rb +150 -0
  22. data/lib/geb/samples/basic/assets/css/site.css +7 -0
  23. data/lib/geb/samples/basic/assets/images/android-chrome-192x192.png +0 -0
  24. data/lib/geb/samples/basic/assets/images/android-chrome-512x512.png +0 -0
  25. data/lib/geb/samples/basic/assets/images/apple-touch-icon.png +0 -0
  26. data/lib/geb/samples/basic/assets/images/favicon-16x16.png +0 -0
  27. data/lib/geb/samples/basic/assets/images/favicon-32x32.png +0 -0
  28. data/lib/geb/samples/basic/assets/images/favicon.ico +0 -0
  29. data/lib/geb/samples/basic/assets/images/hero.png +0 -0
  30. data/lib/geb/samples/basic/assets/images/og-thumb.png +0 -0
  31. data/lib/geb/samples/basic/assets/images/twitter-thumb.png +0 -0
  32. data/lib/geb/samples/basic/assets/js/site.js +5 -0
  33. data/lib/geb/samples/basic/geb.config.yml +70 -0
  34. data/lib/geb/samples/basic/index.html +11 -0
  35. data/lib/geb/samples/basic/page.html +11 -0
  36. data/lib/geb/samples/basic/shared/partials/_analytics.html +9 -0
  37. data/lib/geb/samples/basic/shared/partials/_footer.html +3 -0
  38. data/lib/geb/samples/basic/shared/partials/_global_assets.html +19 -0
  39. data/lib/geb/samples/basic/shared/partials/_header.html +0 -0
  40. data/lib/geb/samples/basic/shared/partials/_meta_tags.html +34 -0
  41. data/lib/geb/samples/basic/shared/templates/_blog_post.html +0 -0
  42. data/lib/geb/samples/basic/shared/templates/_site.html +19 -0
  43. data/lib/geb/samples/basic/site.webmanifest +1 -0
  44. data/lib/geb/samples/bootstrap_jquery/assets/css/site.css +7 -0
  45. data/lib/geb/samples/bootstrap_jquery/assets/images/android-chrome-192x192.png +0 -0
  46. data/lib/geb/samples/bootstrap_jquery/assets/images/android-chrome-512x512.png +0 -0
  47. data/lib/geb/samples/bootstrap_jquery/assets/images/apple-touch-icon.png +0 -0
  48. data/lib/geb/samples/bootstrap_jquery/assets/images/favicon-16x16.png +0 -0
  49. data/lib/geb/samples/bootstrap_jquery/assets/images/favicon-32x32.png +0 -0
  50. data/lib/geb/samples/bootstrap_jquery/assets/images/favicon.ico +0 -0
  51. data/lib/geb/samples/bootstrap_jquery/assets/images/hero.png +0 -0
  52. data/lib/geb/samples/bootstrap_jquery/assets/images/og-thumb.png +0 -0
  53. data/lib/geb/samples/bootstrap_jquery/assets/images/twitter-thumb.png +0 -0
  54. data/lib/geb/samples/bootstrap_jquery/assets/js/site.js +5 -0
  55. data/lib/geb/samples/bootstrap_jquery/blog/blog_post_1.html +35 -0
  56. data/lib/geb/samples/bootstrap_jquery/blog/blog_post_2.html +35 -0
  57. data/lib/geb/samples/bootstrap_jquery/blog/blog_post_3.html +35 -0
  58. data/lib/geb/samples/bootstrap_jquery/blog/index.html +17 -0
  59. data/lib/geb/samples/bootstrap_jquery/geb.config.yml +69 -0
  60. data/lib/geb/samples/bootstrap_jquery/index.html +11 -0
  61. data/lib/geb/samples/bootstrap_jquery/page.html +11 -0
  62. data/lib/geb/samples/bootstrap_jquery/shared/partials/_analytics.html +9 -0
  63. data/lib/geb/samples/bootstrap_jquery/shared/partials/_footer.html +3 -0
  64. data/lib/geb/samples/bootstrap_jquery/shared/partials/_global_assets.html +19 -0
  65. data/lib/geb/samples/bootstrap_jquery/shared/partials/_header.html +0 -0
  66. data/lib/geb/samples/bootstrap_jquery/shared/partials/_meta_tags.html +34 -0
  67. data/lib/geb/samples/bootstrap_jquery/shared/templates/_blog_post.html +0 -0
  68. data/lib/geb/samples/bootstrap_jquery/shared/templates/_site.html +19 -0
  69. data/lib/geb/samples/bootstrap_jquery/site.webmanifest +1 -0
  70. data/lib/geb/samples/geb.config.yml +70 -0
  71. data/lib/geb/server.rb +138 -0
  72. data/lib/geb/site/build.rb +189 -0
  73. data/lib/geb/site/core.rb +229 -0
  74. data/lib/geb/site/release.rb +70 -0
  75. data/lib/geb/site/remote.rb +142 -0
  76. data/lib/geb/site/template.rb +208 -0
  77. data/lib/geb/site.rb +83 -0
  78. data/lib/geb/template.rb +166 -0
  79. data/lib/geb/utilities.rb +110 -0
  80. data/lib/geb.rb +36 -0
  81. data/lib/seth.rb +50 -0
  82. data/sig/geb.rbs +4 -0
  83. data/test/api tests/test_cli.rb +200 -0
  84. data/test/api tests/test_config.rb +330 -0
  85. data/test/api tests/test_defaults.rb +62 -0
  86. data/test/api tests/test_git.rb +105 -0
  87. data/test/api tests/test_page.rb +320 -0
  88. data/test/api tests/test_partial.rb +152 -0
  89. data/test/api tests/test_server.rb +416 -0
  90. data/test/api tests/test_site.rb +1315 -0
  91. data/test/api tests/test_template.rb +249 -0
  92. data/test/api tests/test_utilities.rb +162 -0
  93. data/test/command tests/test_geb_build.rb +199 -0
  94. data/test/command tests/test_geb_init.rb +312 -0
  95. data/test/command tests/test_geb_release.rb +166 -0
  96. data/test/command tests/test_geb_remote.rb +66 -0
  97. data/test/command tests/test_geb_server.rb +122 -0
  98. data/test/command tests/test_geb_upload.rb +96 -0
  99. data/test/command tests/test_geb_version.rb +58 -0
  100. data/test/support/geb_api_test.rb +37 -0
  101. data/test/support/geb_cli_test.rb +275 -0
  102. data/test/support/geb_minitest_ext.rb +35 -0
  103. data/test/support/geb_test_helpers.rb +84 -0
  104. data/test/support/geb_web_server_proxy.rb +128 -0
  105. data/test/test_helper.rb +61 -0
  106. metadata +301 -0
@@ -0,0 +1,128 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # A web server (using Webrick) that proxies requests. Allows tests to stub
4
+ # requests and responses. Useful for testing HTTP requests.
5
+ #
6
+ # @title Geb - Test Support - Test Helpers
7
+ # @author Edin Mustajbegovic <edin@actiontwelve.com>
8
+ # @copyright 2024 Edin Mustajbegovic
9
+ # @license MIT
10
+ #
11
+ # @see https://github.com/mainfram-work/geb for more information
12
+
13
+
14
+ require "webrick"
15
+
16
+ module Geb
17
+ module Test
18
+
19
+ # NullLogger class, used to suppress logging for the Webrick server
20
+ class NullLogger
21
+ def method_missing(*args)
22
+ # Do nothing
23
+ end
24
+ end
25
+
26
+ # WebServerProxy class, used to create a web server that proxies requests
27
+ class WebServerProxy
28
+
29
+ # find an available port
30
+ # @return [Integer] the available port
31
+ def self.find_available_port
32
+
33
+ # start a new server and get the port
34
+ server = TCPServer.new(0)
35
+ port = server.addr[1]
36
+
37
+ # close the server
38
+ server.close
39
+
40
+ # return the port
41
+ return port
42
+
43
+ end # def self.find_available_port
44
+
45
+ # initialize the server, takes a port and a debug flag that stops the server will log to STDOUT
46
+ # @param port [Integer] the port the server will run on
47
+ # @param debug [Boolean] if true, the server will log to STDOUT
48
+ # @return [WebServerProxy] the server instance
49
+ def initialize(port, debug: false)
50
+
51
+ # start the server, consider debug flag
52
+ if debug
53
+ @server = WEBrick::HTTPServer.new(Port: port, AccessLog: [[STDOUT, WEBrick::AccessLog::COMMON_LOG_FORMAT], [STDOUT, WEBrick::AccessLog::REFERER_LOG_FORMAT]])
54
+ else
55
+ @server = WEBrick::HTTPServer.new(Port: port, Logger: NullLogger.new, AccessLog: [] )
56
+ end # if else
57
+
58
+ # mount the server root, just so we have something to return
59
+ @server.mount_proc("/") do |req, res|
60
+ res.body = "This server is for geb testing."
61
+ res.status = 200
62
+ res["Content-Type"] = "text/plain"
63
+ end # mount_proc
64
+
65
+ end # def initialize
66
+
67
+ # start the server
68
+ def start
69
+ @thread = Thread.new do
70
+ @server.start
71
+ end
72
+ end # def start
73
+
74
+ # stop the server
75
+ def stop
76
+ @server.shutdown if @server
77
+ @thread.join if @thread
78
+ end # def stop
79
+
80
+ # check if the server is running
81
+ def running?
82
+ @thread&.alive?
83
+ end # def running?
84
+
85
+ # get the base url of the server
86
+ def base_url
87
+ return "http://localhost:#{@server.config[:Port]}"
88
+ end # def base_url
89
+
90
+ # stub a reques, this is the whole point of this class
91
+ # @param url [String] the url to stub
92
+ # @param headers [Hash] the headers to return
93
+ # @param body [String] the body to return (optional)
94
+ # @param block [Block] a block to call to return the body (optional)
95
+ # @return [void]
96
+ # @example
97
+ #
98
+ # # stub a simple request
99
+ # http_proxy = start_proxy
100
+ # http_proxy.stub_request("http://example.com", { 'Content-Type' => 'text/html' }, "<html></html>")
101
+ #
102
+ # # stub a request with a block
103
+ # http_proxy.stub_request("http://example.com", { 'Content-Type' => 'text/html' }) do
104
+ # "<html></html>"
105
+ # end
106
+ #
107
+ def stub_request(url, headers = {}, body = nil, &block)
108
+
109
+ # strip the base_url from url
110
+ url = url.gsub(base_url, "")
111
+
112
+ # mount the request, url, headers, body and block
113
+ @server.mount_proc(url) do |request, response|
114
+
115
+ # set the response headers to the headers passed in
116
+ headers.each { |k, v| response[k] = v }
117
+
118
+ # set the response body to the body passed in or the block
119
+ response.body = block_given? ? block.call : body
120
+
121
+ end # mount_proc
122
+
123
+ end # def stub_request
124
+
125
+ end # class WebServerProxy
126
+
127
+ end # module Test
128
+ end # module Geb
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # Minitest test helper class. This is where all global test setup is done.
4
+ #
5
+ # @title Geb - Test Support - Test Helpers
6
+ # @author Edin Mustajbegovic <edin@actiontwelve.com>
7
+ # @copyright 2024 Edin Mustajbegovic
8
+ # @license MIT
9
+ #
10
+ # @see https://github.com/mainfram-work/geb for more information
11
+
12
+ # include seth first... hang on to your hats
13
+ require 'seth'
14
+
15
+ # include simplecov for code coverage
16
+ require 'simplecov'
17
+
18
+ # start simplecov and configure it, before any important code is loaded
19
+ SimpleCov.start do
20
+ command_name 'rake test'
21
+ add_filter '/test/'
22
+ add_group 'Core' do |src_file|
23
+ src_file.filename.match(%r{^#{SimpleCov.root}/lib/geb/[^/]+$}) ||
24
+ src_file.filename.match(%r{^#{SimpleCov.root}/lib/[^/]+$})
25
+ end
26
+ add_group 'Commands', 'lib/geb/commands'
27
+ add_group 'Site Modules', 'lib/geb/site'
28
+ end # SimpleCov.start
29
+
30
+ # make sure simplecov runs at the end of the tests
31
+ SimpleCov.at_exit {}
32
+
33
+ # add the lib directory to the load path
34
+ $LOAD_PATH.unshift File.expand_path("../lib", __dir__)
35
+
36
+ # change default encoding to UTF-8, this is important for the tests, as we are
37
+ # testing the output of the CLI commands. This is a global setting, so we need
38
+ # to suppress warnings with the help of the Seth module.
39
+ Seth.suppress_warnings do
40
+ Encoding.default_external = Encoding::UTF_8
41
+ Encoding.default_internal = Encoding::UTF_8
42
+ end
43
+
44
+ # include the required libraries, including geb, the main code we are testing
45
+ require "geb"
46
+ require 'minitest/autorun'
47
+ require 'mocha/minitest'
48
+ require 'webrick'
49
+ require "stringio"
50
+ require "yaml"
51
+
52
+ # make sure code coverage actually generates a report
53
+ # apparently this is not required, but I couldn't get simplecov to work without it
54
+ Minitest.after_run { SimpleCov.result.format! }
55
+
56
+ # include the support files for our tests
57
+ require_relative 'support/geb_minitest_ext' # minitest extensions and syntax sugar
58
+ require_relative 'support/geb_cli_test' # CLI test base class
59
+ require_relative 'support/geb_api_test' # API test base class
60
+ require_relative 'support/geb_test_helpers' # test helper methods
61
+ require_relative 'support/geb_web_server_proxy' # web server proxy for testing
metadata ADDED
@@ -0,0 +1,301 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: geb
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.11
5
+ platform: ruby
6
+ authors:
7
+ - Edin Mustajbegovic
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-07-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: dry-cli
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: webrick
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.8'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.8'
41
+ - !ruby/object:Gem::Dependency
42
+ name: listen
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.9'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.9'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '13.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '13.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: minitest
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '5.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '5.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: webmock
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: simplecov
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.21.2
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.21.2
111
+ - !ruby/object:Gem::Dependency
112
+ name: mocha
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '2.1'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '2.1'
125
+ - !ruby/object:Gem::Dependency
126
+ name: yard
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '0.9'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '0.9'
139
+ description: A static website builder with simple templating and management utilities.
140
+ email:
141
+ - edin@actiontwelve.com
142
+ executables:
143
+ - geb
144
+ extensions: []
145
+ extra_rdoc_files: []
146
+ files:
147
+ - ".yardopts"
148
+ - CHANGELOG.md
149
+ - CODE_OF_CONDUCT.md
150
+ - LICENSE
151
+ - README.md
152
+ - Rakefile
153
+ - bin/geb
154
+ - lib/geb.rb
155
+ - lib/geb/cli.rb
156
+ - lib/geb/commands/build.rb
157
+ - lib/geb/commands/init.rb
158
+ - lib/geb/commands/release.rb
159
+ - lib/geb/commands/remote.rb
160
+ - lib/geb/commands/server.rb
161
+ - lib/geb/commands/upload.rb
162
+ - lib/geb/commands/version.rb
163
+ - lib/geb/config.rb
164
+ - lib/geb/defaults.rb
165
+ - lib/geb/git.rb
166
+ - lib/geb/page.rb
167
+ - lib/geb/partial.rb
168
+ - lib/geb/samples/basic/assets/css/site.css
169
+ - lib/geb/samples/basic/assets/images/android-chrome-192x192.png
170
+ - lib/geb/samples/basic/assets/images/android-chrome-512x512.png
171
+ - lib/geb/samples/basic/assets/images/apple-touch-icon.png
172
+ - lib/geb/samples/basic/assets/images/favicon-16x16.png
173
+ - lib/geb/samples/basic/assets/images/favicon-32x32.png
174
+ - lib/geb/samples/basic/assets/images/favicon.ico
175
+ - lib/geb/samples/basic/assets/images/hero.png
176
+ - lib/geb/samples/basic/assets/images/og-thumb.png
177
+ - lib/geb/samples/basic/assets/images/twitter-thumb.png
178
+ - lib/geb/samples/basic/assets/js/site.js
179
+ - lib/geb/samples/basic/geb.config.yml
180
+ - lib/geb/samples/basic/index.html
181
+ - lib/geb/samples/basic/page.html
182
+ - lib/geb/samples/basic/shared/partials/_analytics.html
183
+ - lib/geb/samples/basic/shared/partials/_footer.html
184
+ - lib/geb/samples/basic/shared/partials/_global_assets.html
185
+ - lib/geb/samples/basic/shared/partials/_header.html
186
+ - lib/geb/samples/basic/shared/partials/_meta_tags.html
187
+ - lib/geb/samples/basic/shared/templates/_blog_post.html
188
+ - lib/geb/samples/basic/shared/templates/_site.html
189
+ - lib/geb/samples/basic/site.webmanifest
190
+ - lib/geb/samples/bootstrap_jquery/assets/css/site.css
191
+ - lib/geb/samples/bootstrap_jquery/assets/images/android-chrome-192x192.png
192
+ - lib/geb/samples/bootstrap_jquery/assets/images/android-chrome-512x512.png
193
+ - lib/geb/samples/bootstrap_jquery/assets/images/apple-touch-icon.png
194
+ - lib/geb/samples/bootstrap_jquery/assets/images/favicon-16x16.png
195
+ - lib/geb/samples/bootstrap_jquery/assets/images/favicon-32x32.png
196
+ - lib/geb/samples/bootstrap_jquery/assets/images/favicon.ico
197
+ - lib/geb/samples/bootstrap_jquery/assets/images/hero.png
198
+ - lib/geb/samples/bootstrap_jquery/assets/images/og-thumb.png
199
+ - lib/geb/samples/bootstrap_jquery/assets/images/twitter-thumb.png
200
+ - lib/geb/samples/bootstrap_jquery/assets/js/site.js
201
+ - lib/geb/samples/bootstrap_jquery/blog/blog_post_1.html
202
+ - lib/geb/samples/bootstrap_jquery/blog/blog_post_2.html
203
+ - lib/geb/samples/bootstrap_jquery/blog/blog_post_3.html
204
+ - lib/geb/samples/bootstrap_jquery/blog/index.html
205
+ - lib/geb/samples/bootstrap_jquery/geb.config.yml
206
+ - lib/geb/samples/bootstrap_jquery/index.html
207
+ - lib/geb/samples/bootstrap_jquery/page.html
208
+ - lib/geb/samples/bootstrap_jquery/shared/partials/_analytics.html
209
+ - lib/geb/samples/bootstrap_jquery/shared/partials/_footer.html
210
+ - lib/geb/samples/bootstrap_jquery/shared/partials/_global_assets.html
211
+ - lib/geb/samples/bootstrap_jquery/shared/partials/_header.html
212
+ - lib/geb/samples/bootstrap_jquery/shared/partials/_meta_tags.html
213
+ - lib/geb/samples/bootstrap_jquery/shared/templates/_blog_post.html
214
+ - lib/geb/samples/bootstrap_jquery/shared/templates/_site.html
215
+ - lib/geb/samples/bootstrap_jquery/site.webmanifest
216
+ - lib/geb/samples/geb.config.yml
217
+ - lib/geb/server.rb
218
+ - lib/geb/site.rb
219
+ - lib/geb/site/build.rb
220
+ - lib/geb/site/core.rb
221
+ - lib/geb/site/release.rb
222
+ - lib/geb/site/remote.rb
223
+ - lib/geb/site/template.rb
224
+ - lib/geb/template.rb
225
+ - lib/geb/utilities.rb
226
+ - lib/seth.rb
227
+ - sig/geb.rbs
228
+ - test/api tests/test_cli.rb
229
+ - test/api tests/test_config.rb
230
+ - test/api tests/test_defaults.rb
231
+ - test/api tests/test_git.rb
232
+ - test/api tests/test_page.rb
233
+ - test/api tests/test_partial.rb
234
+ - test/api tests/test_server.rb
235
+ - test/api tests/test_site.rb
236
+ - test/api tests/test_template.rb
237
+ - test/api tests/test_utilities.rb
238
+ - test/command tests/test_geb_build.rb
239
+ - test/command tests/test_geb_init.rb
240
+ - test/command tests/test_geb_release.rb
241
+ - test/command tests/test_geb_remote.rb
242
+ - test/command tests/test_geb_server.rb
243
+ - test/command tests/test_geb_upload.rb
244
+ - test/command tests/test_geb_version.rb
245
+ - test/support/geb_api_test.rb
246
+ - test/support/geb_cli_test.rb
247
+ - test/support/geb_minitest_ext.rb
248
+ - test/support/geb_test_helpers.rb
249
+ - test/support/geb_web_server_proxy.rb
250
+ - test/test_helper.rb
251
+ homepage: https://github.com/mainfram-work/geb
252
+ licenses:
253
+ - MIT
254
+ metadata:
255
+ homepage_uri: https://github.com/mainfram-work/geb
256
+ source_code_uri: https://github.com/mainfram-work/geb
257
+ changelog_uri: https://github.com/mainfram-work/geb/blob/main/CHANGELOG.md
258
+ post_install_message:
259
+ rdoc_options: []
260
+ require_paths:
261
+ - lib
262
+ required_ruby_version: !ruby/object:Gem::Requirement
263
+ requirements:
264
+ - - ">="
265
+ - !ruby/object:Gem::Version
266
+ version: 3.0.0
267
+ required_rubygems_version: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - ">="
270
+ - !ruby/object:Gem::Version
271
+ version: '0'
272
+ requirements: []
273
+ rubygems_version: 3.5.9
274
+ signing_key:
275
+ specification_version: 4
276
+ summary: Geb is a robust static website manager and builder, offering powerful tools
277
+ and templates for creating and managing static websites with ease.
278
+ test_files:
279
+ - test/api tests/test_cli.rb
280
+ - test/api tests/test_config.rb
281
+ - test/api tests/test_defaults.rb
282
+ - test/api tests/test_git.rb
283
+ - test/api tests/test_page.rb
284
+ - test/api tests/test_partial.rb
285
+ - test/api tests/test_server.rb
286
+ - test/api tests/test_site.rb
287
+ - test/api tests/test_template.rb
288
+ - test/api tests/test_utilities.rb
289
+ - test/command tests/test_geb_build.rb
290
+ - test/command tests/test_geb_init.rb
291
+ - test/command tests/test_geb_release.rb
292
+ - test/command tests/test_geb_remote.rb
293
+ - test/command tests/test_geb_server.rb
294
+ - test/command tests/test_geb_upload.rb
295
+ - test/command tests/test_geb_version.rb
296
+ - test/support/geb_api_test.rb
297
+ - test/support/geb_cli_test.rb
298
+ - test/support/geb_minitest_ext.rb
299
+ - test/support/geb_test_helpers.rb
300
+ - test/support/geb_web_server_proxy.rb
301
+ - test/test_helper.rb