bridgetown-core 1.2.0.beta4 → 1.2.0.beta5

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: '08e8af225c97352ea9bcd919e789a97324fb28e6b2db3c6b48855f9a28cc3174'
4
- data.tar.gz: 6919f66af92cccfac42de96d715a5607be949d8718cbb1d445525a305fd9c337
3
+ metadata.gz: 7db2117b99eb2b2943920e6cbfe4267b2a668842de44e360df645da6554ea877
4
+ data.tar.gz: b8e3652ab12db38512546612a74df6939bd841166d9cfae371aa75d6ae8d8265
5
5
  SHA512:
6
- metadata.gz: 6ff56bf0f74c78ca29f34f975ef53b21c3ca909dfd3089a73e83765cd573d9d330c7434f17192088d1ee009e60d39b52312de43758de061139e3f0e606bc9f82
7
- data.tar.gz: 00ddd1d66a630f5e9ba30d693fc5df8feefaa455343bbb6c13100e87f0428b1ea33d2ff50b160ae1f1857294aebdf594d26111feb815d4f9249d00737c0cfe0e
6
+ metadata.gz: 446f796d17a209b19afdb9d8f349d1e5197d7f5600598bc21be3c23c73df7d10c125379d739bd608322d404365ca37b4a37cbe9b38fa8bdd22a97c84c41bee7c
7
+ data.tar.gz: 89293450447e8acb5718cdcdc782124699faa138c559474c5df66609715163fca809d4ed477cf5ee75b905f62e0bcbd540f62a46841b8c58fede225670ae429b
@@ -285,7 +285,7 @@ module Bridgetown
285
285
  locales = model.locales || site.config.available_locales
286
286
 
287
287
  locales.each do |locale|
288
- model.locale = locale
288
+ model.locale = locale.to_sym
289
289
  add_resource_from_model model
290
290
  end
291
291
 
@@ -27,7 +27,7 @@ module Bridgetown
27
27
 
28
28
  def javascript_import(data = nil, filename: "index.js") # rubocop:todo Metrics/PerceivedComplexity
29
29
  data ||= yield if block_given?
30
- data += "\n" unless data.chars.last == "\n"
30
+ data += "\n" unless data[-1] == "\n"
31
31
 
32
32
  say_status :javascript_import, filename
33
33
 
@@ -56,8 +56,9 @@ module Bridgetown
56
56
  options = +""
57
57
  options += " -v \"#{version}\"" if version
58
58
  options += " -g #{group}" if group
59
+ # in_bundle? returns the path to the gemfile
59
60
  run "bundle add #{gemname}#{options}",
60
- env: { "BUNDLE_GEMFILE" => File.join(destination_root, "Gemfile") }
61
+ env: { "BUNDLE_GEMFILE" => Bundler::SharedHelpers.in_bundle? }
61
62
  rescue SystemExit
62
63
  say_status :run, "Gem not added due to bundler error", :red
63
64
  end
@@ -68,7 +69,7 @@ module Bridgetown
68
69
  data = yield if block_given?
69
70
  data = data.indent(2).lstrip
70
71
  data = " #{data}" unless data.start_with?(",")
71
- data += "\n" unless data.chars.last == "\n"
72
+ data += "\n" unless data[-1] == "\n"
72
73
 
73
74
  init_file = File.join("config", "initializers.rb")
74
75
  unless File.exist?(init_file)
@@ -85,7 +86,7 @@ module Bridgetown
85
86
  say_status :configure, name
86
87
  data = yield if block_given?
87
88
  data = data.indent(2)
88
- data += "\n" unless data.chars.last == "\n"
89
+ data += "\n" unless data[-1] == "\n"
89
90
 
90
91
  init_file = File.join("config", "initializers.rb")
91
92
  unless File.exist?(init_file)
@@ -42,6 +42,7 @@ module Bridgetown
42
42
  # Load Bridgetown configuration into thread memory
43
43
  bt_options = configuration_with_overrides(options)
44
44
 
45
+ # Set a local site URL in the config if one is not available
45
46
  if Bridgetown.env.development? && !options["url"]
46
47
  scheme = bt_options.bind&.split("://")&.first == "ssl" ? "https" : "http"
47
48
  port = bt_options.bind&.split(":")&.last || ENV["BRIDGETOWN_PORT"] || 4000
@@ -12,7 +12,11 @@ module Bridgetown
12
12
  []
13
13
  end
14
14
 
