bridgetown-builder 1.1.0 → 1.2.0.beta1

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: b844c16c3959200386b85e0c9b24e9ceda416546c1c5143c0ee4baafb66112b4
4
- data.tar.gz: e07d64aad3700b3ee79e66692755d75a7a7cdb483febb58228d5025fbce428a2
3
+ metadata.gz: 9376f1f28e9fb611697fc7e18e912aa7918534b551cb4fa1ac7fc1ba0cbded12
4
+ data.tar.gz: 192427cc6d3cdd57f089ae762d015d2db4907011a954027abf1a2c5d0ea5934b
5
5
  SHA512:
6
- metadata.gz: 034dccebc509b960c3c183e1d963cf4aff2ab37259e168d88d542b8ae05a4bc52c23c3c5b802eebabfc3baabdeb4f0c9cba2eff0af0df13f314117907283d779
7
- data.tar.gz: ebcb28861dfa0f1eef34b966d729e0ab98a30e04b211e406f52951cfb0c14801644d8b5a3bea9241bbb9da96cdfb2a9b97356bb2b50774b65667f8c960fb7478
6
+ metadata.gz: 7e8acc00410ec0a2e95a3b2826cf3b291c605f99dacf644aacdd5de02f621cb5aff37fc95ea8cc7e9bddb26d1f56838a719550bedef76379eb65be9e097a49b3
7
+ data.tar.gz: 310932710ced2d986c7fe2cb066a6e200be405e0931bd2154c81024a2424016c92b90bcd90096efe79047ee084c6124a86ecacefa8522b9492ff0e84621b7cd2
@@ -14,5 +14,12 @@ Gem::Specification.new do |spec|
14
14
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r!^(test|script|spec|features)/!) }
15
15
  spec.require_paths = ["lib"]
16
16
 
17
+ spec.metadata = {
18
+ "source_code_uri" => "https://github.com/bridgetownrb/bridgetown",
19
+ "bug_tracker_uri" => "https://github.com/bridgetownrb/bridgetown/issues",
20
+ "changelog_uri" => "https://github.com/bridgetownrb/bridgetown/releases",
21
+ "homepage_uri" => spec.homepage,
22
+ }
23
+
17
24
  spec.add_dependency("bridgetown-core", Bridgetown::VERSION)
18
25
  end
@@ -4,13 +4,21 @@ module Bridgetown
4
4
  module Builders
5
5
  module DSL
6
6
  module Helpers
7
+ def helpers
8
+ @helpers # could be nil
9
+ end
10
+
7
11
  def helper(helper_name, method_name = nil, helpers_scope: false, &block)
8
- builder_self = self
9
12
  m = Module.new
10
13
 
11
14
  if block && helpers_scope
15
+ Deprecator.deprecation_message(
16
+ "The `helpers_scope' functionality is deprecated. Use the `helpers' builder " \
17
+ "method to access the helpers scope in your plugin."
18
+ )
12
19
  m.define_method helper_name, &block
13
20
  else
21
+ builder_self = self
14
22
  method_name ||= helper_name unless block
15
23
  unless method_name
16
24
  method_name = :"__helper_#{helper_name}"
@@ -19,7 +27,11 @@ module Bridgetown
19
27
  end
20
28
  end
21
29
  m.define_method helper_name do |*args, **kwargs, &block2|
22
- builder_self.send(method_name, *args, **kwargs, &block2)
30
+ prev_var = builder_self.instance_variable_get(:@helpers)
31
+ builder_self.instance_variable_set(:@helpers, self)
32
+ builder_self.send(method_name, *args, **kwargs, &block2).tap do
33
+ builder_self.instance_variable_set(:@helpers, prev_var)
34
+ end
23
35
  end
24
36
  end
25
37
 
@@ -7,7 +7,7 @@ module Bridgetown
7
7
  # Add a couple familar DOM API features
8
8
  module QuerySelection
9
9
  def query_selector(selector)
10
- css(selector).first
10
+ at_css(selector)
11
11
  end
12
12
 
13
13
  def query_selector_all(selector)
@@ -4,13 +4,25 @@ module Bridgetown
4
4
  module Builders
5
5
  module DSL
6
6
  module Liquid
7
+ def filters
8
+ @filters # could be nil
9
+ end
10
+
11
+ def filters_context
12
+ filters&.instance_variable_get(:@context)
13
+ end
14
+
7
15
  def liquid_filter(filter_name, method_name = nil, filters_scope: false, &block)
8
- builder_self = self
9
16
  m = Module.new
10
17
 
11
18
  if block && filters_scope
19
+ Deprecator.deprecation_message(
20
+ "The `filters_scope' functionality is deprecated. Use the `filters' builder " \
21
+ "method to access the filters scope in your plugin."
22
+ )
12
23
  m.define_method filter_name, &block
