origen 0.55.1 → 0.55.2

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
- SHA256:
3
- metadata.gz: 51a69dd9a87393aab955d52811375f4c601673ec38666a6dce21101eba2b56ca
4
- data.tar.gz: 710cf69a1ecfdca6c6bd7cb9e8124acae115c3a09cca274f55c7227545ac25d7
2
+ SHA1:
3
+ metadata.gz: 5cf8ef1db0f389fbc583bff6c1b08c1758b3e83e
4
+ data.tar.gz: d813e05d000eafc086a6622667775f12fb21a00d
5
5
  SHA512:
6
- metadata.gz: 5c3433290d16e6b279d335e3ff5fd8bcb494a1ca36c842870d7aa1e6e76c94912e519bb5144afddd205074493e4e97d960116cdaa9352383b43d1bf20189c6ba
7
- data.tar.gz: bc81251777e59c3d23ae98167d81a1b99d62f0d31d344a828511c5a13b5dccf088a6a55b88165b97fbb0a0edcda8e5c158681c645402110691f6d1c6ae76a368
6
+ metadata.gz: 7b8a52639b9294d8710786e7f310b978c4fa4170d05880cbf60316914c1ecba3418da55921b54c4fbb17dd934ab4e98e6f99830a7655e1587f5ca0f08d276d57
7
+ data.tar.gz: 7228e9ffd9d73d7fc5c73b767fee9201c370d71a3c72bab1237ff644876cd534338267823127eaa840a6633167f9e08d811332ef9ef8d7d0ab5bb9a79ba74314
@@ -1,7 +1,7 @@
1
1
  module Origen
2
2
  MAJOR = 0
3
3
  MINOR = 55
4
- BUGFIX = 1
4
+ BUGFIX = 2
5
5
  DEV = nil
6
6
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
7
7
  end
@@ -321,7 +321,7 @@ Your workspace has local modifications that are preventing the requested action
321
321
  file.puts ''
322
322
  end
323
323
  file.puts ''
324
- file.puts note.escape_underscores
324
+ file.puts note.escape_underscores(smartly = true)
325
325
  file.puts ''
326
326
  file.puts text
327
327
  end
@@ -1,4 +1,5 @@
1
1
  require 'active_support/core_ext/string/inflections'
2
+ require 'uri'
2
3
  begin
3
4
  require 'scrub_rb'
4
5
  rescue LoadError
@@ -19,11 +20,84 @@ class String
19
20
  end
20
21
  end
21
22
 
