Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
annotate
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
open-source
annotate
Commits
1d8e273f
Commit
1d8e273f
authored
Jun 20, 2011
by
Alex Buijs
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
UTF-8 encoding hack
parent
3fae3291
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
8 additions
and
6 deletions
+8
-6
annotate_models.rb
lib/annotate/annotate_models.rb
+8
-6
No files found.
lib/annotate/annotate_models.rb
View file @
1d8e273f
module
AnnotateModels
module
AnnotateModels
class
<<
self
class
<<
self
UTF8
=
"-*- encoding: utf-8 -*-"
# Annotate Models plugin use this header
# Annotate Models plugin use this header
COMPAT_PREFIX
=
"== Schema Info"
COMPAT_PREFIX
=
"== Schema Info"
PREFIX
=
"== Schema Information"
PREFIX
=
"== Schema Information"
...
@@ -117,6 +119,7 @@ module AnnotateModels
...
@@ -117,6 +119,7 @@ module AnnotateModels
def
annotate_one_file
(
file_name
,
info_block
,
options
=
{})
def
annotate_one_file
(
file_name
,
info_block
,
options
=
{})
if
File
.
exist?
(
file_name
)
if
File
.
exist?
(
file_name
)
old_content
=
File
.
read
(
file_name
)
old_content
=
File
.
read
(
file_name
)
old_content
.
sub!
(
/^#.*encoding.*utf-8.*\n/
,
''
)
# Ignore the Schema version line because it changes with each migration
# Ignore the Schema version line because it changes with each migration
header
=
Regexp
.
new
(
/(^# Table name:.*?\n(#.*\n)*\n)/
)
header
=
Regexp
.
new
(
/(^# Table name:.*?\n(#.*\n)*\n)/
)
...
@@ -126,12 +129,11 @@ module AnnotateModels
...
@@ -126,12 +129,11 @@ module AnnotateModels
if
old_header
==
new_header
if
old_header
==
new_header
false
false
else
else
# Re
place the old schema info with the new
schema info
# Re
move old
schema info
new_content
=
old_content
.
sub
(
/^#
#{
COMPAT_PREFIX
}
.*?\n(#.*\n)*\n/
,
info_block
)
old_content
.
sub!
(
/^#
#{
COMPAT_PREFIX
}
.*?\n(#.*\n)*\n/
,
''
)
# But, if there *was* no old schema info, we simply need to insert it
if
new_content
==
old_content
# Write it back
new_content
=
options
[
:position
]
==
'before'
?
(
info_block
+
old_content
)
:
(
old_content
+
"
\n
"
+
info_block
)
new_content
=
options
[
:position
]
==
'before'
?
(
info_block
+
old_content
)
:
(
old_content
+
"
\n
"
+
info_block
)
end
File
.
open
(
file_name
,
"wb"
)
{
|
f
|
f
.
puts
new_content
}
File
.
open
(
file_name
,
"wb"
)
{
|
f
|
f
.
puts
new_content
}
true
true
...
@@ -249,7 +251,7 @@ module AnnotateModels
...
@@ -249,7 +251,7 @@ module AnnotateModels
end
end
end
end
header
=
PREFIX
.
dup
header
=
"
#{
UTF8
.
dup
}
\n
#
#{
PREFIX
.
dup
}
"
if
options
[
:include_version
]
if
options
[
:include_version
]
version
=
ActiveRecord
::
Migrator
.
current_version
rescue
0
version
=
ActiveRecord
::
Migrator
.
current_version
rescue
0
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment