geb 0.1.11

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.
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