verilog_rename 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md ADDED
@@ -0,0 +1,22 @@
1
+ verilog_rename
2
+ ==============
3
+
4
+ Helpers to rename a verilog module and update refferences to it
5
+
6
+ Example (from the rename-verilog executable)
7
+
8
+ require 'rubygems'
9
+ require 'verilog_rename'
10
+
11
+ this_dir = Dir.pwd
12
+
13
+ path_files = Verilog::PathFiles.new( this_dir )
14
+ path_files.read_all
15
+
16
+ rename = Verilog::Rename.new('OLD_NAME', 'NEW_NAME', path_files)
17
+ rename.rename_module
18
+
19
+ TODO
20
+ ----
21
+
22
+ In the future the rename executable will have options for prefix which can operate on whole directories.
@@ -1,4 +1,4 @@
1
- require 'FileUtils'
1
+ require 'fileutils'
2
2
 
3
3
  module Verilog
4
4
 
@@ -1,6 +1,9 @@
1
1
 
2
+ libdir = File.dirname(__FILE__)
3
+ $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
4
+
2
5
  module VerilogRename
3
- VERSION = '0.0.1'
6
+ VERSION = '0.0.2'
4
7
  end
5
8
 
6
9
  require 'verilog'
@@ -1,4 +1,4 @@
1
- module TEST_ONE(
1
+ module TEST_TWO(
2
2
  input rx,
3
3
  output tx
4
4
  );
@@ -1,3 +1,3 @@
1
1
 
2
- `include 'TEST_ONE.v'
2
+ `include 'TEST_TWO.v'
3
3
  `include 'test_three.v'
@@ -4,12 +4,12 @@ module TEST_THREE(
4
4
  );
5
5
 
6
6
 
7
- TEST_ONE test_one_i0(
7
+ TEST_TWO test_one_i0(
8
8
  .rx (rx),
9
9
  .tx (tx)
10
10
  );
11
11
 
12
- TEST_ONE test_two_i0;
12
+ TEST_TWO test_two_i0;
13
13
 
14
14
  TEST_FOUR test_four_i0();
15
15
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: verilog_rename
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Morgan Prior
@@ -15,7 +15,8 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-07-03 00:00:00 Z
18
+ date: 2011-10-24 00:00:00 +01:00
19
+ default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  name: verilog
@@ -43,12 +44,11 @@ extra_rdoc_files: []
43
44
 
44
45
  files:
45
46
  - LICENSE.rtf
47
+ - README.md
46
48
  - Rakefile
47
49
  - bin/rename-verilog
48
50
  - lib/verilog/path_files.rb
49
51
  - lib/verilog/prefix.rb
50
- - lib/verilog/rename-backup.rb
51
- - lib/verilog/rename-oldf.rb
52
52
  - lib/verilog/rename.rb
53
53
  - lib/verilog_rename.rb
54
54
  - spec/example1/beta.v
@@ -64,8 +64,8 @@ files:
64
64
  - spec/run_examples1.sh
65
65
  - spec/run_examples2.sh
66
66
  - spec/scratch/fixtures/test_four.vh
67
- - spec/scratch/fixtures/TEST_ONE.v
68
67
  - spec/scratch/fixtures/test_three.v
68
+ - spec/scratch/fixtures/TEST_TWO.v
69
69
  - spec/spec_helper.rb
70
70
  - spec/temp/BETA_R4.v
71
71
  - spec/temp/BETA_R4_TH.v
@@ -73,6 +73,7 @@ files:
73
73
  - spec/temp/BETA_R4_TH_pkg.v
74
74
  - spec/temp/BETA_TH_sim.do
75
75
  - spec/verilog_rename_spec.rb
76
+ has_rdoc: true
76
77
  homepage: http://amaras-tech.co.uk/software/verilog_rename
77
78
  licenses: []
78
79
 
@@ -102,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
103
  requirements: []
103
104
 
104
105
  rubyforge_project:
105
- rubygems_version: 1.8.5
106
+ rubygems_version: 1.6.2
106
107
  signing_key:
107
108
  specification_version: 3
108
109
  summary: Extension to the verilog gem for renaming verilog files
@@ -1,130 +0,0 @@
1
- require 'FileUtils'
2
-
3
- module Verilog
4
-
5
- class Rename
6
- attr_reader :path_files
7
- attr_reader :old_name, :new_name
8
- attr_reader :old_file, :new_file
9
-
10
-
11
- def initialize(old_name, new_name, path_files)
12
- @old_name = old_name
13
- @new_name = new_name
14
- @path_files = path_files
15
- end
16
-
17
- def rename
18
- #@old_file, @new_file = find_rename_verilog_file
19
-
20
- #Analyse file and rename module
21
- rename_module
22
-
23
- #update_refferences
24
- end
25
-
26
- def update_refferences
27
- files = Dir.glob('*.*')
28
- #puts "File list searching for insatances of #{@old_name}"
29
- files.each do |file|
30
- next if File.directory?( file )
31
- contents = Verilog::FileReader.get_file_as_string( file )
32
-
33
- #Update Instatiations
34
- updated_instance_b = contents.gsub!(
35
- /(^\s*)#{@old_name}(\s\w+\s*\()/i, "\\1#{@new_name}\\2")
36
- if updated_instance_b
37
- puts "Updating instantiation of #{@old_name} to #{@new_name} in #{file.to_s}"
38
- end
39
-
40
- #Update inculde
41
- ## want filename of file being moved
42
- updated_include_b = contents.gsub!(/(^\s*`include [\'\"])#{@old_file}([\'\"])/i, "\\1#{@new_file}\\2")
43
- if updated_include_b
44
- puts "Updating include of #{@old_file} to #{@new_file} in #{file.to_s}"
45
- end
46
-
47
-
48
- #Update lines in *.do runscripts
49
- updated_run_b = contents.gsub!(/(\s+)#{@old_file}(\s+)/, "\\1#{@new_file}\\2")
50
- if updated_instance_b
51
- puts "Updating call to #{@old_file} to #{@new_file} in #{file.to_s}"
52
- end
53
-
54
- #Update File
55
- if updated_instance_b or updated_include_b or updated_run_b
56
- write_file_to_string( file, contents )
57
- end
58
-
59
-
60
- end
61
-
62
- end
63
-
64
- def rename_module
65
-
66
- #find the correct file first
67
- puts @old_name
68
-
69
- file_to_rename = @path_files.find_by_module( @old_name )
70
-
71
- file_to_rename.contents.gsub!(/(^\s*module )#{@old_name}(\s+|;|\()/i, "\\1#{@new_name}\\2")
72
-
73
- extension = ::File.extname( file_to_rename.filename )
74
-
75
- #Need to change file name but keep extension
76
- file_to_rename.filename = @new_name + extension
77
-
78
- pp file_to_rename
79
-
80
- #Save file, will use new name.
81
-
82
- #Delete Old file
83
-
84
- #Update other files refferencing it.
85
-
86
-
87
- #file_contents = Verilog::FileReader.get_file_as_string( new_file )
88
-
89
- #file_contents
90
-
91
- # if updated_b
92
- # Verilog::FileReader.write_file_to_string( new_file, file_contents )
93
- # end
94
- end
95
-
96
- def find_rename_verilog_file
97
- old_file, ext = find_module_file( @old_name )
98
-
99
- if old_file
100
- new_file = @new_name + ext
101
- puts "Moving #{old_file} to #{new_file}"
102
- FileUtils.move( old_file, new_file )
103
- else
104
- #Old_filename does not exists
105
- # This could be second tim running script.
106
- # Look for newfile incase already moved.
107
- new_file, ext = find_module_file( @new_name )
108
- end
109
-
110
- return [old_file, new_file]
111
- end
112
-
113
- end
114
-
115
-
116
- end
117
-
118
- if $0 == __FILE__
119
- #puts "Running Verilog Rename"
120
- #operate on current directory (future parse testbench.f)
121
- this_dir = Dir.pwd
122
-
123
- #Parameter 1 old_name
124
- old_name = ARGV[0]
125
- #Parameter 2 new_name
126
- new_name = ARGV[1]
127
-
128
- a = Verilog::Rename::File.new(this_dir, old_name, new_name)
129
- a.rename
130
- end
@@ -1,195 +0,0 @@
1
- require 'FileUtils'
2
- require 'pp'
3
-
4
- module Verilog
5
-
6
- EXTENSIONS = [".v", ".bh.v", ".sv"]
7
-
8
- class File
9
- attr_reader :path
10
- attr_reader :file_name
11
- attr_reader :ext
12
-
13
- def initialise( path, file_name="", ext="" )
14
- #TODO if path is a file then create file_name and ext
15
- @path = path
16
- @file_name = file_name
17
- #TODO check ext starts with .
18
- @ext = ext
19
- end
20
-
21
- def absolute_path
22
- File.join( File.expand_path( path ), file_name ext )
23
- end
24
-
25
- def read
26
- if File.exist?( absolute_path )
27
- data = ''
28
- f = File.open(absolute_path, "r")
29
- f.each_line do |line|
30
- data += line
31
- end
32
- f.close
33
- return data
34
- else
35
- #TODO raise correct exception here
36
- puts "ERROR File Not Found #{absolute_path}"
37
- end
38
-
39
- end
40
-
41
- def save( contents )
42
- f = File.open(absolute_path, "w")
43
- f.write(contents)
44
- f.close
45
- end
46
-
47
-
48
- end
49
-
50
- class PathFiles
51
- attr_reader :files
52
-
53
- def initalize( path="" )
54
- @files = []
55
- load_path( path )
56
- end
57
-
58
- def load_path( paths )
59
- #path is single string or array of strings
60
- paths.each do |path|
61
- files = Dir.glob('*.*')
62
- files.each do |file|
63
- #Skip if Directory got passed *.* Filter
64
- next if File.directory?( file )
65
-
66
- file_extension = File.extname(file)
67
- name = File.basename(file,file_extension)
68
- @files << Verilog::File.new(path, name, file_extension)
69
-
70
- end
71
- end
72
- end
73
-
74
- def <<( item )
75
- @files
76
- end
77
-
78
- def find_module( name )
79
- result = @files.select { |file| file.file_name == name }
80
-
81
- if result.size == 1
82
- return result
83
- else
84
- #TODO Fall back to scanning all files for module declarations
85
- return false
86
- end
87
- end
88
-
89
-
90
- end
91
-
92
-
93
-
94
- module Rename
95
- class Rename
96
- attr_reader :dir, :old_name, :new_name
97
- attr_reader :old_file, :new_file
98
-
99
-
100
- def initialize(this_dir, old_name, new_name)
101
- @dir = this_dir
102
- @old_name = old_name
103
- @new_name = new_name
104
- end
105
-
106
- def rename
107
- @old_file, @new_file = find_rename_verilog_file
108
-
109
- #Analyse file and rename module
110
- rename_module( @new_file )
111
-
112
- update_refferences
113
- end
114
-
115
- def update_refferences
116
- files = Dir.glob('*.*')
117
- #puts "File list searching for insatances of #{@old_name}"
118
- files.each do |file|
119
- next if File.directory?( file )
120
- contents = Verilog::FileReader.get_file_as_string( file )
121
-
122
- #Update Instatiations
123
- updated_instance_b = contents.gsub!(/(^\s*)#{@old_name}(\s\w+\s*\()/i, "\\1#{@new_name}\\2")
124
- if updated_instance_b
125
- puts "Updating instantiation of #{@old_name} to #{@new_name} in #{file.to_s}"
126
- end
127
-
128
- #Update inculde
129
- ## want filename of file being moved
130
- updated_include_b = contents.gsub!(/(^\s*`include [\'\"])#{@old_file}([\'\"])/i, "\\1#{@new_file}\\2")
131
- if updated_include_b
132
- puts "Updating include of #{@old_file} to #{@new_file} in #{file.to_s}"
133
- end
134
-
135
-
136
- #Update lines in *.do runscripts
137
- updated_run_b = contents.gsub!(/(\s+)#{@old_file}(\s+)/, "\\1#{@new_file}\\2")
138
- if updated_instance_b
139
- puts "Updating call to #{@old_file} to #{@new_file} in #{file.to_s}"
140
- end
141
-
142
- #Update File
143
- if updated_instance_b or updated_include_b or updated_run_b
144
- write_file_to_string( file, contents )
145
- end
146
-
147
-
148
- end
149
-
150
- end
151
-
152
- def rename_module( new_file )
153
- file_contents = Verilog::FileReader.get_file_as_string( new_file )
154
-
155
- updated_b = file_contents.gsub!(/(^\s*module )#{@old_name}(\s+|;|\()/i, "\\1#{@new_name}\\2")
156
-
157
- if updated_b
158
- Verilog::FileReader.write_file_to_string( new_file, file_contents )
159
- end
160
- end
161
-
162
- def find_rename_verilog_file
163
- old_file, ext = find_module_file( @old_name )
164
-
165
- if old_file
166
- new_file = @new_name + ext
167
- puts "Moving #{old_file} to #{new_file}"
168
- FileUtils.move( old_file, new_file )
169
- else
170
- #Old_filename does not exists
171
- # This could be second tim running script.
172
- # Look for newfile incase already moved.
173
- new_file, ext = find_module_file( @new_name )
174
- end
175
-
176
- return [old_file, new_file]
177
- end
178
-
179
- end
180
- end
181
- end
182
-
183
- if $0 == __FILE__
184
- #puts "Running Verilog Rename"
185
- #operate on current directory (future parse testbench.f)
186
- this_dir = Dir.pwd
187
-
188
- #Parameter 1 old_name
189
- old_name = ARGV[0]
190
- #Parameter 2 new_name
191
- new_name = ARGV[1]
192
-
193
- a = Verilog::Rename::File.new(this_dir, old_name, new_name)
194
- a.rename
195
- end