bridgetown-builder 0.16.0.beta2 → 0.18.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: 6ea82942e0e70e66b7618cb6e195fa77945008d1207f011c925f6b94064fd54f
4
- data.tar.gz: 55ed08d2f8dd2d57ef91e694ae224593bed92940c9f8691d4947f91775b40efc
3
+ metadata.gz: 0ffd47bbeff3cb0403e30c964fe8abaad37ee74e742f911d156af0aaa0b04104
4
+ data.tar.gz: 4b1abf6092fecb1b7af804093a1262d2b78bc10068a68cb09b6e3f4367c6ece7
5
5
  SHA512:
6
- metadata.gz: 930635424027fe4e7add0d460d24ce44bb6d1d446f2bb69ddac5ec6b1786ef394ff2b86c925d8b0495362fb44ecae9b36b75d4a7debb3cd73c5957bcbbfcfb64
7
- data.tar.gz: 0db5e6cf6914991ec5f38c0d280844ecba482ed84cd48fe7fd623353ccd996ed07ad1a5dfe3d78f6a53ef308ecb86ce10d6bf9e9d9de5ef94583e3c723a02d4c
6
+ metadata.gz: e0d3c4afe236f81de8e5a343ef0ad01aa1f7909663bcb0f5bdfefb6b7272025bd29bfd8e51e179a273bb4b9b6fc02d49b1f9774f9153e154332ec7bc76410f34
7
+ data.tar.gz: 863e7810052c21f568be01cb6e7eaccef88b04bbec6bec8f03dc00228785570d5837469c011670a02bcdc0e233ed7548638cc37cb323caddeb0dfcc67b6ca8aa
@@ -8,7 +8,7 @@ AllCops:
8
8
 
9
9
  Metrics/AbcSize:
10
10
  Exclude:
11
- - lib/bridgetown-builder/dsl/*
11
+ - lib/bridgetown-builder/dsl/generators.rb
12
12
  Metrics/MethodLength:
13
13
  Exclude:
14
14
  - lib/bridgetown-builder/dsl/*
@@ -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.beta2
4
+ version: 0.18.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-07-24 00:00:00.000000000 Z
11
+ date: 2020-10-30 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.beta2
19
+ version: 0.18.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.16.0.beta2
26
+ version: 0.18.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
@@ -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