rggen-markdown 0.12.0 → 0.13.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: 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: []