13
24
  else
25
+ builder_self = self
14
26
  method_name ||= filter_name unless block
15
27
  unless method_name
16
28
  method_name = :"__filter_#{filter_name}"
@@ -19,7 +31,11 @@ module Bridgetown
19
31
  end
20
32
  end
21
33
  m.define_method filter_name do |*args, **kwargs|
22
- builder_self.send(method_name, *args, **kwargs)
34
+ prev_var = builder_self.instance_variable_get(:@filters)
35
+ builder_self.instance_variable_set(:@filters, self)
36
+ builder_self.send(method_name, *args, **kwargs).tap do
37
+ builder_self.instance_variable_set(:@filters, prev_var)
38
+ end
23
39
  end
24
40
  end
25
41
 
@@ -4,6 +4,10 @@ module Bridgetown
4
4
  module Builders
5
5
  module DSL
6
6
  module Resources
7
+ def resource
8
+ @resource # could be nil
9
+ end
10
+
7
11
  def add_resource(collection_name, path, &block) # rubocop:todo Metrics/AbcSize
8
12
  data = Bridgetown::Utils::RubyFrontMatter.new(scope: self).tap do |fm|
9
13
  fm.define_singleton_method(:___) do |hsh|
@@ -36,6 +40,34 @@ module Bridgetown
36
40
  data
37
41
  ).as_resource_in_collection
38
42
  end
43
+
44
+ def define_resource_method(method_name, class_scope: false, &block)
45
+ unless block
46
+ builder_self = self
47
+ block = proc do |*args, **kwargs, &block2|
48
+ prev_var = builder_self.instance_variable_get(:@resource)
49
+ builder_self.instance_variable_set(:@resource, self)
50
+ builder_self.send(method_name, *args, **kwargs, &block2).tap do
51
+ builder_self.instance_variable_set(:@resource, prev_var)
52
+ end
53
+ end
54
+ end
55
+
56
+ m = Module.new
57
+ m.define_method method_name, &block
58
+
59
+ class_scope ? Bridgetown::Resource::Base.extend(m) : Bridgetown::Resource::Base.include(m)
60
+ end
61
+
62
+ def permalink_placeholder(key, &block)
63
+ Bridgetown::Resource::PermalinkProcessor.register_placeholder(
64
+ key, block
65
+ )
66
+ end
67
+
68
+ def placeholder_processors
69
+ Bridgetown::Resource::PermalinkProcessor.placeholder_processors
70
+ end
39
71
  end
40
72
  end
41
73
  end
@@ -40,9 +40,13 @@ module Bridgetown
40
40
  def initialize(name = nil, current_site = nil)
41
41
  self.functions = Set.new
42
42
  self.name = name || self.class.name
43
- self.site = current_site || Bridgetown.sites.first
43
+ self.site = current_site || Bridgetown::Current.site
44
44
 
45
45
  self.config = if defined?(self.class::CONFIG_DEFAULTS)
46
+ Deprecator.deprecation_message(
47
+ "Using `CONFIG_DEFAULTS' in your builder is deprecated. " \
48
+ "Switch to defining config data via an initializer instead."
49
+ )
46
50
  Bridgetown::Utils.deep_merge_hashes(
47
51
  self.class::CONFIG_DEFAULTS.with_dot_access, site.config
48
52
  )
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bridgetown-builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0.beta1
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-07-18 00:00:00.000000000 Z
11
+ date: 2022-10-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bridgetown-core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 1.1.0
19
+ version: 1.2.0.beta1
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.1.0
26
+ version: 1.2.0.beta1
27
27
  description:
28
28
  email: maintainers@bridgetownrb.com
29
29
  executables: []
@@ -46,7 +46,11 @@ files:
46
46
  homepage: https://github.com/bridgetownrb/bridgetown/tree/main/bridgetown-builder
47
47
  licenses:
48
48
  - MIT
49
- metadata: {}
49
+ metadata:
50
+ source_code_uri: https://github.com/bridgetownrb/bridgetown
51
+ bug_tracker_uri: https://github.com/bridgetownrb/bridgetown/issues
52
+ changelog_uri: https://github.com/bridgetownrb/bridgetown/releases
53
+ homepage_uri: https://github.com/bridgetownrb/bridgetown/tree/main/bridgetown-builder
50
54
  post_install_message:
51
55
  rdoc_options: []
52
56
  require_paths:
@@ -58,9 +62,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
58
62
  version: '0'
59
63
  required_rubygems_version: !ruby/object:Gem::Requirement
60
64
  requirements:
61
- - - ">="
65
+ - - ">"
62
66
  - !ruby/object:Gem::Version
63
- version: '0'
67
+ version: 1.3.1
64
68
  requirements: []
65
69
  rubygems_version: 3.1.4
66
70
  signing_key: