rggen-markdown 0.16.0 → 0.21.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: 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: []