dato_dast 0.1.1 → 0.2.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: 347783d66e05d06e13d0f81d428abd674ddef8204656ac1547d1617ac54460b7
4
- data.tar.gz: f7ef816f78ae6dd8a94dd3e2af53c9b7e0be18109eb8a3684681702ac92ecce3
3
+ metadata.gz: c72b8aaf4727201859551e3b1a6bc0db761be538dc4411c3444e56454cde77d9
4
+ data.tar.gz: e69f5d9cec8ef6b7b6d96318b3fdfdc1be57e947d35d8117c64fdcaaa451b4be
5
5
  SHA512:
6
- metadata.gz: 37d3846161531105d192f9b5ff5663990b595352780a5d7bba5a2abcd4de3eeba6e5ed0c456f706385c14adb1cccce8e6b28ce14d99033784c4e0ad4a2ea95e9
7
- data.tar.gz: a760804657dde90e802502afc90b2747fcfd710b46ff76af8caf0757abc3dbd7a41d537832168427b975a583515dffd89af68b33274666583ba40ff1d88e81c6
6
+ metadata.gz: d18f729ed3d089d9038ecb12c4837e9b3c6bd1916cb7733d8c9ffdc4c59a97f2161079957b445d17171d65e1a3b4a1940bc8f02f6b2038953740ccf5dd370cb6
7
+ data.tar.gz: 9a06315c442542b0def184a4dbe513cf55a98a222b76eb63669b37e9e7c5aee64abcd0c0613d738a58282dd4550e08d47a7e8a89c9de6c8bd38d92ad334a7a32
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 2.7.5
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ## [0.2.0] - 2021-12-28
2
+
3
+ Features:
4
+ - Added `duplicate` for the configuration
5
+ - Add wrappers option to middleman extension
6
+
7
+ Fixes
8
+ - Don't load extension twice in middleman
9
+
1
10
  ## [0.1.1] - 2021-11-20
2
11
 
3
12
  Fixes
data/Gemfile.lock CHANGED
@@ -1,13 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dato_dast (0.1.1)
4
+ dato_dast (0.2.0)
5
5
  activesupport
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activesupport (6.1.4.1)
10
+ activesupport (6.1.4.4)
11
11
  concurrent-ruby (~> 1.0, >= 1.0.2)
12
12
  i18n (>= 1.6, < 2)
13
13
  minitest (>= 5.1)
@@ -20,7 +20,7 @@ GEM
20
20
  i18n (1.8.10)
21
21
  concurrent-ruby (~> 1.0)
22
22
  method_source (1.0.0)
23
- minitest (5.14.4)
23
+ minitest (5.15.0)
24
24
  pry (0.13.1)
25
25
  coderay (~> 1.1)
26
26
  method_source (~> 1.0)
@@ -43,9 +43,10 @@ GEM
43
43
  rspec-support (3.10.2)
44
44
  tzinfo (2.0.4)
45
45
  concurrent-ruby (~> 1.0)
46
- zeitwerk (2.4.2)
46
+ zeitwerk (2.5.1)
47
47
 
48
48
  PLATFORMS
49
+ ruby
49
50
  x86_64-darwin-20
50
51
 
51
52
  DEPENDENCIES
data/README.md CHANGED
@@ -66,6 +66,31 @@ config = DastDast::Configuration.new
66
66
  DatoDast.structured_text(item, config)
67
67
  ```
68
68
 
69
+ ### `DatoDast.configuration.duplicate`
70
+
71
+ If you want to temporarily override the existing configuration, you can
72
+ duplicate the current configuration and this method will return a configuration
73
+ object you can pass to `DatoDast.structured_text(text, configuration)` as the
74
+ configuration.
75
+
76
+ An example below:
77
+
78
+ ```ruby
79
+ DatoDast.configure do |config|
80
+ config.host = "https://example.com"
81
+ end
82
+
83
+ new_config = DatoDast.congfiguration.duplicate do |config|
84
+ config.highlight = false
85
+ end
86
+
87
+ DatoDast.configuration.host # => example.com
88
+ DatoDast.configuration.highlight # => true
89
+
90
+ new_config.host # => example.com
91
+ new_config.highlight # => false
92
+ ```
93
+
69
94
  The configuration options are:
70
95
 
71
96
  ### `config.highlight`, default: `true`
@@ -44,6 +44,18 @@ module DatoDast
44
44
  @types = TYPE_CONFIG.transform_values { |value| value.dup }
45
45
  end
46
46
 
47
+ def duplicate(&blk)
48
+ config = DatoDast::Configuration.new
49
+
50
+ %w(blocks inline_items highlight host item_links marks smart_links types).each do |method|
51
+ config.send("#{method}=", send(method))
52
+ end
53
+
54
+ yield config if blk
55
+
56
+ config
57
+ end
58
+
47
59
  def host=(new_host)
48
60
  return unless new_host
49
61
 
@@ -59,13 +71,13 @@ module DatoDast
59
71
  def blocks=(new_blocks)
60
72
  validate_items_configuration(new_blocks, "blocks")
61
73
 
62
- @blocks = new_blocks
74
+ @blocks.merge!(new_blocks)
63
75
  end
64
76
 
65
77
  def inline_items=(new_inline_items)
66
78
  validate_items_configuration(new_inline_items, "inline_items")
67
79
 
68
- @inline_items = new_inline_items
80
+ @inline_items.merge!(new_inline_items)
69
81
  end
70
82
 
71
83
  def marks=(new_marks)
@@ -11,8 +11,11 @@ module DatoDast
11
11
  option :marks, {}, "Configuration hash for a given mark"
12
12
  option :smart_links, true, "Open Link items in new windows and ItemLinks in the same window"
13
13
  option :types, {}, "Configuration hash for a given block node type"
14
+ option :wrappers, {}, "Wrappers for types without changing specific implementation"
14
15
 
15
16
  def after_configuration
17
+ return if app.mode?(:config)
18
+
16
19
  DatoDast.configure do |config|
17
20
  config.blocks = options[:blocks]
18
21
  config.highlight = options[:highlight]
@@ -22,6 +25,11 @@ module DatoDast
22
25
  config.marks = options[:marks]
23
26
  config.smart_links = options[:smart_links]
24
27
  config.types = options[:types]
28
+ options[:wrappers].each do |type, wrappers|
29
+ wrappers.each do |wrapper|
30
+ config.add_wrapper(type, wrapper)
31
+ end
32
+ end
25
33
  end
26
34
  end
27
35
 
@@ -31,7 +39,7 @@ module DatoDast
31
39
  end
32
40
  end
33
41
  end
34
-
35
- ::Middleman::Extensions.register(:dato_dast, DatoDast::Extensions::Middleman)
36
42
  end
37
43
  end
44
+
45
+ ::Middleman::Extensions.register(:dato_dast, DatoDast::Extensions::Middleman)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DatoDast
4
- VERSION = "0.1.1"
4
+ VERSION = "0.2.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dato_dast
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John DeWyze
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-11-20 00:00:00.000000000 Z
11
+ date: 2021-12-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -49,6 +49,7 @@ files:
49
49
  - ".gitignore"
50
50
  - ".projections.json"
51
51
  - ".rspec"
52
+ - ".tool-versions"
52
53
  - CHANGELOG.md
53
54
  - CODE_OF_CONDUCT.md
54
55
  - Gemfile
@@ -99,7 +100,7 @@ metadata:
99
100
  homepage_uri: https://github.com/dewyze/dato_dast
100
101
  source_code_uri: https://github.com/dewyze/dato_dast
101
102
  changelog_uri: https://github.com/dewyze/dato_dast/blob/main/CHANGELOG.md.
102
- post_install_message:
103
+ post_install_message:
103
104
  rdoc_options: []
104
105
  require_paths:
105
106
  - lib
@@ -114,8 +115,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
115
  - !ruby/object:Gem::Version
115
116
  version: '0'
116
117
  requirements: []
117
- rubygems_version: 3.2.15
118
- signing_key:
118
+ rubygems_version: 3.1.6
119
+ signing_key:
119
120
  specification_version: 4
120
121
  summary: Gem for converting DatoCMS Structured Text to Html
121
122
  test_files: []