rggen-default-register-map 0.23.0 → 0.24.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: 8f0341e6e7c6a8f5674f98014dad37f450e89d4aa97a219737cc72371d3acd7c
4
- data.tar.gz: 0f9f94e1a9a0969a2829f2d6fa8d18ca147086160a4b1099bb38a712cbe1e01b
3
+ metadata.gz: 31786d4f412d28362fe13510c065488bdcc4f630e70323d8bfd00f18252d4889
4
+ data.tar.gz: 2acbf4af3aecaf5b95e2f209b995a9c7a2638e19e3ded7b77c097f9161472e8d
5
5
  SHA512:
6
- metadata.gz: c4eee686706aceaec73564960352d729bd9e65dfe20f442afc2ff1464a3c631f2c43180ed25407aa40faf1ef724bc20491aa409739fb7f744680d37b635d3ee5
7
- data.tar.gz: 302e93e8728c37c2c8dc202749900d1cf8dd5205ab677d050dcbbe3040115422bc0fd34682b0b43ea556d4a8756a62aa2baf140eab4df8fcc3c1c6b176b92e0d
6
+ metadata.gz: 1b04ed8512a8cdc99e43864778926d59d1497d00a99c031eaea61887104d993ebdb84e8034ee6ae09fccd5e8b22b552761c0dbad1332c95aa96a9d47c9922a92
7
+ data.tar.gz: a1ace1cd824758b1f6a349d4586d04b05bee0f48a2c17a6f4d49375a7895b80573d654871e0c254578fb79681a98d244323ebc3f6bcd548b4c0119a6f1ea1703
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
@@ -38,7 +38,7 @@ Feedbacks, bug reports, questions and etc. are wellcome! You can post them by us
38
38
 
39
39
  ## Copyright & License
40
40
 
41
- Copyright © 2019-2020 Taichi Ishitani. RgGen::DefaultRegisterMap is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
41
+ Copyright © 2019-2021 Taichi Ishitani. RgGen::DefaultRegisterMap is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
42
42
 
43
43
  ## Code of Conduct
44
44
 
@@ -4,53 +4,47 @@ require_relative 'default_register_map/version'
4
4
 
5
5
  module RgGen
6
6
  module DefaultRegisterMap
7
- PLUGIN_NAME = :'rggen-default-register-map'
7
+ extend Core::Plugin
8
8
 
9
- FEATURES = [
10
- 'default_register_map/bit_field/bit_assignment',
11
- 'default_register_map/bit_field/initial_value',
12
- 'default_register_map/bit_field/name',
13
- 'default_register_map/bit_field/reference',
14
- 'default_register_map/bit_field/type',
15
- 'default_register_map/bit_field/type/rc',
16
- 'default_register_map/bit_field/type/reserved',
17
- 'default_register_map/bit_field/type/ro',
18
- 'default_register_map/bit_field/type/rof',
19
- 'default_register_map/bit_field/type/rs',
20
- 'default_register_map/bit_field/type/rw_w1_wrc_wrs',
21
- 'default_register_map/bit_field/type/rwc_rws',
22
- 'default_register_map/bit_field/type/rwe_rwl',
23
- 'default_register_map/bit_field/type/w0c_w1c_wc',
24
- 'default_register_map/bit_field/type/w0crs_w1crs_wcrs',
25
- 'default_register_map/bit_field/type/w0s_w1s_ws',
26
- 'default_register_map/bit_field/type/w0src_w1src_wsrc',
27
- 'default_register_map/bit_field/type/w0t_w1t',
28
- 'default_register_map/bit_field/type/w0trg_w1trg',
29
- 'default_register_map/bit_field/type/wo_wo1',
30
- 'default_register_map/bit_field/type/woc',
31
- 'default_register_map/bit_field/type/wos',
32
- 'default_register_map/common/comment',
33
- 'default_register_map/global/address_width',
34
- 'default_register_map/global/bus_width',
35
- 'default_register_map/register/name',
36
- 'default_register_map/register/offset_address',
37
- 'default_register_map/register/size',
38
- 'default_register_map/register/type',
39
- 'default_register_map/register/type/external',
40
- 'default_register_map/register/type/indirect',
41
- 'default_register_map/register_block/byte_size',
42
- 'default_register_map/register_block/name',
43
- 'default_register_map/register_file/name',
44
- 'default_register_map/register_file/offset_address',
45
- 'default_register_map/register_file/size'
46
- ].freeze
47
-
48
- def self.load_features
49
- FEATURES.each { |file| require_relative file }
50
- end
51
-
52
- def self.default_setup(_builder)
53
- load_features
9
+ setup_plugin :'rggen-default-register-map' do |plugin|
10
+ plugin.files [
11
+ 'default_register_map/bit_field/bit_assignment',
12
+ 'default_register_map/bit_field/initial_value',
13
+ 'default_register_map/bit_field/name',
14
+ 'default_register_map/bit_field/reference',
15
+ 'default_register_map/bit_field/type',
16
+ 'default_register_map/bit_field/type/rc',
17
+ 'default_register_map/bit_field/type/reserved',
18
+ 'default_register_map/bit_field/type/ro',
19
+ 'default_register_map/bit_field/type/rof',
20
+ 'default_register_map/bit_field/type/rs',
21
+ 'default_register_map/bit_field/type/rw_w1_wrc_wrs',
22
+ 'default_register_map/bit_field/type/rwc_rws',
23
+ 'default_register_map/bit_field/type/rwe_rwl',
24
+ 'default_register_map/bit_field/type/w0c_w1c_wc',
25
+ 'default_register_map/bit_field/type/w0crs_w1crs_wcrs',
26
+ 'default_register_map/bit_field/type/w0s_w1s_ws',
27
+ 'default_register_map/bit_field/type/w0src_w1src_wsrc',
28
+ 'default_register_map/bit_field/type/w0t_w1t',
29
+ 'default_register_map/bit_field/type/w0trg_w1trg',
30
+ 'default_register_map/bit_field/type/wo_wo1',
31
+ 'default_register_map/bit_field/type/woc',
32
+ 'default_register_map/bit_field/type/wos',
33
+ 'default_register_map/common/comment',
34
+ 'default_register_map/global/address_width',
35
+ 'default_register_map/global/bus_width',
36
+ 'default_register_map/register/name',
37
+ 'default_register_map/register/offset_address',
38
+ 'default_register_map/register/size',
39
+ 'default_register_map/register/type',
40
+ 'default_register_map/register/type/external',
41
+ 'default_register_map/register/type/indirect',
42
+ 'default_register_map/register_block/byte_size',
43
+ 'default_register_map/register_block/name',
44
+ 'default_register_map/register_file/name',
45
+ 'default_register_map/register_file/offset_address',
46
+ 'default_register_map/register_file/size'
47
+ ]
54
48
  end
