origen_doc_helpers 0.7.2 → 0.8.4

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: 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>