origen 0.12.1 → 0.13.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
  SHA1:
3
- metadata.gz: bc4a84b64d3cb9f9ee4b5d8de1160a3ba5de60cd
4
- data.tar.gz: 0eb5bb2d2e1fc69c2292d0c055d8a0015fd3930e
3
+ metadata.gz: 337374eae5a026a7c7e1384271736512a03581fb
4
+ data.tar.gz: ff8998208b3ea0dec2d1f8d764395c022c92a110
5
5
  SHA512:
6
- metadata.gz: a9fcae76485f5a2920fc838bab48563b6287d9c57d06d3ff6d01d99b0d974cd6d5c5f954f8fb00d8d229e298254402ea8f6b1264404716ab40b594b4ff5c048b
7
- data.tar.gz: be008ee6ce644e6af04ea0983f8e48389ab94a410f77049915b351914ebcb85b3f91a36b60d818d5db45a006973dd2763bde078501b940002cce1b5a3b89420a
6
+ metadata.gz: a9daab3584692eab42da79cd7b1262eac2c70a9921f4e5a2235243ec4132974ace8f00ad58c8c385c25d2d788b76cfe0256dd7d6c9ae204128d9eb8b9472bc30
7
+ data.tar.gz: 238c335dec7d87f24c80a82f9d130367760fd57437228dd8059224112be81349cc9b589a12e48cb7432e41d1c86da22ae252284d0119d9806073696613d3aca9
data/bin/origen CHANGED
@@ -8,8 +8,6 @@ require 'fileutils'
8
8
  class OrigenBootError < StandardError
9
9
  end
10
10
 
11
- ORIGEN_MIN_GCC_VERSION = '4.6.3'
12
-
13
11
  # Keep a note of the pwd at the time when Origen was first loaded, this is initially used
14
12
  # by the site_config lookup.
15
13
  $_origen_invocation_pwd ||= Pathname.pwd
@@ -87,26 +85,6 @@ if origen_root && File.exist?(ENV['BUNDLE_GEMFILE']) && Origen.site_config.gem_m
87
85
  `bundle config build.#{switches}`
88
86
  end
89
87
  end
90
- gcc_version = begin
91
- begin
92
- line = `gcc --version`.split("\n").first
93
- rescue
94
- puts "You don't seem to have gcc available, make sure you following the Origen installation instructions:"
95
- puts 'http://origen-sdk.org/origen/latest/guides/starting/installing/'
96
- exit 1
97
- end
98
- if line =~ /(\d+\.\d+\.\d+)/
99
- Regexp.last_match(1)
100
- end
101
- end
102
- if gcc_version
103
- if gcc_version < ORIGEN_MIN_GCC_VERSION
104
- puts "Origen requires a minimum of GCC version #{ORIGEN_MIN_GCC_VERSION}, but you have #{gcc_version}."
105
- exit 1
106
- end
107
- else
108
- puts 'Unable to determine gcc version, proceeding with fingers crossed...'
109
- end
110
88
  end
111
89
  result = system(cmd)
112
90
  end
data/config/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Origen
2
2
  MAJOR = 0
3
- MINOR = 12
4
- BUGFIX = 1
3
+ MINOR = 13
4
+ BUGFIX = 0
5
5
  DEV = nil
6
6
 
7
7
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
data/lib/origen.rb CHANGED
@@ -683,6 +683,17 @@ unless defined? RGen::ORIGENTRANSITION
683
683
  @current_command
684
684
  end
685
685
 
686
+ # Provides a global Origen session stored at ~/.origen/session (Origen.home)
687
+ def session(reload = false)
688
+ @session = nil if reload
689
+ @session ||= Database::KeyValueStores.new(self, persist: false)
690
+ end
691
+
692
+ # Returns the home directory of Origen (i.e., the primary place that Origen operates out of)
693
+ def home
694
+ "#{Dir.home}/.origen"
695
+ end
696
+
686
697
  private
687
698
 
688
699
  def current_command=(val)
@@ -8,3 +8,4 @@ require 'origen/core_ext/hash'
8
8
  require 'origen/core_ext/array'
