origen_doc_helpers 0.7.2 → 0.8.4

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: 1d338032f14e42458a138b9b188701a0b5914ee3e9ab5ff8990d683911ffffcf
4
- data.tar.gz: f0613005c722f92600e8633b8ede68a638dcf68b5361cbd2c8f12c98fc616564
3
+ metadata.gz: 8be9c5912f22281328dbe445399a4c394e028c3a10a68b107f8feccd73b46adb
4
+ data.tar.gz: f75142d4ea1e47002fb66463ff2f66ca34a0d408a0759259a4b4e3db800dfea1
5
5
  SHA512:
6
- metadata.gz: e413e7c44118ac002618c54dbd7e926c49aec0602e2af86cf0f6eaa4f8182cb934c400b8a245b6576e9452da56454b0a17a4ac83c350e209c29b36ac4007ba47
7
- data.tar.gz: b69b7a92e04b5b2ac0030998ffa9aca87e784050da0d9f798fb7b97114c28f21102d081840cd4b0d779bce7f402c52622d45455087b2758c486d8d5fdf21c7ba
6
+ metadata.gz: ef308ae1289cc4d23405fba1146b9b349f17ed13cdb0d26a9330eaa45d68904e444ea60623aa8015711a2bf84c374831c101ee639bc947c1f0640c24cef40b01
7
+ data.tar.gz: 7be71f335ea1d0e6a3820abbab497c17ff346051ce0d79758806c6c2b2ae09e355f58ba8221ba42d5ba0e5075900766341c5aa541339a97736d22623031e1ba3
@@ -8,7 +8,7 @@ class OrigenDocHelpersApplication < Origen::Application
8
8
  # To enable deployment of your documentation to a web server (via the 'origen web'
9
9
  # command) fill in these attributes.
10
10
  config.web_directory = "git@github.com:Origen-SDK/Origen-SDK.github.io.git/doc_helpers"
11
- config.web_domain = "http://origen-sdk.org/doc_helpers"
11
+ config.web_domain = "https://origen-sdk.org/doc_helpers"
12
12
  config.disqus_shortname = "origen-sdk"
13
13
 
14
14
  config.semantically_version = true
data/config/version.rb CHANGED
@@ -1,8 +1,7 @@
1
1
  module OrigenDocHelpers
2
2
  MAJOR = 0
3
- MINOR = 7
4
- BUGFIX = 2
3
+ MINOR = 8
4
+ BUGFIX = 4
5
5
  DEV = nil
6
-
7
6
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
8
7
  end
@@ -44,7 +44,11 @@ module OrigenDocHelpers
44
44
  end
45
45
 
46
46
  def index_page_template
47
- @index_page_template ||= "#{Origen.root!}/templates/flow_index.md.erb"
47
+ if File.exist?("#{Origen.root}/app/")
48
+ @index_page_template ||= "#{Origen.root!}/app/templates/flow_index.md.erb"
49
+ else
50
+ @index_page_template ||= "#{Origen.root!}/templates/flow_index.md.erb"
51
+ end
48
52
  end
49
53
  end
50
54
 
@@ -100,11 +104,19 @@ module OrigenDocHelpers
100
104
  end
101
105
 
102
106
  def flow_page_template
103
- @flow_page_template ||= "#{Origen.root!}/templates/flow_page.md.erb"
107
+ if File.exist?("#{Origen.root}/app/")
108
+ @flow_page_template ||= "#{Origen.root!}/app/templates/flow_page.md.erb"
109
+ else
110
+ @flow_page_template ||= "#{Origen.root!}/templates/flow_page.md.erb"
111
+ end
104
112
  end
105
113
 
106
114
  def flow_template
107
- @flow_template ||= "#{Origen.root!}/templates/shared/test/_flow.md.erb"
115
+ if File.exist?("#{Origen.root}/app/")
116
+ @flow_template ||= "#{Origen.root!}/app/templates/shared/test/_flow.md.erb"
117
+ else
118
+ @flow_template ||= "#{Origen.root!}/templates/shared/test/_flow.md.erb"
119
+ end
108
120
  end
109
121
  end
110
122
  end
@@ -1,7 +1,7 @@
1
1
  module OrigenDocHelpers
2
2
  # Provides an API to programatically construct an index hash as used
3
3
  # by the Searchable Documents helper -
4
- # http://origen-sdk.org/doc_helpers/helpers/searchable/intro/#The_Document_Index
4
+ # https://origen-sdk.org/doc_helpers/helpers/searchable/intro/#The_Document_Index
5
5
  class GuideIndex
6
6
  def initialize
7
7
  @index = {}
@@ -257,7 +257,11 @@ END
257
257
  @_doc_root_dirs ||= {}
258
258
  return @_doc_root_dirs[f] if @_doc_root_dirs[f]
259
259
  unless File.exist?(f)
260
- f = Pathname.new("#{Origen.root}/templates/web/#{f}")
260
+ if File.exist?("#{Origen.root}/app/")
261
+ f = Pathname.new("#{Origen.root}/app/templates/web/#{f}")
262
+ else
263
+ f = Pathname.new("#{Origen.root}/templates/web/#{f}")
264
+ end
261
265
  unless f.exist?
262
266
  fail "#{options[:root]} does not exist!"
263
267
  end
