rggen-default-register-map 0.23.0 → 0.24.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: 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: []