15
- result_set.select { |item| item.data.slug == data.slug }.sort_by do |item|
15
+ matching_resources = result_set.select do |item|
16
+ item.relative_path.parent == relative_path.parent && item.data.slug == data.slug
17
+ end
18
+
19
+ matching_resources.sort_by do |item|
16
20
  site.config.available_locales.index item.data.locale
17
21
  end
18
22
  end
@@ -73,7 +73,7 @@ module Bridgetown
73
73
  end
74
74
 
75
75
  def method_missing(key, *value, &block) # rubocop:disable Style/MissingRespondToMissing
76
- return get(key) if value.length.zero? && block.nil?
76
+ return get(key) if value.empty? && block.nil?
77
77
 
78
78
  set(key, value[0], &block)
79
79
  end
@@ -130,7 +130,7 @@ module Bridgetown
130
130
  end
131
131
  end
132
132
 
133
- def run_initializers!(context:)
133
+ def run_initializers!(context:) # rubocop:todo Metrics/AbcSize, Metrics/CyclomaticComplexity
134
134
  initializers_file = File.join(root_dir, "config", "initializers.rb")
135
135
  return unless File.file?(initializers_file)
136
136
 
@@ -144,9 +144,11 @@ module Bridgetown
144
144
  Bridgetown.logger.debug "Initializing:", "Running initializers with `#{context}' context in:"
145
145
  Bridgetown.logger.debug "", initializers_file
146
146
  self.init_params = {}
147
+ cached_url = url&.include?("//localhost") ? url : nil
147
148
  dsl = ConfigurationDSL.new(scope: self, data: self)
148
149
  dsl.instance_variable_set(:@context, context)
149
150
  dsl.instance_exec(dsl, &init_init.block)
151
+ self.url = cached_url if cached_url # restore local development URL if need be
150
152
 
151
153
  setup_load_paths! appending: true
152
154
 
@@ -308,7 +310,8 @@ module Bridgetown
308
310
  next_config
309
311
  rescue SystemCallError
310
312
  if @default_config_file ||= nil
311
- Bridgetown.logger.warn "Configuration file:", "none"
313
+ initializers_file = File.join(root_dir, "config", "initializers.rb")
314
+ Bridgetown.logger.warn "Configuration file:", "none" unless File.file?(initializers_file)
312
315
  {}
313
316
  else
314
317
  Bridgetown.logger.error "Fatal:", "The configuration file '#{file}' could not be found."
@@ -400,7 +403,7 @@ module Bridgetown
400
403
 
401
404
  DEFAULT_EXCLUDES = %w(
402
405
  .sass-cache .bridgetown-cache
403
- gemfiles Gemfile Gemfile.lock
406
+ gemfiles Gemfile Gemfile.lock gems.rb gems.locked
404
407
  node_modules
405
408
  vendor/bundle/ vendor/cache/ vendor/gems/ vendor/ruby/
406
409
  ).freeze
@@ -4,7 +4,7 @@ module Bridgetown
4
4
  module Drops
5
5
  class StaticFileDrop < Drop
6
6
  extend Forwardable
7
- def_delegators :@obj, :name, :extname, :modified_time, :basename
7
+ def_delegators :@obj, :name, :extname, :date, :modified_time, :basename
8
8
  def_delegator :@obj, :relative_path, :path
9
9
  def_delegator :@obj, :type, :collection
10
10
 
@@ -59,7 +59,7 @@ module Bridgetown
59
59
  # `url` or `relative_url`
60
60
  # @return [String] the permalink URL for the file
61
61
  def url_for(relative_path)
62
- if relative_path.respond_to?(:relative_url) # rubocop:disable Style/GuardClause
62
+ if relative_path.respond_to?(:relative_url)
63
63
  return safe(relative_path.relative_url) # new resource engine
64
64
  elsif relative_path.respond_to?(:url)
65
65
  return safe(relative_url(relative_path.url)) # old legacy engine
@@ -61,7 +61,8 @@ module Bridgetown
61
61
  end
62
62
 
63
63
  def self.setup_bundler(skip_yarn: false)
64
- if !ENV["BRIDGETOWN_NO_BUNDLER_REQUIRE"] && (File.file?("Gemfile") || Bridgetown.env.test?)
64
+ if !ENV["BRIDGETOWN_NO_BUNDLER_REQUIRE"] &&
65
+ (Bundler::SharedHelpers.in_bundle? || Bridgetown.env.test?)
65
66
  require "bundler"
