bridgetown-builder 0.15.0 → 0.17.1

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: 89689d44ea79e54096dcefb50eff7e3c993423d6a251c86557fc5f3480a2ae21
4
- data.tar.gz: cdcf4cbef8e4c0e30c74b71fc6dd81e71d0ed9ed46bb91ddf545eca048fb119a
3
+ metadata.gz: a38d2601063685cf243b210948955fa43fc75309f71d9f9e082935308db7584e
4
+ data.tar.gz: f40f20d5046b870bf417e4c443ba4515ffd9f0fb67d2fb524f9b270f26366033
5
5
  SHA512:
6
- metadata.gz: 41d52731758806e1d53d2464003048dadb84194a9aa97367f315092fe445c30f67d0d60b7c9a29ae0c720a184c585696836aa644cf73579a56697971f88aa986
7
- data.tar.gz: b7a9391ee35180dfcb24e306b999c58b11bdcc5b7f6a29a60a61ec42790ebf2246000e089d21b6716fcca81db51ffa8567e56c05e4dd899d27e85cf49ee77db2
6
+ metadata.gz: c7a60015e9a38fb0c2115364bcc561c2f0868fc2118e21525f08faa817bfe497fc98360d62450e510c3b226c5e9701496b085e004a45eea5819e167c3cb097a7
7
+ data.tar.gz: 45c432b1adc189acff1773041bcb796c3e01245f40349a0675ac2819dee4c04e8efede1568e325337c87d582d16805ebe9b3a7ac2bbcb9f6d77a8dc09ada3713
@@ -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.15.0
4
+ version: 0.17.1
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-06-18 00:00:00.000000000 Z
11
+ date: 2020-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: 0.15.0
19
+ version: 0.17.1
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.15.0
26
+ version: 0.17.1
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