verilog 0.0.3 → 0.0.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.
data/lib/verilog.rb CHANGED
@@ -3,7 +3,8 @@ libdir = File.dirname(__FILE__)
3
3
  $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
4
4
 
5
5
  module Verilog
6
- VERSION = '0.0.3'
6
+ VERSION = '0.0.4'
7
7
  end
8
8
 
9
9
  require 'verilog/file'
10
+ require 'verilog/path'
data/lib/verilog/file.rb CHANGED
@@ -6,9 +6,19 @@ module Verilog
6
6
  attr_accessor :filename, :contents
7
7
 
8
8
  def initialize( filename, options={} )
9
- @filename = filename
9
+ @filename = ::File.basename( filename )
10
10
  @options = options
11
- @options[:path] ||= ''
11
+
12
+ options[:path] ||= ''
13
+ relative_path_added_with_file_name = filename.dup
14
+ #Remove the basename section of the filename
15
+ relative_path_added_with_file_name[@filename] = ''
16
+
17
+ @options[:path] = ::File.join( options[:path], relative_path_added_with_file_name )
18
+ end
19
+
20
+ def inspect
21
+ [":options => #{@options.inspect}", ":filename => #{@filename}", ":contents => #{@contents}"]
12
22
  end
13
23
 
14
24
  #Alias method
@@ -35,11 +45,7 @@ module Verilog
35
45
  end
36
46
 
37
47
  def absolute_filename
38
- if @options[:path] == ''
39
- dir = @filename.dup
40
- else
41
- dir = ::File.join( @options[:path], @filename )
42
- end
48
+ dir = ::File.join( @options[:path], @filename )
43
49
  dir = ::File.expand_path( dir )
44
50
 
45
51
  return dir
@@ -0,0 +1,56 @@
1
+
2
+ module Verilog
3
+
4
+ class Path
5
+ attr_reader :files
6
+
7
+ def initialize( path="" )
8
+ @files = []
9
+ load_path( path )
10
+ end
11
+
12
+ def load_path( paths )
13
+ #path is single string or array of strings
14
+ paths.each do |path|
15
+ files = Dir.glob( ::File.join( path, '*.*') )
16
+ files.each do |file|
17
+ #Skip if Directory got passed *.* Filter
18
+ next if ::File.directory?( file )
19
+
20
+ file_name = ::File.basename(file)
21
+ @files << Verilog::File.new(file_name, {:path => path})
22
+
23
+ end
24
+ end
25
+ end
26
+
27
+ def load_file file
28
+ @files << Verilog::File.new( file )
29
+ end
30
+
31
+ def read_all
32
+ @files.each do |file|
33
+ file.read_from_disk
34
+ end
35
+ end
36
+
37
+ def find_by_module( name )
38
+ result = @files.select do |file|
39
+ file.module_name == name
40
+ end
41
+
42
+ return result[0]
43
+ end
44
+
45
+ def includes_file( name )
46
+ @files.select { |file| file.includes.include?( name ) }
47
+ end
48
+
49
+ def instantiates_module( name )
50
+ @files.select { |file| file.instantiations.include?( name ) }
51
+ end
52
+
53
+ end
54
+
55
+ end
56
+
@@ -2,6 +2,14 @@ require 'spec_helper'
2
2
  require 'pp'
3
3
 
4
4
  describe Verilog do
5
+ it "Checking initialize equivalence, file and path verus absolute path" do
6
+ path = File.dirname( __FILE__ )
7
+
8
+ test_one = Verilog::File.new( File.join( path, 'fixtures', 'test_one.v' ) )
9
+ test_one.inspect.should == Verilog::File.new( 'test_one.v',{:path => File.join( path, 'fixtures')} ).inspect
10
+ end
11
+
12
+
5
13
 
6
14
  it "Open file, with path as oart of filename" do
7
15
  path = File.dirname( __FILE__ )
@@ -0,0 +1,42 @@
1
+ require 'spec_helper'
2
+ require 'pp'
3
+
4
+ describe Verilog do
5
+
6
+ it "initialize with folder" do
7
+ path = File.dirname( __FILE__ )
8
+
9
+ test_one = Verilog::Path.new( File.join( path, 'fixtures' ) )
10
+ test_one.read_all
11
+
12
+ answer = Verilog::File.new( File.join( path, 'fixtures', 'test_one.v' ) )
13
+ answer.read
14
+ test_one.find_by_module( "TEST_ONE" ).inspect.should == answer.inspect
15
+
16
+ end
17
+
18
+ it "initialize with no args" do
19
+ path = File.dirname( __FILE__ )
20
+
21
+ test_one = Verilog::Path.new( )
22
+ test_one.read_all
23
+
24
+ answer = nil# Verilog::File.new( File.join( path, 'fixtures', 'test_one.v' ) )
25
+ test_one.find_by_module( "TEST_ONE" ).inspect.should == answer.inspect
26
+
27
+ end
28
+
29
+ it "initialize with no args, and load_file" do
30
+ path = File.dirname( __FILE__ )
31
+
32
+ test_one = Verilog::Path.new( )
33
+ test_one.load_file( File.join( path, 'fixtures', 'test_one.v' ) )
34
+ test_one.read_all
35
+
36
+ answer = Verilog::File.new( File.join( path, 'fixtures', 'test_one.v' ) )
37
+ answer.read
38
+ test_one.find_by_module( "TEST_ONE" ).inspect.should == answer.inspect
39
+
40
+ end
41
+
42
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: verilog
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 3
10
- version: 0.0.3
9
+ - 4
10
+ version: 0.0.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Morgan Prior
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-10-24 00:00:00 +01:00
18
+ date: 2011-10-25 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies: []
21
21
 
@@ -32,12 +32,14 @@ files:
32
32
  - README.md
33
33
  - Rakefile
34
34
  - lib/verilog/file.rb
35
+ - lib/verilog/path.rb
35
36
  - lib/verilog.rb
36
37
  - spec/fixtures/test_four.vh
37
38
  - spec/fixtures/test_one.v
38
39
  - spec/fixtures/test_three.v
39
40
  - spec/spec_helper.rb
40
- - spec/verilog_spec.rb
41
+ - spec/verilog_file_spec.rb
42
+ - spec/verilog_path_spec.rb
41
43
  has_rdoc: true
42
44
  homepage: http://amaras-tech.co.uk/software/verilog
43
45
  licenses: []