55
49
  end
56
50
  end
@@ -15,7 +15,7 @@ RgGen.define_simple_feature(:bit_field, :bit_assignment) do
15
15
 
16
16
  build do |value|
17
17
  input_value = preprocess(value)
18
- KEYS.each { |key| parse_value(input_value, key) }
18
+ helper.variable_keys.each { |key| parse_value(input_value, key) }
19
19
  end
20
20
 
21
21
  verify(:feature) do
@@ -61,11 +61,17 @@ RgGen.define_simple_feature(:bit_field, :bit_assignment) do
61
61
 
62
62
  private
63
63
 
64
- VARIABLE_NAMES = {
65
- lsb: :@lsb_base, width: :@width, sequence_size: :@sequence_size, step: :@step
66
- }.freeze
64
+ define_helpers do
65
+ def variable_names
66
+ @variable_names ||= {
67
+ lsb: :@lsb_base, width: :@width, sequence_size: :@sequence_size, step: :@step
68
+ }.freeze
69
+ end
67
70
 
68
- KEYS = VARIABLE_NAMES.keys.freeze
71
+ def variable_keys
72
+ @variable_keys ||= variable_names.keys
73
+ end
74
+ end
69
75
 
70
76
  def preprocess(value)
71
77
  if value.is_a?(Hash)
@@ -81,13 +87,13 @@ RgGen.define_simple_feature(:bit_field, :bit_assignment) do
81
87
  match_data
82
88
  .to_s
83
89
  .split(':')
84
- .map.with_index { |value, i| [KEYS[i], value] }
90
+ .map.with_index { |value, i| [helper.variable_keys[i], value] }
85
91
  .to_h
86
92
  end
87
93
 
88
94
  def parse_value(input_value, key)
89
95
  input_value.key?(key) &&
90
- instance_variable_set(VARIABLE_NAMES[key], Integer(input_value[key]))
96
+ instance_variable_set(helper.variable_names[key], Integer(input_value[key]))
91
97
  rescue ArgumentError, TypeError
92
98
  error "cannot convert #{input_value[key].inspect} into " \
93
99
  "bit assignment(#{key.to_s.tr('_', ' ')})"
@@ -121,9 +121,10 @@ RgGen.define_simple_feature(:bit_field, :initial_value) do
121
121
  end
122
122
 
123
123
  def parse_initial_value(input_value)
124
- if @input_format == :parameterized
124
+ case @input_format
125
+ when :parameterized
125
126
  [parse_parameterized_initial_value(input_value), nil]
126
- elsif @input_format == :array
127
+ when :array
127
128
  [nil, parse_arrayed_initial_value(input_value)]
128
129
  else
129
130
  [parse_value(input_value), nil]
@@ -180,13 +180,13 @@ RgGen.define_list_item_feature(:register, :type, :indirect) do
180
180
 
181
181
  def create_index_entry(value)
182
182
  input_values = split_value(value)
183
- if input_values.size == 2
183
+ case input_values.size
184
+ when 2
184
185
  index_entry.new(input_values[0], convert_index_value(input_values[1]))
185
- elsif input_values.size == 1
186
+ when 1
186
187
  index_entry.new(input_values[0])
187
188
  else
188
- error 'too many arguments for indirect index ' \
189
- "are given: #{value.inspect}"
189
+ error "too many arguments for indirect index are given: #{value.inspect}"
190
190
  end
191
191
  end
192
192
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'rggen/default_register_map'
4
4
 
5
- RgGen.setup RgGen::DefaultRegisterMap do |builder|
5
+ RgGen.register_plugin RgGen::DefaultRegisterMap do |builder|
6
6
  builder.enable :global, [:bus_width, :address_width]
7
7
  builder.enable :register_block, [
8
8
  :name, :byte_size, :comment
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RgGen
4
4
  module DefaultRegisterMap
5
- VERSION = '0.23.0'
5
+ VERSION = '0.24.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rggen-default-register-map
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.23.0
4
+ version: 0.24.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-08-25 00:00:00.000000000 Z
11
+ date: 2021-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -96,8 +96,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0'
98
98
  requirements: []
99
- rubygems_version: 3.1.2
99
+ rubygems_version: 3.2.3
100
100
  signing_key:
101
101
  specification_version: 4
102
- summary: rggen-default-register-map-0.23.0
102
+ summary: rggen-default-register-map-0.24.0
103
103
  test_files: []