66
67
 
67
68
  require_relative "utils/initializers"
@@ -14,10 +14,10 @@ Roda::RodaPlugins::Public::RequestMethods.module_eval do
14
14
  seg == ".." ? segments.pop : segments << seg
15
15
  end
16
16
 
17
- path = ::File.join(roda_class.opts[:public_root], *segments)
18
- unless ::File.file?(path)
19
- path = ::File.join(path, "index.html")
20
- if ::File.file?(path)
17
+ path = File.join(roda_class.opts[:public_root], *segments)
18
+ unless File.file?(path)
19
+ path = File.join(path, "index.html")
20
+ if File.file?(path)
21
21
  segments << "index.html"
22
22
  else
23
23
  segments[segments.size - 1] = "#{segments.last}.html"
@@ -373,7 +373,7 @@ module Bridgetown
373
373
  found_locale = data.language || data.lang || basename_without_ext.split(".")[1..].last
374
374
  return unless found_locale && site.config.available_locales.include?(found_locale.to_sym)
375
375
 
376
- found_locale
376
+ found_locale.to_sym
377
377
  end
378
378
 
379
379
  def format_url(url)
@@ -73,6 +73,8 @@ module Bridgetown
73
73
  @modified_time ||= File.stat(path).mtime
74
74
  end
75
75
 
76
+ alias_method :date, :modified_time
77
+
76
78
  # Returns last modification time for this file.
77
79
  def mtime
78
80
  modified_time.to_i
@@ -119,12 +121,12 @@ module Bridgetown
119
121
  @to_liquid ||= Drops::StaticFileDrop.new(self)
120
122
  end
121
123
 
122
- # Generate "basename without extension" and strip away any trailing periods.
123
- # NOTE: `String#gsub` removes all trailing periods (in comparison to `String#chomp`)
124
124
  def basename
125
- @basename ||= File.basename(name, extname).gsub(%r!\.*\z!, "")
125
+ @basename ||= File.basename(name, ".*")
126
126
  end
127
127
 
128
+ alias_method :basename_without_ext, :basename
129
+
128
130
  def relative_path_basename_without_prefix
129
131
  return_path = Pathname.new("")
130
132
  Pathname.new(cleaned_relative_path).each_filename do |filename|
@@ -185,7 +187,7 @@ module Bridgetown
185
187
 
186
188
  # Returns the type of the collection if present, nil otherwise.
187
189
  def type
188
- @type ||= @collection.nil? ? nil : @collection.label.to_sym
190
+ @type ||= @collection&.label&.to_sym
189
191
  end
190
192
 
191
193
  # Returns the front matter defaults defined for the file's URL and/or type
@@ -14,9 +14,9 @@ module Bridgetown
14
14
  end
15
15
 
16
16
  def method_missing(key, *value, &block) # rubocop:disable Metrics/CyclomaticComplexity, Style/MissingRespondToMissing
17
- return super if respond_to?(key) || (value.length.zero? && block.nil? && !@data.key?(key))
17
+ return super if respond_to?(key) || (value.empty? && block.nil? && !@data.key?(key))
18
18
 
19
- return get(key) if value.length.zero? && block.nil? && @data.key?(key)
19
+ return get(key) if value.empty? && block.nil? && @data.key?(key)
20
20
 
21
21
  set(key, value[0], &block)
22
22
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bridgetown
4
- VERSION = "1.2.0.beta4"
4
+ VERSION = "1.2.0.beta5"
5
5
  CODE_NAME = "Bonny Slope"
6
6
  end
@@ -16,6 +16,7 @@ end
16
16
 
17
17
  # rubygems
18
18
  require "rubygems"
19
+ require "bundler/shared_helpers"
19
20
 
20
21
  # stdlib
21
22
  require "find"
@@ -1,6 +1,10 @@
1
1
  # Puma is a fast, concurrent web server for Ruby & Rack
2
2
  #
3
3
  # Learn more at: https://puma.io
4
+ # Bridgetown configuration documentation:
5
+ # https://edge.bridgetownrb.com/docs/configuration/puma
6
+
7
+ # This port number can be overriden by a bind configuration option
4
8
  #
5
9
  port ENV.fetch("BRIDGETOWN_PORT") { 4000 }
6
10
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bridgetown-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0.beta4
4
+ version: 1.2.0.beta5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bridgetown Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-07 00:00:00.000000000 Z
11
+ date: 2023-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel