rggen-markdown 0.16.0 → 0.21.0

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: 9e35fb93a0fc6227415ad2b8647cd127a579ab0fb98553a116e5b04a970744f4
4
- data.tar.gz: 673b9127ce1f4e993a93e06c4cf4928f0976d68fdc3fd06f49e9f934559f4cf1
3
+ metadata.gz: 0e347a1415bad51303960a8097d5797a5e0f2ff5c05b88624d4dd633e16eeedf
4
+ data.tar.gz: fdb87961c636225cb342f2f5fbd1d7ca55e39d0ff3cff28e1aabf75dec4b05fc
5
5
  SHA512:
6
- metadata.gz: cae81e6fe7ed9aeda80268bccffae0799e438744a857dbfcb82b29054abef4ab43674b884018c3aa65f841e4de1d468c074f1ad6a0dbd8693e94bcd876a336fa
7
- data.tar.gz: 137a5c107c1ce1834a1edc333e9b33c8dfdb941b8125ef5229b2fbbf655b9ed501a9d64087d61a3a9cddd792ed8000564d53002beb5de037750f868f6f9733ec
6
+ metadata.gz: 5bc02eae4f5bfe7d6aec45a9329444ddf3c75e60c0ae993346186679e3a326a4c8d902373d8cc2368fbec8d0acaf80dbe6254ad49c0a11398dd5c90fe2e78be8
7
+ data.tar.gz: e42872b5e274015b2311ee35efa7cb73bfe1d26b4491b7dc81a9949310890be5666c7d1d3ac8cbe021bff0dad443f8d79a48901250549b01462e570c3f8a525a
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2019-2020 Taichi Ishitani
3
+ Copyright (c) 2019-2021 Taichi Ishitani
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -34,7 +34,7 @@ Feedbacks, bug reports, questions and etc. are wellcome! You can post them by us
34
34
 
35
35
  ## Copyright & License
36
36
 
37
- Copyright © 2019-2020 Taichi Ishitani. RgGen::Markdown is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
37
+ Copyright © 2019-2021 Taichi Ishitani. RgGen::Markdown is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
38
38
 
39
39
  ## Code of Conduct
40
40
 
@@ -10,29 +10,18 @@ require_relative 'markdown/factories'
10
10
 
11
11
  module RgGen
12
12
  module Markdown
13
- FEATURES = [
14
- 'markdown/register/markdown',
15
- 'markdown/register_block/markdown'
16
- ].freeze
13
+ extend Core::Plugin
17
14
 
18
- def self.register_component(builder)
19
- builder.output_component_registry(:markdown) do
20
- register_component [
21
- :register_map, :register_block, :register, :bit_field
22
- ] do |category|
23
- component Component, ComponentFactory
24
- feature Feature, FeatureFactory if category != :register_map
25
- end
15
+ setup_plugin :'rggen-markdown' do |plugin|
16
+ plugin.register_component :markdown do
17
+ component Component, ComponentFactory
18
+ feature Feature, FeatureFactory
26
19
  end
27
- end
28
-
29
- def self.load_features
30
- FEATURES.each { |feature| require_relative feature }
31
- end
32
20
 
33
- def self.default_setup(builder)
34
- register_component(builder)
35
- load_features
21
+ plugin.files [
22
+ 'markdown/register/markdown',
23
+ 'markdown/register_block/markdown'
24
+ ]
36
25
  end
37
26
  end
38
27
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module RgGen
4
4
  module Markdown
5
- class ComponentFactory < Core::OutputBase::ComponentFactory
5
+ class ComponentFactory < Core::OutputBase::DocumentComponentFactory
6
6
  end
7
7
 
8
8
  class FeatureFactory < Core::OutputBase::FeatureFactory
@@ -1,13 +1,13 @@
1
1
 
2
- ### <%= anchor(anchor_id) %><%= register.name %>
2
+ ### <%= anchor(anchor_id) %><%= title %>
3
3
 
4
- <% register.printables.each do |name, values| %>
4
+ <% register_printables.each do |name, value_or_values| %>
5
5
  * <%= name %>
6
- <% Array(values || [nil]).each do |value| %>
7
- * <%= value || 'NA' %>
6
+ <% Array(value_or_values).each do |value| %>
7
+ * <%= trim_space(value) %>
8
8
  <% end %>
9
9
  <% end %>
10
- <% if register.bit_fields? %>
10
+ <% unless register.bit_fields.empty? %>
11
11
 
12
12
  <%= bit_field_table %>
13
- <% end%>
13
+ <% end %>
@@ -3,13 +3,22 @@
3
3
  RgGen.define_simple_feature(:register, :markdown) do
4
4
  markdown do
5
5
  export def anchor_id
6
- [register_block.anchor_id, register.name].join('-')
6
+ [register_block, *register_files, register]
7
+ .map(&:name).join('-')
7
8
  end
8
9
 
9
10
  main_code :markdown, from_template: true
10
11
 
11
12
  private
12
13
 
14
+ def title
15
+ register.printables[:layer_name]
16
+ end
17
+
18
+ def register_printables
19
+ register.printables.except(:name, :layer_name).compact
20
+ end
21
+
13
22
  def bit_field_table
14
23
  column_names = bit_field_printables.first.keys
15
24
  rows =
@@ -1,8 +1,8 @@
1
- ## <%= register_block.name %>
1
+ ## <%= title %>
2
2
 
3
- <% register_block.printables.each do |name, printable| %>
3
+ <% register_block_printables.each do |name, printable| %>
4
4
  * <%= name %>
5
- * <%= printable || 'NA' %>
5
+ * <%= trim_space(printable) %>
6
6
  <% end %>
7
7
 
8
8
  <%= register_table %>
@@ -8,7 +8,7 @@ RgGen.define_simple_feature(:register_block, :markdown) do
8
8
 
9
9
  write_file '<%= register_block.name %>.md' do |file|
10
10
  file.body do |code|
11
- register_block.generate_code(:markdown, :top_down, code)
11
+ register_block.generate_code(code, :markdown, :top_down)
12
12
  end
13
13
  end
14
14
 
@@ -16,21 +16,26 @@ RgGen.define_simple_feature(:register_block, :markdown) do
16
16
 
17
17
  private
18
18
 
19
+ def title
20
+ register_block.name
21
+ end
22
+
23
+ def register_block_printables
24
+ register_block.printables.except(:name).compact
25
+ end
26
+
19
27
  def register_table
20
- table([:name, :offset_address], table_rows)
28
+ table([:name], table_rows)
21
29
  end
22
30
 
23
31
  def table_rows
24
- register_block.registers
25
- .zip(register_block.registers.map(&:printables))
26
- .map { |register, printables| table_row(register, printables) }
32
+ register_block.registers.map(&method(:table_row))
27
33
  end
28
34
 
29
- def table_row(register, printables)
30
- [
31
- anchor_link(printables[:name], register.anchor_id),
32
- printables[:offset_address]
33
- ]
35
+ def table_row(register)
36
+ name = register.printables[:layer_name]
37
+ id = register.anchor_id
38
+ [anchor_link(name, id)]
34
39
  end
35
40
  end
36
41
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'rggen/markdown'
4
4
 
5
- RgGen.setup :'rggen-markdown', RgGen::Markdown do |builder|
5
+ RgGen.register_plugin RgGen::Markdown do |builder|
6
6
  builder.enable :register_block, [:markdown]
7
7
  builder.enable :register, [:markdown]
8
8
  end
@@ -19,6 +19,10 @@ module RgGen
19
19
  "[#{text}](##{id})"
20
20
  end
21
21
 
22
+ def trim_space(string)
23
+ string.to_s.split(newline).map(&:strip).reject(&:empty?).join('<br>')
24
+ end
25
+
22
26
  def table(labels, rows)
23
27
  TableFormatter.new.format(labels, rows)
24
28
  end
@@ -18,11 +18,9 @@ module RgGen
18
18
  private
19
19
 
20
20
  def build_md_lines(labels, table)
21
- lines = []
22
- build_md_line(lines, labels)
23
- build_md_line(lines, alignment_marks(labels.size))
24
- table.each { |row| build_md_line(lines, row) }
25
- lines
21
+ [
22
+ labels, alignment_marks(labels.size), *table
23
+ ].each_with_object([]) { |row, lines| build_md_line(lines, row) }
26
24
  end
27
25
 
28
26
  def build_md_line(lines, row)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RgGen
4
4
  module Markdown
5
- VERSION = '0.16.0'
5
+ VERSION = '0.21.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rggen-markdown
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.0
4
+ version: 0.21.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taichi Ishitani
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-17 00:00:00.000000000 Z
11
+ date: 2021-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -64,15 +64,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - ">="
66
66
  - !ruby/object:Gem::Version
67
- version: '2.4'
67
+ version: '2.5'
68
68
  required_rubygems_version: !ruby/object:Gem::Requirement
69
69
  requirements:
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
72
  version: '0'
73
73
  requirements: []
74
- rubygems_version: 3.1.2
74
+ rubygems_version: 3.2.3
75
75
  signing_key:
76
76
  specification_version: 4
77
- summary: rggen-markdown-0.16.0
77
+ summary: rggen-markdown-0.21.0
78
78
  test_files: []