rggen-markdown 0.12.0 → 0.13.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: e37ce6b6ceb51b9f258addcb2b0e2da82fed605d7f9a6ee6eb10076d787e4a1c
4
- data.tar.gz: a661202f51802d780d79b509e080000d0bbd54f4eacff83c4166c00143aa1674
3
+ metadata.gz: 68db11d5b3f3170e538d563033633f8fcb1a0ef8ee0aa77328fe582df583388a
4
+ data.tar.gz: d6efb2f95d8cfaf72b93a8c19c91e382e9b74b12ef8c63fc9efe78f7e7aace45
5
5
  SHA512:
6
- metadata.gz: bf6363005392ef3383d5eb2f921770a0c496aa313a560c5984e3a0639bcf069522d60e54a9e22880243cf807d301bac2126f6f6c005c657501ab463d686abcbe
7
- data.tar.gz: 3e07be2a53d52fda1d23fc4c7a3419d42666b7a67e0437de6e2144615d1f64295177e6f338c31cc6fac8fb887ef5d1a74ce0de238faa19eccc64704dfa7453ad
6
+ metadata.gz: a1b34df82c7438e6f2219696e4dfba96258afeda27365fa9414cadf0e6b59ffbef0473e4362a9ed8282f38df2956c6b29937be76e7c13de2b4313ade2b9d48e9
7
+ data.tar.gz: e0b3120bf1923ccd92112189a0f34ad36542e139ca8781920e3ea0b3c4400f2c90fb75ea4b9f0143d9da4771e79cca5578ce7b15ebe1587ba00fd72eb1e12f78
data/README.md CHANGED
@@ -7,10 +7,7 @@
7
7
 
8
8
  # RgGen::Markdown
9
9
 
10
- RgGen::Markdown provides features listed below:
11
-
12
- * Structure of Markdown writer for RgGen
13
- * Convinience APIs for Markdown code
10
+ RgGen::Markdown provides Markdown generator for RgGen.
14
11
 
15
12
  ## Installation
16
13
 
@@ -12,7 +12,12 @@ require_relative 'markdown/factories'
12
12
 
13
13
  module RgGen
14
14
  module Markdown
15
- def self.setup(builder)
15
+ FEATURES = [
16
+ 'markdown/register/markdown',
17
+ 'markdown/register_block/markdown'
18
+ ].freeze
19
+
20
+ def self.register_component(builder)
16
21
  builder.output_component_registry(:markdown) do
17
22
  register_component [
18
23
  :register_map, :register_block, :register, :bit_field
@@ -22,7 +27,14 @@ module RgGen
22
27
  end
23
28
  end
24
29
  end
25
- end
26
30
 
27
- setup :markdown, Markdown
31
+ def self.load_features
32
+ FEATURES.each { |feature| require_relative feature }
33
+ end
34
+
35
+ def self.default_setup(builder)
36
+ register_component(builder)
37
+ load_features
38
+ end
39
+ end
28
40
  end
@@ -0,0 +1,11 @@
1
+
2
+ ### <%= anchor(anchor_id) %><%= register.name %>
3
+
4
+ <% register.printables.each do |name, printable| %>
5
+ * <%= name %>
6
+ * <%= printable || 'NA' %>
7
+ <% end %>
8
+ <% if register.bit_fields? %>
9
+
10
+ <%= bit_field_table %>
11
+ <% end%>
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ RgGen.define_simple_feature(:register, :markdown) do
4
+ markdown do
5
+ export def anchor_id
6
+ [register_block.anchor_id, register.name].join('-')
7
+ end
8
+
9
+ main_code :markdown, from_template: true
10
+
11
+ private
12
+
13
+ def bit_field_table
14
+ column_names = bit_field_printables.first.keys
15
+ rows =
16
+ bit_field_printables
17
+ .map(&:values)
18
+ .map { |row| row.map { |cell| Array(cell).join("\n") } }
19
+ table(column_names, rows)
20
+ end
21
+
22
+ def bit_field_printables
23
+ @bit_field_printables ||= register.bit_fields.map(&:printables)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,8 @@
1
+ ## <%= register_block.name %>
2
+
3
+ <% register_block.printables.each do |name, printable| %>
4
+ * <%= name %>
5
+ * <%= printable || 'NA' %>
6
+ <% end %>
7
+
8
+ <%= register_table %>
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ RgGen.define_simple_feature(:register_block, :markdown) do
4
+ markdown do
5
+ export def anchor_id
6
+ register_block.name
7
+ end
8
+
9
+ write_file '<%= register_block.name %>.md' do |file|
10
+ file.body do |code|
11
+ register_block.generate_code(:markdown, :top_down, code)
12
+ end
13
+ end
14
+
15
+ main_code :markdown, from_template: true
16
+
17
+ private
18
+
19
+ def register_table
20
+ table([:name, :offset_address], table_rows)
21
+ end
22
+
23
+ def table_rows
24
+ register_block.registers
25
+ .zip(register_block.registers.map(&:printables))
26
+ .map { |register, printables| table_row(register, printables) }
27
+ end
28
+
29
+ def table_row(register, printables)
30
+ [
31
+ anchor_link(printables[:name], register.anchor_id),
32
+ printables[:offset_address]
33
+ ]
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rggen/markdown'
4
+
5
+ RgGen.setup :markdown, RgGen::Markdown do |builder|
6
+ builder.enable :register_block, [:markdown]
7
+ builder.enable :register, [:markdown]
8
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RgGen
4
4
  module Markdown
5
- VERSION = '0.12.0'
5
+ VERSION = '0.13.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.12.0
4
+ version: 0.13.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: 2019-08-19 00:00:00.000000000 Z
11
+ date: 2019-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruport
@@ -67,6 +67,11 @@ files:
67
67
  - lib/rggen/markdown/component.rb
68
68
  - lib/rggen/markdown/factories.rb
69
69
  - lib/rggen/markdown/feature.rb
70
+ - lib/rggen/markdown/register/markdown.erb
71
+ - lib/rggen/markdown/register/markdown.rb
72
+ - lib/rggen/markdown/register_block/markdown.erb
73
+ - lib/rggen/markdown/register_block/markdown.rb
74
+ - lib/rggen/markdown/setup.rb
70
75
  - lib/rggen/markdown/utility.rb
71
76
  - lib/rggen/markdown/utility/source_file.rb
72
77
  - lib/rggen/markdown/version.rb
@@ -96,5 +101,5 @@ requirements: []
96
101
  rubygems_version: 3.0.3
97
102
  signing_key:
98
103
  specification_version: 4
99
- summary: rggen-markdown-0.12.0
104
+ summary: rggen-markdown-0.13.0
100
105
  test_files: []