22
- def escape_underscores
23
- gsub('_', '\_')
23
+ def escape_underscores(smartly = false)
24
+ if smartly
25
+ # Need to make sub-string ranges where the URLs are located
26
+ urls = URI.extract(self, %w(http https ssh))
27
+ url_matches = [].tap do |new_ary|
28
+ urls.each do |url|
29
+ scan(/#{Regexp.escape(url)}/) do |c|
30
+ indices = ($LAST_MATCH_INFO.offset(0).first..($LAST_MATCH_INFO.offset(0).first + c.size - 1))
31
+ new_ary << [indices, c]
32
+ end
33
+ end
34
+ end
35
+ # This order is because a better single regex is not yet found
36
+ italic_regex = [/^(\_\w+\_)\s+/, /(\_\w+\_)$/, /\s*(\_\w+\_)\s+/]
37
+ italic_matches = [].tap do |new_ary|
38
+ italic_regex.each_with_index do |regex, i|
39
+ scan(regex) do |c|
40
+ offset = c.first.size - 1
41
+ if i == 0
42
+ indices = (0..offset)
43
+ elsif i == 1
44
+ indices = (size - 1 - offset..size - 1)
45
+ else
46
+ indices = ($LAST_MATCH_INFO.offset(0).first..($LAST_MATCH_INFO.offset(0).first + c.first.size - 1))
47
+ end
48
+ new_ary << [indices, c]
49
+ end
50
+ end
51
+ end
52
+ # Make sure there are no italic matches within the URL ranges
53
+ filtered_italic_matches = [].tap do |new_ary|
54
+ url_matches.each do |url_ary|
55
+ url_range = url_ary.first
56
+ italic_matches.each do |italic_ary|
57
+ italic_range = italic_ary.first
58
+ # Ruby 2.6 has the Range#cover method but until then
59
+ unless ranges_overlap?(url_range, italic_range)
60
+ new_ary << italic_ary unless new_ary.include?(italic_ary)
61
+ end
62
+ end
63
+ end
64
+ end
65
+ italic_ranges = [].tap do |new_ary|
66
+ filtered_italic_ranges = filtered_italic_matches.map(&:first)
67
+ italic_range_mins = filtered_italic_matches.map(&:first).map(&:min).sort
68
+ italic_range_mins.each_with_index do |range_min, i|
69
+ filtered_italic_ranges.each do |r|
70
+ new_ary << r if r.min == range_min
71
+ end
72
+ end
73
+ end
74
+ str = dup
75
+ inc = 0
76
+ italic_ranges.each do |r|
77
+ str[r.first + inc] = '\_'
78
+ inc += 1
79
+ str[r.last + inc] = '\_'
80
+ inc += 1
81
+ end
82
+ str
83
+ else
84
+ gsub('_', '\_')
85
+ end
24
86
  end
25
87
  alias_method :escape_underscore, :escape_underscores
26
88
 
89
+ def match_all(regex)
90
+ match_str = self
91
+ matches = []
92
+ while match_str.length > 0
93
+ md = match_str.match(regex)
94
+ break unless md
95
+ matches << md
96
+ match_str = md.post_match
97
+ end
98
+ matches
99
+ end
100
+
27
101
  def camel_case
28
102
  Origen.deprecate "String#camel_case! is deprecated, use String#camelcase instead, or if you want to get rid of spaces: my_string.gsub(' ', '_').camelcase"
29
103
  gsub(/\s+/, '_').split('_').map(&:capitalize).join
@@ -167,6 +241,10 @@ class String
167
241
 
168
242
  private
169
243
 
244
+ def ranges_overlap?(r1, r2)
245
+ !(r1.first > r2.last || r1.last < r2.first)
246
+ end
247
+
170
248
  # Convert a verilog number string to an integer
171
249
  def verilog_to_dec
172
250
  verilog_hash = parse_verilog_number
@@ -8,16 +8,16 @@ Gem::Specification.new do |s|
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 1.8.11".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
10
10
  s.authors = ["Stephen McGinty".freeze]
11
- s.date = "2019-09-13"
11
+ s.date = "2020-01-29"
12
12
  s.email = ["stephen.f.mcginty@gmail.com".freeze]
13
13
  s.files = ["bin/boot.rb".freeze, "config/application.rb".freeze, "config/boot.rb".freeze, "config/commands.rb".freeze, "config/shared_commands.rb".freeze, "config/version.rb".freeze, "lib/origen_app_generators.rb".freeze, "lib/origen_app_generators/application.rb".freeze, "lib/origen_app_generators/base.rb".freeze, "lib/origen_app_generators/empty_application.rb".freeze, "lib/origen_app_generators/empty_plugin.rb".freeze, "lib/origen_app_generators/new.rb".freeze, "lib/origen_app_generators/new_app_tests.rb".freeze, "lib/origen_app_generators/origen_infrastructure/app_generator_plugin.rb".freeze, "lib/origen_app_generators/plugin.rb".freeze, "lib/origen_app_generators/test_engineering/common.rb".freeze, "lib/origen_app_generators/test_engineering/stand_alone_application.rb".freeze, "lib/origen_app_generators/test_engineering/test_block.rb".freeze, "templates/app_generators".freeze, "templates/app_generators/application".freeze, "templates/app_generators/application/.gitignore".freeze, "templates/app_generators/application/.irbrc".freeze, "templates/app_generators/application/.rspec".freeze, "templates/app_generators/application/.travis.yml".freeze, "templates/app_generators/application/Gemfile".freeze, "templates/app_generators/application/Rakefile".freeze, "templates/app_generators/application/app".freeze, "templates/app_generators/application/app/blocks".freeze, "templates/app_generators/application/app/blocks/top_level.rb".freeze, "templates/app_generators/application/app/lib".freeze, "templates/app_generators/application/app/lib/module.rb".freeze, "templates/app_generators/application/app/templates".freeze, "templates/app_generators/application/app/templates/web".freeze, "templates/app_generators/application/app/templates/web/index.md.erb".freeze, "templates/app_generators/application/app/templates/web/layouts".freeze, "templates/app_generators/application/app/templates/web/layouts/_basic.html.erb".freeze, "templates/app_generators/application/app/templates/web/partials".freeze, "templates/app_generators/application/app/templates/web/partials/_navbar.html.erb".freeze, "templates/app_generators/application/app/templates/web/release_notes.md.erb".freeze, "templates/app_generators/application/config".freeze, "templates/app_generators/application/config/application.rb".freeze, "templates/app_generators/application/config/boot.rb".freeze, "templates/app_generators/application/config/commands.rb".freeze, "templates/app_generators/application/config/maillist_dev.txt".freeze, "templates/app_generators/application/config/maillist_prod.txt".freeze, "templates/app_generators/application/config/version.rb".freeze, "templates/app_generators/application/doc".freeze, "templates/app_generators/application/doc/history".freeze, "templates/app_generators/application/dot_keep".freeze, "templates/app_generators/application/origen_core_session".freeze, "templates/app_generators/application/spec".freeze, "templates/app_generators/application/spec/spec_helper.rb".freeze, "templates/app_generators/application/target".freeze, "templates/app_generators/application/target/debug.rb".freeze, "templates/app_generators/application/target/default.rb".freeze, "templates/app_generators/application/target/production.rb".freeze, "templates/app_generators/new".freeze, "templates/app_generators/new/generator.rb".freeze, "templates/app_generators/new/info.md.erb".freeze, "templates/app_generators/origen_infrastructure".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib/application.rb".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib/base.rb".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib/module.rb".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib/plugin.rb".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/config".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/config/load_generators.rb".freeze, "templates/app_generators/plugin".freeze, "templates/app_generators/plugin/Gemfile".freeze, "templates/app_generators/plugin/Rakefile".freeze, "templates/app_generators/plugin/app".freeze, "templates/app_generators/plugin/app/templates".freeze, "templates/app_generators/plugin/app/templates/web".freeze, "templates/app_generators/plugin/app/templates/web/index.md.erb".freeze, "templates/app_generators/plugin/app/templates/web/partials".freeze, "templates/app_generators/plugin/app/templates/web/partials/_navbar_external.html.erb".freeze, "templates/app_generators/plugin/app/templates/web/partials/_navbar_internal.html.erb".freeze, "templates/app_generators/plugin/config".freeze, "templates/app_generators/plugin/config/boot.rb".freeze, "templates/app_generators/plugin/gemspec.rb".freeze, "templates/app_generators/test_engineering".freeze, "templates/app_generators/test_engineering/environment".freeze, "templates/app_generators/test_engineering/environment/j750.rb".freeze, "templates/app_generators/test_engineering/environment/uflex.rb".freeze, "templates/app_generators/test_engineering/environment/v93k.rb".freeze, "templates/app_generators/test_engineering/stand_alone_application".freeze, "templates/app_generators/test_engineering/stand_alone_application/.keep".freeze, "templates/app_generators/test_engineering/test_block".freeze, "templates/app_generators/test_engineering/test_block/.keep".freeze]
14
14
  s.homepage = "http://origen-sdk.org/origen_app_generators".freeze
15
15
  s.licenses = ["MIT".freeze]
16
16
  s.required_ruby_version = Gem::Requirement.new(">= 1.9.3".freeze)
17
- s.rubygems_version = "2.7.7".freeze
17
+ s.rubygems_version = "2.6.12".freeze
18
18
  s.summary = "Origen application generators".freeze
19
19
 
20
- s.installed_by_version = "2.7.7" if s.respond_to? :installed_by_version
20
+ s.installed_by_version = "2.6.12" if s.respond_to? :installed_by_version
21
21
 
22
22
  if s.respond_to? :specification_version then
23
23
  s.specification_version = 4
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: origen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.55.1
4
+ version: 0.55.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen McGinty
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-28 00:00:00.000000000 Z
11
+ date: 2020-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -226,14 +226,28 @@ dependencies:
226
226
  requirements:
227
227
  - - "~>"
228
228
  - !ruby/object:Gem::Version
229
- version: '0.9'
229
+ version: '0.17'
230
230
  type: :runtime
231
231
  prerelease: false
232
232
  version_requirements: !ruby/object:Gem::Requirement
233
233
  requirements:
234
234
  - - "~>"
235
235
  - !ruby/object:Gem::Version
236
- version: '0.9'
236
+ version: '0.17'
237
+ - !ruby/object:Gem::Dependency
238
+ name: simplecov-html
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - "~>"
242
+ - !ruby/object:Gem::Version
243
+ version: '0.10'
244
+ type: :runtime
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - "~>"
249
+ - !ruby/object:Gem::Version
250
+ version: '0.10'
237
251
  - !ruby/object:Gem::Dependency
238
252
  name: scrub_rb
239
253
  requirement: !ruby/object:Gem::Requirement
@@ -736,7 +750,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
736
750
  version: 1.8.11
737
751
  requirements: []
738
752
  rubyforge_project:
739
- rubygems_version: 2.7.7
753
+ rubygems_version: 2.6.12
740
754
  signing_key:
741
755
  specification_version: 4
742
756
  summary: The Semiconductor Developer's Kit