@@ -272,7 +276,11 @@ END
272
276
  if options[:tab]
273
277
  options[:tab]
274
278
  else
275
- rel = options[:top_level_file].relative_path_from(_doc_root_dir(options)).sub_ext('').sub_ext('').to_s
279
+ rel = begin
280
+ options[:top_level_file].relative_path_from(_doc_root_dir(options)).sub_ext('').sub_ext('').to_s
281
+ rescue
282
+ '..'
283
+ end
276
284
  # If the file lives outside of the current app (e.g. it comes from a plugin), then the above approach
277
285
  # doesn't work, so let's just take the last dirname and the filename
278
286
  if rel =~ /\.\./
@@ -285,7 +293,11 @@ END
285
293
  end
286
294
 
287
295
  def _root_path(options)
288
- root = Pathname.new("#{Origen.root}/templates/web")
296
+ if File.exist?("#{Origen.root}/app/templates/web")
297
+ root = Pathname.new("#{Origen.root}/app/templates/web")
298
+ else
299
+ root = Pathname.new("#{Origen.root}/templates/web")
300
+ end
289
301
  _doc_root_dir(options).relative_path_from(root)
290
302
  end
291
303
  end
@@ -1,7 +1,11 @@
1
- require 'atp'
1
+ begin
2
+ require 'origen_testers/atp'
3
+ rescue LoadError
4
+ require 'atp'
5
+ end
2
6
  require 'kramdown'
3
7
  module OrigenDocHelpers
4
- class HtmlFlowFormatter < ATP::Formatter
8
+ class HtmlFlowFormatter < (defined?(OrigenTesters::ATP) ? OrigenTesters::ATP::Formatter : ATP::Formatter)
5
9
  include Origen::Generator::Compiler::DocHelpers::TestFlowHelpers
6
10
 
7
11
  attr_reader :html
@@ -1,6 +1,10 @@
1
- require 'atp'
1
+ begin
2
+ require 'origen_testers/atp'
3
+ rescue LoadError
4
+ require 'atp'
5
+ end
2
6
  module OrigenDocHelpers
3
- class ListFlowFormatter < ATP::Formatter
7
+ class ListFlowFormatter < (defined?(OrigenTesters::ATP) ? OrigenTesters::ATP::Formatter : ATP::Formatter)
4
8
  attr_reader :html
5
9
 
6
10
  def format(node, options = {})
@@ -43,7 +43,11 @@ module OrigenDocHelpers
43
43
  end
44
44
 
45
45
  def index_page_template
46
- @index_page_template ||= "#{Origen.root!}/templates/model_index.md.erb"
46
+ if File.exist?("#{Origen.root}/app/")
47
+ @index_page_template ||= "#{Origen.root!}/app/templates/model_index.md.erb"
48
+ else
49
+ @index_page_template ||= "#{Origen.root!}/templates/model_index.md.erb"
50
+ end
47
51
  end
48
52
  end
49
53
 
@@ -156,7 +160,11 @@ module OrigenDocHelpers
156
160
  end
157
161
 
158
162
  def model_page_template
159
- @model_page_template ||= "#{Origen.root!}/templates/model_page.md.erb"
163
+ if File.exist?("#{Origen.root}/app/")
164
+ @model_page_template ||= "#{Origen.root!}/app/templates/model_page.md.erb"
165
+ else
166
+ @model_page_template ||= "#{Origen.root!}/templates/model_page.md.erb"
167
+ end
160
168
  end
161
169
  end
162
170
  end
@@ -25,7 +25,11 @@ module OrigenDocHelpers
25
25
  @index = options[:index]
26
26
  @root = Pathname.new(options[:root])
27
27
  if @root.absolute?
28
- @root = @root.relative_path_from(Pathname.new("#{Origen.root}/templates/web"))
28
+ if File.exist?("#{Origen.root}/app/")
29
+ @root = @root.relative_path_from(Pathname.new("#{Origen.root}/app/templates/web"))
30
+ else
31
+ @root = @root.relative_path_from(Pathname.new("#{Origen.root}/templates/web"))
32
+ end
29
33
  end
30
34
  require 'nokogiri'
31
35
  end
@@ -116,7 +120,11 @@ module OrigenDocHelpers
116
120
  end
117
121
 
118
122
  def topic_wrapper_string
119
- @topic_wrapper_string ||= File.read("#{Origen.root!}/templates/pdf/topic_wrapper.html")
123
+ if File.exist?("#{Origen.root}/app/")
124
+ @topic_wrapper_string ||= File.read("#{Origen.root!}/app/templates/pdf/topic_wrapper.html")
125
+ else
126
+ @topic_wrapper_string ||= File.read("#{Origen.root!}/templates/pdf/topic_wrapper.html")
127
+ end
120
128
  end
121
129
  end
122
130
  end
@@ -79,18 +79,23 @@ module OrigenDocHelpersDev
79
79
  bit 31..0, :placeholder, reset: 0b0, access: :rw
80
80
  end
81
81
  reg :msb0_debug, 0xf58, 32, bit_order: 'msb0', ip_base_address: 0x1080000, description: '' do
82
- bit 31..0, :placeholder, reset: 0b0, access: :rw
82
+ # placeholder field description
83
+ bit 31..1, :placeholder, reset: 0b0, access: :rw
84
+ # single bit
85
+ bit 0, :single_bit, reset: 1, access: :rw
83
86
  end