9
9
  require 'origen/core_ext/range'
10
10
  require 'origen/core_ext/enumerable'
11
+ require 'origen/core_ext/regexp'
@@ -0,0 +1,16 @@
1
+ require 'yaml'
2
+ class Regexp
3
+ def to_txt(options = {})
4
+ options = {
5
+ no_mods: false
6
+ }.update(options)
7
+ expr, mods = '', ''
8
+ if to_yaml.match(/regexp\s+\/(.*)\/(.*)/).nil?
9
+ Origen.log.error('Cannot convert the regular expression to text, something changed in the YAML view of the regular expressions')
10
+ fail
11
+ else
12
+ (expr, mods) = to_yaml.match(/regexp\s+\/(.*)\/(.*)/).captures
13
+ end
14
+ options[:no_mods] ? "\/#{expr}\/" : "\/#{expr}\/#{mods}"
15
+ end
16
+ end
@@ -5,10 +5,12 @@ module Origen
5
5
  # Returns the parent database (the application's collection of
6
6
  # key-value stores)
7
7
  attr_reader :database
8
+ attr_accessor :private
8
9
 
9
10
  def initialize(database, name)
10
11
  @name = name
11
12
  @database = database
13
+ @private = false
12
14
  end
13
15
 
14
16
  # Read a value from the store
@@ -54,6 +56,10 @@ module Origen
54
56
  database.persisted?
55
57
  end
56
58
 
59
+ def private?
60
+ @private
61
+ end
62
+
57
63
  private
58
64
 
59
65
  def dssc
@@ -86,7 +92,6 @@ module Origen
86
92
  unless file.dirname.exist?
87
93
  FileUtils.mkdir_p(file.dirname.to_s)
88
94
  end
89
- `chmod u+w #{file}` if file.exist?
90
95
  if @uncommitted
91
96
  database.record_new_store(name)
92
97
  @uncommitted = false
@@ -94,16 +99,22 @@ module Origen
94
99
  File.open(file.to_s, 'w') do |f|
95
100
  Marshal.dump(store, f)
96
101
  end
102
+ if private?
103
+ FileUtils.chmod(0600, file)
104
+ else
105
+ FileUtils.chmod(0664, file)
106
+ end
97
107
  if persisted?
98
108
  dssc.check_in file, new: true, keep: true, branch: 'Trunk'
99
109
  end
100
110
  end
101
111
 
102
112
  def file
113
+ file_path = database.app == Origen ? Origen.home : database.app.root
103
114
  if persisted?
104
- @file ||= Pathname.new("#{database.app.root}/.db/#{name.to_s.symbolize}")
115
+ @file ||= Pathname.new("#{file_path}/.db/#{name.to_s.symbolize}")
105
116
  else
106
- @file ||= Pathname.new("#{database.app.root}/.session/#{name.to_s.symbolize}")
117
+ @file ||= Pathname.new("#{file_path}/.session/#{name.to_s.symbolize}")
107
118
  end
108
119
  end
109
120
  end
@@ -14,9 +14,9 @@ module Origen
14
14
 
15
15
  def inspect
16
16
  if persisted?
17
- "< #{app.class}'s Database >"
17
+ app == Origen ? "Origen's Global Database" : "< #{app.class}'s Database >"
18
18
  else
19
- "< #{app.class}'s Session >"
19
+ app == Origen ? "Origen's Global Session" : "< #{app.class}'s Session >"
20
20
  end
21
21
  end
22
22
 
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.12.1
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen McGinty
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-06 00:00:00.000000000 Z
11
+ date: 2017-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -447,6 +447,7 @@ files:
447
447
  - lib/origen/core_ext/numeric.rb
448
448
  - lib/origen/core_ext/object.rb
449
449
  - lib/origen/core_ext/range.rb
450
+ - lib/origen/core_ext/regexp.rb
450
451
  - lib/origen/core_ext/string.rb
451
452
  - lib/origen/database.rb
452
453
  - lib/origen/database/key_value_store.rb