bridgetown-builder 0.16.0.beta1 → 0.18.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 587cbeefccdd594cbe755937f2b0574e490939f0566377bfda31a31916f0dfc3
4
- data.tar.gz: f0567fcc7bd016061b3c59f59581a91e09065eeb53e61b0eb74ad41dfdfe766f
3
+ metadata.gz: 944a5bb1e3d94e31d7b42f895efc937c2a0b88975c299474c5b2410f93045d98
4
+ data.tar.gz: 4b50d4cc2f994356f2c4b78a70c2d3f9f4d73b089e6db0593374c9ed45890822
5
5
  SHA512:
6
- metadata.gz: 1a2c6051b8d85c3eab848e2973c0530d95cca53d92bda129d4e4fbda8c240cb02eb7dad541580999d89632c33e26186c17de166fab3934722feb0137fd666cc5
7
- data.tar.gz: 86067689f38fe5955712d357ac286440af7ae4fa4df7ba9b2293d63f939d6dd16d2629313fa4d846e0b23893730633ded91af65d688674307ab1da4ccf254365
6
+ metadata.gz: 3e0516b8583d59f21c7fda26b3b1ec9cee1bd390eb7cc01780e35eea69560275e58f28861a97e175444726bfe064a56e7ad02bdb15ade3d84b47bbff111a27e3
7
+ data.tar.gz: d6a987965c4a0505b63c0fec9ca76551e3e2e5e38003487cab81bdb2c8c0da1cc128004f25550bd252852d8808c6ec0a190627b5164ef545d3a3d6536732a991
@@ -8,7 +8,7 @@ module Bridgetown
8
8
  def initialize(site, path)
9
9
  @site = site
10
10
  @path = path
11
- @data = ActiveSupport::HashWithIndifferentAccess.new
11
+ @data = HashWithDotAccess::Hash.new
12
12
  end
13
13
 
14
14
  def front_matter(data)
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bridgetown
4
+ module Builders
5
+ module DSL
6
+ module Helpers
7
+ def helper(helper_name, method_name = nil, helpers_scope: false, &block)
8
+ builder_self = self
9
+ m = Module.new
10
+
11
+ if block && !helpers_scope
12
+ m.define_method helper_name do |*args|
13
+ builder_self.instance_exec(*args, &block)
14
+ end
15
+ else
16
+ block = method(method_name) if method_name
17
+ m.define_method helper_name, &block
18
+ end
19
+
20
+ Bridgetown::RubyTemplateView::Helpers.include(m)
21
+
22
+ functions << { name: name, filter: m }
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -5,10 +5,18 @@ module Bridgetown
5
5
  module DSL
6
6
  module Liquid
7
7
  def liquid_filter(filter_name, method_name = nil, &block)
8
- block = method(method_name) if method_name.is_a?(Symbol)
9
-
8
+ builder_self = self
10
9
  m = Module.new
11
- m.send(:define_method, filter_name, &block)
10
+
11
+ if block
12
+ m.define_method filter_name do |*args|
13
+ builder_self.instance_exec(*args, &block)
14
+ end
15
+ elsif method_name
16
+ block = method(method_name)
17
+ m.define_method filter_name, &block
18
+ end
19
+
12
20
  ::Liquid::Template.register_filter(m)
13
21
 
14
22
  functions << { name: name, filter: m }
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "bridgetown-builder/dsl/generators"
4
+ require "bridgetown-builder/dsl/helpers"
4
5
  require "bridgetown-builder/dsl/hooks"
5
6
  require "bridgetown-builder/dsl/http"
6
7
  require "bridgetown-builder/dsl/liquid"
@@ -8,6 +9,7 @@ module Bridgetown
8
9
  module Builders
9
10
  class PluginBuilder
10
11
  include DSL::Generators
12
+ include DSL::Helpers
11
13
  include DSL::Hooks
12
14
  include DSL::HTTP
13
15
  include DSL::Liquid
@@ -21,7 +23,7 @@ module Bridgetown
21
23
 
22
24
  self.config = if defined?(self.class::CONFIG_DEFAULTS)
23
25
  Bridgetown::Utils.deep_merge_hashes(
24
- self.class::CONFIG_DEFAULTS.with_indifferent_access, site.config
26
+ self.class::CONFIG_DEFAULTS.with_dot_access, site.config
25
27
  )
26
28
  else
27
29
  site.config
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: 0.16.0.beta1
4
+ version: 0.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bridgetown Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-16 00:00:00.000000000 Z
11
+ date: 2020-10-29 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: 0.16.0.beta1
19
+ version: 0.18.0
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: 0.16.0.beta1
26
+ version: 0.18.0
27
27
  description:
28
28
  email: maintainers@bridgetownrb.com
29
29
  executables: []
@@ -38,6 +38,7 @@ files:
38
38
  - lib/bridgetown-builder/document.rb
39
39
  - lib/bridgetown-builder/documents_generator.rb
40
40
  - lib/bridgetown-builder/dsl/generators.rb
41
+ - lib/bridgetown-builder/dsl/helpers.rb
41
42
  - lib/bridgetown-builder/dsl/hooks.rb
42
43
  - lib/bridgetown-builder/dsl/http.rb
43
44
  - lib/bridgetown-builder/dsl/liquid.rb
@@ -57,11 +58,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
57
58
  version: '0'
58
59
  required_rubygems_version: !ruby/object:Gem::Requirement
59
60
  requirements:
60
- - - ">"
61
+ - - ">="
61
62
  - !ruby/object:Gem::Version
62
- version: 1.3.1
63
+ version: '0'
63
64
  requirements: []
64
- rubygems_version: 3.0.6
65
+ rubygems_version: 3.1.4
65
66
  signing_key:
66
67
  specification_version: 4
67
68
  summary: A Bridgetown plugin to provide a sophisticated DSL for writing plugins at