84
87
  reg :lsb0_non_byte_aligned, 0xf5c, 9, bit_order: 'lsb0', ip_base_address: 0x1080000, description: '' do
85
88
  bit 8..0, :placeholder, reset: 0b0, access: :rw
86
89
  end
87
90
  reg :msb0_non_byte_aligned, 0xf60, 9, bit_order: :msb0, ip_base_address: 0x1080000, description: '' do
91
+ # placeholder field description
88
92
  bit 8..0, :placeholder, reset: 0b0, access: :rw
89
93
  end
90
94
  reg :lsb0_tiny, 0xf64, 3, bit_order: :lsb0, ip_base_address: 0x1080000, description: '' do
91
95
  bit 2..0, :placeholder, reset: 0b0, access: :rw
92
96
  end
93
97
  reg :msb0_tiny, 0xf68, 3, bit_order: :msb0, ip_base_address: 0x1080000, description: '' do
98
+ # placeholder field description
94
99
  bit 2..0, :placeholder, reset: 0b0, access: :rw
95
100
  end
96
101
  end
@@ -3,7 +3,7 @@
3
3
 
4
4
  <div class="row" style="margin-top: 10px; margin-bottom: 15px;">
5
5
  <div class="col-md-9">
6
- <img src="http://origen-sdk.org/img/origen-device.png" style="float: left; height:50px; width: 50px; margin-top: 14px;">
6
+ <img src="https://origen-sdk.org/img/origen-device.png" style="float: left; height:50px; width: 50px; margin-top: 14px;">
7
7
  <h1 style="float: left; margin-left: 10px;">Models</h1>
8
8
  </div>
9
9
  </div>
@@ -20,7 +20,7 @@
20
20
 
21
21
  <div class="row" style="margin-top: 10px; margin-bottom: 15px;">
22
22
  <div class="col-md-9">
23
- <img src="http://origen-sdk.org/img/origen-device.png" style="float: left; height:50px; width: 50px; margin-top: 14px;">
23
+ <img src="https://origen-sdk.org/img/origen-device.png" style="float: left; height:50px; width: 50px; margin-top: 14px;">
24
24
  <h1 style="float: left; margin-left: 10px;"><%= opts[:heading] %></h1>
25
25
  </div>
26
26
  % if opts[:search_box]
@@ -19,6 +19,7 @@
19
19
  <h4>0x<%= reg.address.to_s(16).upcase %> - <%= reg_path %></h4>
20
20
  % end
21
21
  </a>
22
+
22
23
  % if options[:current_value]
23
24
  % if reg.size <= 8
24
25
  <h4><font style="background-color: #66FF66">Current Value: <%= sprintf("0x%02X",reg.value) %></font></h4>
@@ -41,33 +42,43 @@
41
42
  </div>
42
43
  % end
43
44
 
45
+ % if !order_is_lsb0
46
+ <table class="reg table table-condensed ljust" style="margin-bottom: 0; table-layout: fixed;">
47
+ <thead>
48
+ <tr class="bit-positions">
49
+ <b><tr class = "heading"><%= reg_path%> <span class="msb0_specific" style="color:gray;">(<%= reg_path %>.with_msb0)</span></tr></b>
50
+ </tr>
51
+ </thead>
52
+ </table>
53
+ % end
54
+
44
55
  % num_bytes = (reg.size / 8.0).ceil
45
56
  % num_bytes.times do |byte_index|
46
57
  % # Need to add support for little endian regs here?
47
58
  % byte_number = num_bytes - byte_index
48
- % if order_is_lsb0
49
- % max_bit = (byte_number * 8) - 1
50
- % min_bit = max_bit - 8 + 1
51
- % else
52
- % min_bit = (byte_index * 8)
53
- % max_bit = min_bit + 7
54
- % end
59
+ % max_bit = (byte_number * 8) - 1
60
+ % min_bit = max_bit - 8 + 1
55
61
  % partial_byte = max_bit > (reg.size - 1)
56
62
 
57
- <table class="reg table table-condensed <%= order_is_lsb0 ? 'rjust' : 'ljust' %><%= partial_byte ? ' partial' : '' %>" style="margin-bottom: 0; table-layout: fixed;">
63
+ <table class="reg table table-condensed <%= 'rjust' %><%= partial_byte ? ' partial' : '' %>" style="margin-bottom: 0; table-layout: fixed;">
58
64
  <thead>
59
65
  <tr class="bit-positions">
66
+ % if order_is_lsb0
60
67
  <th class="spacer"></th>
68
+ % else
69
+ <td class="heading">LSB0<span class="msb0_specific" style="color:gray;"> (MSB0)</span></td>
70
+ % end
71
+
61
72
  % 8.times do |i|
62
- % if order_is_lsb0
63
- % bit_num = (byte_number * 8) - i - 1
64
- % else
65
- % bit_num = (byte_index * 8) + i
66
- % end
73
+ % bit_num = (byte_number * 8) - i - 1
67
74
  % if bit_num > reg.size - 1
68
75
  <th class="spacer"></th>
69
76
  % else
70
- <th class="bit-position<%= !order_is_lsb0 && bit_num == reg.size - 1 ? ' last' : '' %>"><%= bit_num %></th>
77
+ % if order_is_lsb0
78
+ <th class="bit-position"><%= bit_num %></th>
79
+ % else
80
+ <th class="bit-position"><%= bit_num %><span class="msb0_specific" style="color:gray;"> (<%= reg.size - bit_num -1%>)</span></th>
81
+ % end
71
82
  % end
72
83
  % end
73
84
  </tr>
@@ -78,8 +89,13 @@
78
89
  %# Read Row
79
90
  %#############################################
80
91
  <tr class="read">
92
+ % if order_is_lsb0
81
93
  <td class="heading">R</td>
82
- % alignment_done = !order_is_lsb0
94
+ % else
95
+ <td class="heading"><span class="msb0_specific" style="color:gray;">[LSB0] </span>R</td>
96
+ % end
97
+
98
+ % alignment_done = false
83
99
  % reg.named_bits :include_spacers => true do |name, bit|
84
100
  % if _bit_in_range?(bit, max_bit, min_bit)
85
101
  % if max_bit > (reg.size - 1) && !alignment_done
@@ -145,7 +161,7 @@
145
161
  %#############################################
146
162
  <tr class="write">
147
163
  <td class="heading">W</td>
148
- % alignment_done = !order_is_lsb0
164
+ % alignment_done = false
149
165
  % reg.named_bits :include_spacers => true do |name, bit|
150
166
  % if _bit_in_range?(bit, max_bit, min_bit)
151
167
  % if max_bit > (reg.size - 1) && !alignment_done
@@ -246,7 +262,7 @@
246
262
  %#############################################
247
263
  <tr class="reset">
248
264
  <td class="heading">Reset</td>
249
- % alignment_done = !order_is_lsb0
265
+ % alignment_done = false
250
266
  % reg.named_bits :include_spacers => true do |name, bit|
251
267
  % if _bit_in_range?(bit, max_bit, min_bit)
252
268
  % if max_bit > (reg.size - 1) && !alignment_done
@@ -304,16 +320,16 @@
304
320
  <p>
305
321
  <a class="anchor" name="<%= "#{reg.name}_#{name}_#{bits.position}" %>"></a>
306
322
  % if bits.size == 1
307
- <%= bits.position %>
323
+ <%= bits.position %><%= order_is_lsb0 ? '' : "<span class=\"msb0_specific\" style=\"color:gray;\"> (#{reg.size - bits.position - 1})</span>" %>
308
324
  % else
309
- <%= bits.position + bits.size - 1 %>-<%= bits.position %>
325
+ <%= bits.position + bits.size - 1 %>-<%= bits.position %><%= order_is_lsb0 ? '' : "<span class=\"msb0_specific\" style=\"color:gray;\"> (#{reg.size - bits.position - bits.size}-#{reg.size - bits.position - 1})</span>" %>
310
326
  % end
311
327
  </p>
312
328
  <p>
313
329
  % if bits.size == 1
314
330
  <%= name %>
315
331
  % else
316
- <%= name %>[<%= bits.size - 1 %>:0]
332
+ <%= name %>[<%= bits.size - 1 %>:0]<%= order_is_lsb0 ? '' : "<span class=\"msb0_specific\" style=\"color:gray;\"> ([0:#{bits.size - 1}])</span>" %>
317
333
  % end
318
334
  </p>
319
335
  </td>
@@ -16,7 +16,7 @@ These helpers will generate complete web pages for you.
16
16
 
17
17
  The following are components that you can embed within your own web pages.
18
18
 
19
- | [Searchable Documents](<%= path "/helpers/searchable/intro" %>) | Provides a layout for a guides section of your website, complete with search box (the [Origen Guides](http://origen-sdk.org/guides) uses this)
19
+ | [Searchable Documents](<%= path "/helpers/searchable/intro" %>) | Provides a layout for a guides section of your website, complete with search box (the [Origen Guides](https://origen-sdk.org/guides) uses this)
20
20
  | [Register Descriptions](<%= path "/helpers/register" %>) | Create a tabular register view, similar to that used in device reference manuals
21
21
  | [Yammer Comments](<%= path "/helpers/yammer" %>) | Embed a comments section at the bottom of your page using Yammer
22
22
  | [Disqus Comments](<%= path "/helpers/disqus" %>) | Embed a comments section at the bottom of your page using Disqus
@@ -5,9 +5,9 @@
5
5
  This helper will build a collection of web pages that document a model's attributes,
6
6
  currently this includes its sub-blocks and registers.
7
7
 
8
- [Here is an example](http://origen-sdk.org/link_demo/models/linkdemo_toplevel/).
8
+ [Here is an example](https://origen-sdk.org/link_demo/models/linkdemo_toplevel/).
9
9
 
10
- Multiple models can be supplied and an [index page like this](http://origen-sdk.org/link_demo/models)
10
+ Multiple models can be supplied and an [index page like this](https://origen-sdk.org/link_demo/models)
11
11
  is generated to help locate the documentation for a given model.
12
12
 
13
13
  The collection of pages associated with a particular model is also fully searchable via
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Register Helpers
4
4
 
5
- Use the [Origen register API](http://origen-sdk.org/origen/guides/models/registers)
5
+ Use the [Origen register API](https://origen-sdk.org/origen/guides/models/registers)
6
6
  to define registers in the normal way,
7
7
  all of the examples are here are based on this register definition:
8
8
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: origen_doc_helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.8.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen McGinty
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-08 00:00:00.000000000 Z
11
+ date: 2021-05-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: origen
@@ -31,7 +31,6 @@ executables: []
31
31
  extensions: []
32
32
  extra_rdoc_files: []
33
33
  files:
34
- - bin/fix_my_workspace
35
34
  - config/application.rb
36
35
  - config/boot.rb
37
36
  - config/commands.rb
@@ -57,7 +56,6 @@ files:
57
56
  - templates/model_page.md.erb
58
57
  - templates/pdf/topic_wrapper.html
59
58
  - templates/shared/_register.html.erb
60
- - templates/shared/_register.html.erb~
61
59
  - templates/shared/_searchable.html.erb
62
60
  - templates/shared/_spec.html.erb
63
61
  - templates/shared/test/_flow.md.erb
@@ -78,7 +76,7 @@ files:
78
76
  - templates/web/layouts/_helpers.html.erb
79
77
  - templates/web/partials/_navbar.html.erb
80
78
  - templates/web/release_notes.md.erb
81
- homepage: http://origen-sdk.org/doc_helpers
79
+ homepage: https://origen-sdk.org/doc_helpers
82
80
  licenses:
83
81
  - MIT
84
82
  metadata: {}
@@ -97,8 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
95
  - !ruby/object:Gem::Version
98
96
  version: 1.8.11
99
97
  requirements: []
100
- rubyforge_project:
101
- rubygems_version: 2.7.7
98
+ rubygems_version: 3.1.4
102
99
  signing_key:
103
100
  specification_version: 4
104
101
  summary: Snippets and helpers for creating Origen web documents
data/bin/fix_my_workspace DELETED
@@ -1,100 +0,0 @@
1
- #!/usr/bin/env ruby
2
- $VERBOSE = nil # Don't care about world writable dir warnings and the like
3
-
4
- if $_fix_my_workspace_version_check
5
- $_fix_my_workspace_version = '0.7.0'
6
- else
7
- if File.exist?(File.expand_path('../../lib/origen.rb', __FILE__))
8
- # If this script is being run from within an origen-core workspace, use that Origen-core,
9
- # not the system-installed origen-core version.
10
- $LOAD_PATH.unshift(File.expand_path('../../lib', __FILE__))
11
- require 'origen'
12
- else
13
- # Use system-installed Origen (the gem in system Ruby)
14
- require 'origen'
15
- end
16
-
17
- if !Origen.site_config.gem_manage_bundler
18
- puts 'Sorry but you have opted to manage Bundler yourself via your Origen site config, and this means'
19
- puts 'that I cannot make certain assumptions about how your workspace is configured.'
20
- puts 'You will need to either resolve this problem yourself, or else change the value of'
21
- puts 'gem_mange_bundler to true.'
22
- puts 'See here for more details on how to do that: http://origen-sdk.org/origen/guides/starting/company/'
23
-
24
- else
25
- ENV['BUNDLE_GEMFILE'] = File.join(Origen.root, 'Gemfile')
26
- ENV['BUNDLE_PATH'] = File.expand_path(Origen.site_config.gem_install_dir)
27
- ENV['BUNDLE_BIN'] = File.join(Origen.root, 'lbin')
28
-
29
- # Force copy system gems to local gems
30
- if Origen.site_config.gem_use_from_system
31
- local_gem_dir = "#{ENV['BUNDLE_PATH']}/ruby/#{Pathname.new(Gem.dir).basename}"
32
- gem_dir = Pathname.new(Gem.dir)
33
-
34
- Origen.site_config.gem_use_from_system.each do |gem, version|
35
- begin
36
- # This will raise an error if the system doesn't have this gem installed, that
37
- # will be rescued below
38
- spec = Gem::Specification.find_by_name(gem, version)
39
-
40
- local_dir = File.join(local_gem_dir, Pathname.new(spec.gem_dir).relative_path_from(gem_dir))
41
- FileUtils.mkdir_p local_dir
42
- FileUtils.cp_r("#{spec.gem_dir}/.", local_dir)
43
-
44
- local_file = Pathname.new(File.join(local_gem_dir, Pathname.new(spec.cache_file).relative_path_from(gem_dir)))
45
- FileUtils.mkdir_p local_file.dirname
46
- FileUtils.cp(spec.cache_file, local_file)
47
-
48
- if spec.extension_dir && File.exist?(spec.extension_dir)
49
- local_dir = File.join(local_gem_dir, Pathname.new(spec.extension_dir).relative_path_from(gem_dir))
50
- FileUtils.mkdir_p local_dir
51
- FileUtils.cp_r("#{spec.extension_dir}/.", local_dir)
52
- end
53
-
54
- local_file = Pathname.new(File.join(local_gem_dir, Pathname.new(spec.spec_file).relative_path_from(gem_dir)))
55
- FileUtils.mkdir_p local_file.dirname
56
- FileUtils.cp(spec.spec_file, local_file)
57
-
58
- rescue Gem::LoadError
59
- # This just means that one of the gems that should be copied from the system
60
- # was not actually installed in the system, so nothing we can do about that here
61
- end
62
- end
63
- end
64
-
65
- # Delete lbin
66
- FileUtils.rm_rf(ENV['BUNDLE_BIN']) if File.exist?(ENV['BUNDLE_BIN'])
67
-
68
- # Run bundler with correct switches
69
- cmd = "bundle install --gemfile #{ENV['BUNDLE_GEMFILE']} --binstubs #{ENV['BUNDLE_BIN']} --path #{ENV['BUNDLE_PATH']}"
70
- `chmod o-w #{Origen.root}` # Stops some annoying world writable warnings during install
71
- `chmod o-w #{Origen.root}/bin` if File.exist?("#{Origen.root}/bin")
72
- `chmod o-w #{Origen.root}/.bin` if File.exist?("#{Origen.root}/.bin")
73
-
74
- # Try again, this time updating the bundle
75
- if system(cmd)
76
- fixed = true
77
- elsif system 'bundle update'
78
- fixed = true
79
- end
80
-
81
- if File.exist?(ENV['BUNDLE_BIN'])
82
- `chmod o-w #{ENV['BUNDLE_BIN']}`
83
-
84
- # Make .bat versions of all executables, Bundler should really be doing this when running
85
- # on windows
86
- if Origen.os.windows?
87
- Dir.glob("#{ENV['BUNDLE_BIN']}/*").each do |bin|
88
- unless bin =~ /.bat$/
89
- bat = "#{bin}.bat"
90
- unless File.exist?(bat)
91
- File.open(bat, 'w') { |f| f.write('@"ruby.exe" "%~dpn0" %*') }
92
- end
93
- end
94
- end
95
- end
96
- end
97
-
98
- system 'origen -v' if fixed
99
- end
100
- end
@@ -1,349 +0,0 @@
1
- % reg = options[:reg]
2
- % include_data = false
3
-
4
- <div class="register">
5
- <a class="anchor" name="<%= "#{reg.name}" %>"></a>
6
-
7
- <a href='#<%= reg.name %>'>
8
- % if options[:origen_path] && !options[:origen_path].empty?
9
- % reg_path = options[:origen_path] + "." + reg.name.to_s
10
- % reg_path = "#{reg.name} - #{reg_path}"
11
- % else
12
- % reg_path = reg.name
13
- % end
14
- % if reg.full_name
15
- <h4>0x<%= reg.address.to_s(16).upcase %> - <%= reg.full_name %> (<%= reg_path %>)</h4>
16
- % else
17
- <h4>0x<%= reg.address.to_s(16).upcase %> - <%= reg_path %></h4>
18
- % end
19
- </a>
20
- % if options[:current_value]
21
- % if reg.size <= 8
22
- <h4><font style="background-color: #66FF66">Current Value: <%= sprintf("0x%02X",reg.value) %></font></h4>
23
- % elsif reg.size <= 16
24
- <h4><font style="background-color: #66FF66">Current Value: <%= sprintf("0x%04X",reg.value) %></font></h4>
25
- % elsif reg.size <= 24
26
- <h4><font style="background-color: #66FF66">Current Value: <%= sprintf("0x%06X",reg.value) %></font></h4>
27
- % elsif reg.size <= 32
28
- <h4><font style="background-color: #66FF66">Current Value: <%= sprintf("0x%08X",reg.value) %></font></h4>
29
- % end
30
- % end
31
-
32
- % if options[:descriptions]
33
- <div markdown="1" style="margin: 0 0 20px 0">
34
-
35
- % reg.description(:include_name => false).each do |line|
36
- <%= line.gsub("\\'", "'") %>
37
- % end
38
-
39
- </div>
40
- % end
41
-
42
- % num_bytes = (reg.size / 8.0).ceil
43
- % num_bytes.times do |byte_index|
44
- % # Need to add support for little endian regs here?
45
- % byte_number = num_bytes - byte_index
46
- % if reg.bit_order == :lsb0
47
- % max_bit = (byte_number * 8) - 1
48
- % min_bit = max_bit - 8 + 1
49
- % else
50
- % min_bit = (byte_index * 8)
51
- % max_bit = min_bit + 7
52
- % end
53
-
54
- <table class="reg table table-condensed" style="margin-bottom: 0; table-layout: fixed;">
55
- <thead>
56
- <tr class="bit-positions">
57
- <th class="spacer"></th>
58
- % 8.times do |i|
59
- % if reg.bit_order == :lsb0
60
- % bit_num = (byte_number * 8) - i - 1
61
- % else
62
- % bit_num = (byte_index * 8) + i
63
- % end
64
- % if bit_num > reg.size - 1
65
- <th class="spacer"></th>
66
- % else
67
- <th class="bit-position"><%= bit_num %></th>
68
- % end
69
- % end
70
- </tr>
71
- </thead>
72
- <tbody>
73
-
74
- %#############################################
75
- %# Read Row
76
- %#############################################
77
- <tr class="read">
78
- <td class="heading">R</td>
79
- % alignment_done = reg.bit_order == :lsb0 ? false : true
80
- % reg.named_bits :include_spacers => true do |name, bit|
81
- % if _bit_in_range?(bit, max_bit, min_bit)
82
- % if max_bit > (reg.size - 1) && !alignment_done
83
- % (max_bit - (reg.size - 1)).times do
84
- <td class="spacer"></td>
85
- % end
86
- % alignment_done = true
87
- % end
88
- % if bit.size > 1
89
- % if name
90
- % if bit.readable?
91
- % bit_name = "#{name}[#{bit.size - 1}:0]"
92
- <td class="<%= _bit_rw(bit) %>" colspan="<%= _num_bits_in_range(bit, max_bit, min_bit) %>">
93
- % if options[:descriptions] && !bit.description.empty?
94
- <span title="<%= name %>"><a href="#<%= "#{reg.name}_#{name}_#{bit.position}" %>"><%= bit_name %></a></span>
95
- % else
96
- <span title="<%= name %>"><%= bit_name %></span>
97
- % end
98
- </td>
99
- % else
100
- % if bit.access == :worz
101
- <td class="<%= _bit_rw(bit) %>" colspan="<%= _num_bits_in_range(bit, max_bit, min_bit) %>">
102
- <span>0</span>
103
- </td>
104
- % else
105
- <td class="<%= _bit_rw(bit) %>" colspan="<%= _num_bits_in_range(bit, max_bit, min_bit) %>"></td>
106
- % end
107
- % end
108
- % else
109
- % bit.shift_out_left do |bit|
110
- % if _index_in_range?(bit.position, max_bit, min_bit)
111
- <td>0</td>
112
- % end
113
- % end
114
- % end
115
- % else
116
- % if name
117
- % if bit.readable?
118
- % if name.size > 10
119
- % bit_name = "#{name[0..2]}...#{name[-3..-1]}"
120
- %# bit_name = "bit#{bit.position}*"
121
- % else
122
- % bit_name = name
123
- % end
124
- % if options[:descriptions] && !bit.description.empty?
125
- <td class="<%= _bit_rw(bit) %>"><span title="<%= name %>"><a href="#<%= "#{reg.name}_#{name}_#{bit.position}" %>"><%= bit_name %></a></span></td>
126
- % else
127
- <td class="<%= _bit_rw(bit) %>"><span title="<%= name %>"><%= bit_name %></span></td>
128
- % end
129
- % else
130
- <td class="<%= _bit_rw(bit) %>"></td>
131
- % end
132
- % else
133
- <td>0</td>
134
- % end
135
- % end
136
- % end
137
- % end
138
- </tr>
139
-
140
- %#############################################
141
- %# Write Row
142
- %#############################################
143
- <tr class="write">
144
- <td class="heading">W</td>
145
- % alignment_done = reg.bit_order == :lsb0 ? false : true
146
- % reg.named_bits :include_spacers => true do |name, bit|
147
- % if _bit_in_range?(bit, max_bit, min_bit)
148
- % if max_bit > (reg.size - 1) && !alignment_done
149
- % (max_bit - (reg.size - 1)).times do
150
- <td class="spacer"></td>
151
- % end
152
- % alignment_done = true
153
- % end
154
- % if bit.size > 1
155
- % if name
156
- % if !bit.readable?
157
- % bit_name = "#{name}[#{bit.size - 1}:0]"
158
- <td class="<%= _bit_rw(bit) %>" colspan="<%= _num_bits_in_range(bit, max_bit, min_bit) %>">
159
- % if options[:descriptions] && !bit.description.empty?
160
- <span title="<%= name %>"><a href="#<%= "#{reg.name}_#{name}_#{bit.position}" %>"><%= bit_name %></a></span>
161
- % else
162
- <span title="<%= name %>"><%= bit_name %></span>
163
- % end
164
- </td>
165
- % else
166
- <td class="<%= _bit_rw(bit) %>" colspan="<%= _num_bits_in_range(bit, max_bit, min_bit) %>"></td>
167
- % end
168
- % else
169
- % bit.shift_out_left do |bit|
170
- % if _index_in_range?(bit.position, max_bit, min_bit)
171
- <td class="not-writable"></td>
172
- % end
173
- % end
174
- % end
175
- % else
176
- % if name
177
- % if !bit.readable?
178
- % if name.size > 10
179
- % bit_name = "#{name[0..2]}...#{name[-3..-1]}"
180
- %# bit_name = "bit#{bit.position}*"
181
- % else
182
- % bit_name = name
183
- % end
184
- % if options[:descriptions] && !bit.description.empty?
185
- <td class="<%= _bit_rw(bit) %>"><span title="<%= name %>"><a href="#<%= "#{reg.name}_#{name}_#{bit.position}" %>"><%= bit_name %></a></span></td>
186
- % else
187
- <td class="<%= _bit_rw(bit) %>"><span title="<%= name %>"><%= bit_name %></span></td>
188
- % end
189
- % else
190
- <td class="<%= _bit_rw(bit) %>"></td>
191
- % end
192
- % else
193
- <td class="not-writable"></td>
194
- % end
195
- % end
196
- % end
197
- % end
198
- </tr>
199
-
200
- % if options[:current_value]
201
- <tr class="current_value">
202
- <td class="heading">Current Value (Hex)</td>
203
- % alignment_done = reg.bit_order == :lsb0 ? false : true
204
- % reg.named_bits :include_spacers => true do |name, bit|
205
- % if _bit_in_range?(bit, max_bit, min_bit)
206
- % if max_bit > (reg.size - 1) && !alignment_done
207
- % (max_bit - (reg.size - 1)).times do
208
- <td class="spacer"></td>
209
- % end
210
- % alignment_done = true
211
- % end
212
- % if bit.size > 1
213
- % if name
214
- % if bit.nvm_dep != 0 || bit.data == :memory
215
- <td colspan="<%= _num_bits_in_range(bit, max_bit, min_bit) %>">M</td>
216
- % elsif bit.data == :undefined
217
- <td colspan="<%= _num_bits_in_range(bit, max_bit, min_bit) %>">X</td>
218
- % else
219
- <td colspan="<%= _num_bits_in_range(bit, max_bit, min_bit) %>"><%= bit.data[_max_bit_in_range(bit, max_bit, min_bit).._min_bit_in_range(bit, max_bit, min_bit)].to_s(16).upcase %></td>
220
- % end
221
- % else
222
- % bit.shift_out_left do |bit|
223
- % if _index_in_range?(bit.position, max_bit, min_bit)
224
- <td></td>
225
- % end
226
- % end
227
- % end
228
- % else
229
- % if bit.nvm_dep != 0 || bit.reset_val == :memory
230
- <td>M</td>
231
- % elsif bit.data == :undefined
232
- <td>X</td>
233
- % else
234
- <td><%= bit.data.to_s(16).upcase %></td>
235
- % end
236
- % end
237
- % end
238
- % end
239
- </tr>
240
- % else
241
- %#############################################
242
- %# Reset Row
243
- %#############################################
244
- <tr class="reset">
245
- <td class="heading">Reset</td>
246
- % alignment_done = reg.bit_order == :lsb0 ? false : true
247
- % reg.named_bits :include_spacers => true do |name, bit|
248
- % if _bit_in_range?(bit, max_bit, min_bit)
249
- % if max_bit > (reg.size - 1) && !alignment_done
250
- % (max_bit - (reg.size - 1)).times do
251
- <td class="spacer"></td>
252
- % end
253
- % alignment_done = true
254
- % end
255
- % if bit.size > 1
256
- % if name
257
- % if bit.nvm_dep != 0 || bit.reset_val == :memory
258
- <td colspan="<%= _num_bits_in_range(bit, max_bit, min_bit) %>">M</td>
259
- % elsif bit.reset_val == :undefined
260
- <td colspan="<%= _num_bits_in_range(bit, max_bit, min_bit) %>">X</td>
261
- % else
262
- <td colspan="<%= _num_bits_in_range(bit, max_bit, min_bit) %>"><%= bit.reset_val[_max_bit_in_range(bit, max_bit, min_bit).._min_bit_in_range(bit, max_bit, min_bit)].to_s(16).upcase %></td>
263
- % end
264
- % else
265
- % bit.shift_out_left do |bit|
266
- % if _index_in_range?(bit.position, max_bit, min_bit)
267
- <td></td>
268
- % end
269
- % end
270
- % end
271
- % else
272
- % if bit.nvm_dep != 0 || bit.reset_val == :memory
273
- <td>M</td>
274
- % elsif bit.reset_val == :undefined
275
- <td>X</td>
276
- % else
277
- <td><%= bit.reset_val.to_s(16).upcase %></td>
278
- % end
279
- % end
280
- % end
281
- % end
282
- </tr>
283
- % end
284
- </tbody>
285
- </table>
286
-
287
- % end # Byte index loop
288
-
289
- % if options[:descriptions] && reg.named_bits.any? { |name, bits| !bits.description.empty? }
290
- <table class="bit-descriptions table table-condensed table-bordered" style="margin: 20px 0 0 0">
291
- <thead>
292
- <tr>
293
- <th>Bit</th>
294
- <th>Description</th>
295
- </tr>
296
- </thead>
297
- <tbody>
298
- % reg.named_bits do |name, bits|
299
- <tr>
300
- <td>
301
- <p>
302
- <a class="anchor" name="<%= "#{reg.name}_#{name}_#{bits.position}" %>"></a>
303
- % if bits.size == 1
304
- <%= bits.position %>
305
- % else
306
- <%= bits.position + bits.size - 1 %>-<%= bits.position %>
307
- % end
308
- </p>
309
- <p>
310
- % if bits.size == 1
311
- <%= name %>
312
- % else
313
- <%= name %>[<%= bits.size - 1 %>:0]
314
- % end
315
- </p>
316
- </td>
317
- <td markdown="1">
318
- % bit_val_str = ''
319
- % start_bit = bits.position
320
- % end_bit = bits.position + bits.size - 1
321
- % (start_bit..end_bit).each do |b|
322
- % bit_val_str << reg.bits[b].data.to_s
323
- % end
324
- % bit_val_str.reverse!
325
- % bits.description.each do |line|
326
- % if options[:current_value]
327
- % if line =~ /^\d{#{bit_val_str.length}}/
328
- % if line =~ /^#{bit_val_str}/
329
- <span style="background-color: #66FF66"> <%= line.gsub("\\'", "'") %>
330
- </span><br/>
331
- % else
332
- <%= line.gsub("\\'", "'") %><br/>
333
- % end
334
- % else
335
- <%= line.gsub("\\'", "'") %>
336
- % end
337
- % else
338
- <%= line.gsub("\\'", "'") %>
339
- % end
340
- % end
341
-
342
- </td>
343
- </tr>
344
- % end
345
- </tbody>
346
- </table>
347
- % end
348
-
349
- </div>