Merge branch 'develop' of github.com:martini/zammad into develop
Conflicts: app/controllers/tickets_controller.rb
This commit is contained in:
commit
a95185fcb8
24 changed files with 302 additions and 591 deletions
|
@ -35,15 +35,17 @@ class ApplicationController < ActionController::Base
|
|||
# text/plain.
|
||||
|
||||
def cors_preflight_check
|
||||
if request.method == 'OPTIONS'
|
||||
|
||||
return if request.method != 'OPTIONS'
|
||||
|
||||
headers['Access-Control-Allow-Origin'] = '*'
|
||||
headers['Access-Control-Allow-Methods'] = 'POST, GET, PUT, DELETE, OPTIONS'
|
||||
headers['Access-Control-Allow-Headers'] = 'Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control, Accept-Language'
|
||||
headers['Access-Control-Max-Age'] = '1728000'
|
||||
headers['Access-Control-Allow-Credentials'] = 'true'
|
||||
render text: '', content_type: 'text/plain'
|
||||
return false
|
||||
end
|
||||
|
||||
false
|
||||
end
|
||||
|
||||
private
|
||||
|
@ -90,10 +92,10 @@ class ApplicationController < ActionController::Base
|
|||
end
|
||||
|
||||
# fill user agent
|
||||
if !session[:user_agent]
|
||||
return if session[:user_agent]
|
||||
|
||||
session[:user_agent] = request.env['HTTP_USER_AGENT']
|
||||
end
|
||||
end
|
||||
|
||||
def authentication_check_only
|
||||
|
||||
|
|
|
@ -159,7 +159,8 @@ class TicketArticlesController < ApplicationController
|
|||
)
|
||||
|
||||
# find file
|
||||
if list
|
||||
return if !list
|
||||
|
||||
file = Store.find(list.first)
|
||||
send_data(
|
||||
file.content,
|
||||
|
@ -168,6 +169,5 @@ class TicketArticlesController < ApplicationController
|
|||
disposition: 'inline'
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -531,6 +531,7 @@ class TicketsController < ApplicationController
|
|||
|
||||
# remove attachments from upload cache
|
||||
return if !form_id
|
||||
|
||||
Store.remove(
|
||||
object: 'UploadCache',
|
||||
o_id: form_id,
|
||||
|
|
|
@ -44,12 +44,12 @@ class ApplicationModel < ActiveRecord::Base
|
|||
@@import_class_list = ['Ticket', 'Ticket::Article', 'History', 'Ticket::State', 'Ticket::StateType', 'Ticket::Priority', 'Group', 'User', 'Role' ]
|
||||
|
||||
def check_attributes_protected
|
||||
if !Setting.get('system_init_done') || ( Setting.get('import_mode') && @@import_class_list.include?( self.class.to_s ) )
|
||||
|
||||
# do noting, use id as it is
|
||||
else
|
||||
return if !Setting.get('system_init_done') || ( Setting.get('import_mode') && @@import_class_list.include?( self.class.to_s ) )
|
||||
|
||||
self[:id] = nil
|
||||
end
|
||||
end
|
||||
|
||||
=begin
|
||||
|
||||
|
@ -197,15 +197,16 @@ returns
|
|||
self.updated_by_id = UserInfo.current_user_id
|
||||
end
|
||||
end
|
||||
if self.class.column_names.include? 'created_by_id'
|
||||
if UserInfo.current_user_id
|
||||
|
||||
return if !self.class.column_names.include? 'created_by_id'
|
||||
|
||||
return if !UserInfo.current_user_id
|
||||
|
||||
if self.created_by_id && self.created_by_id != UserInfo.current_user_id
|
||||
logger.info "NOTICE create - self.created_by_id is different: #{self.created_by_id.to_s}/#{UserInfo.current_user_id.to_s}"
|
||||
end
|
||||
self.created_by_id = UserInfo.current_user_id
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
=begin
|
||||
|
||||
|
@ -223,10 +224,10 @@ returns
|
|||
|
||||
def fill_up_user_update
|
||||
return if !self.class.column_names.include? 'updated_by_id'
|
||||
if UserInfo.current_user_id
|
||||
return if !UserInfo.current_user_id
|
||||
|
||||
self.updated_by_id = UserInfo.current_user_id
|
||||
end
|
||||
end
|
||||
|
||||
def cache_update(o)
|
||||
# puts 'u ' + self.class.to_s
|
||||
|
@ -268,13 +269,14 @@ returns
|
|||
key = self.class.to_s + ':f:' + self.name.to_s
|
||||
Cache.delete( key.to_s )
|
||||
end
|
||||
if self[:login]
|
||||
|
||||
return if !self[:login]
|
||||
|
||||
key = self.class.to_s + '::' + self.login.to_s
|
||||
Cache.delete( key.to_s )
|
||||
key = self.class.to_s + ':f:' + self.login.to_s
|
||||
Cache.delete( key.to_s )
|
||||
end
|
||||
end
|
||||
|
||||
def self.cache_set(data_id, data, full = false)
|
||||
if !full
|
||||
|
@ -962,10 +964,10 @@ store attachments for this object
|
|||
self.attachments_buffer = attachments
|
||||
|
||||
# update if object already exists
|
||||
if self.id && self.id != 0
|
||||
return if !( self.id && self.id != 0 )
|
||||
|
||||
attachments_buffer_check
|
||||
end
|
||||
end
|
||||
|
||||
=begin
|
||||
|
||||
|
|
|
@ -91,8 +91,9 @@ class Channel::IMAP < Channel::EmailParser
|
|||
end
|
||||
|
||||
def disconnect
|
||||
if @imap
|
||||
|
||||
return if !@imap
|
||||
|
||||
@imap.disconnect()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -72,9 +72,10 @@ class Channel::POP3 < Channel::EmailParser
|
|||
end
|
||||
|
||||
def disconnect
|
||||
if @pop
|
||||
|
||||
return if !@pop
|
||||
|
||||
@pop.finish
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -13,10 +13,11 @@ class Channel::TWITTER2
|
|||
end
|
||||
|
||||
def disconnect
|
||||
if @client
|
||||
|
||||
return if !@client
|
||||
|
||||
@client = nil
|
||||
end
|
||||
end
|
||||
|
||||
def fetch (channel)
|
||||
|
||||
|
@ -288,7 +289,8 @@ class Channel::TWITTER2
|
|||
return dm
|
||||
end
|
||||
|
||||
if attr[:type] == 'twitter status'
|
||||
return if attr[:type] != 'twitter status'
|
||||
|
||||
message = client.update(
|
||||
attr[:body].to_s,
|
||||
{
|
||||
|
@ -298,6 +300,4 @@ class Channel::TWITTER2
|
|||
# puts message.inspect
|
||||
return message
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
|
|
@ -15,11 +15,12 @@ class Observer::Session < ActiveRecord::Observer
|
|||
def check(record)
|
||||
return if !record.data
|
||||
return if record[:request_type]
|
||||
|
||||
# remember request type
|
||||
if record.data['request_type']
|
||||
return if !record.data['request_type']
|
||||
|
||||
record[:request_type] = record.data['request_type']
|
||||
record.data.delete('request_type')
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -44,7 +44,9 @@ class Observer::Ticket::Article::CommunicateEmail::BackgroundJob
|
|||
recipient_list += record[key]
|
||||
end
|
||||
}
|
||||
if recipient_list != ''
|
||||
|
||||
return if recipient_list == ''
|
||||
|
||||
History.add(
|
||||
o_id: record.id,
|
||||
history_type: 'email',
|
||||
|
@ -56,5 +58,4 @@ class Observer::Ticket::Article::CommunicateEmail::BackgroundJob
|
|||
created_by_id: record.created_by_id,
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -14,9 +14,9 @@ class Observer::Ticket::Article::FillupFromGeneral < ActiveRecord::Observer
|
|||
return if sender['name'] == 'Customer'
|
||||
|
||||
# set from if not given
|
||||
if !record.from
|
||||
return if record.from
|
||||
|
||||
user = User.find( record.created_by_id )
|
||||
record.from = "#{user.firstname} #{user.lastname}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -31,7 +31,7 @@ class Observer::Ticket::LastContact < ActiveRecord::Observer
|
|||
end
|
||||
|
||||
# if sender is not agent
|
||||
if sender.name == 'Agent'
|
||||
return if sender.name != 'Agent'
|
||||
|
||||
# set last_contact_agent
|
||||
record.ticket.last_contact_agent = record.created_at
|
||||
|
@ -42,5 +42,4 @@ class Observer::Ticket::LastContact < ActiveRecord::Observer
|
|||
# save ticket
|
||||
record.ticket.save
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -128,7 +128,8 @@ class Observer::Ticket::Notification::BackgroundJob
|
|||
end
|
||||
|
||||
# add history record
|
||||
if recipient_list != ''
|
||||
return if recipient_list == ''
|
||||
|
||||
History.add(
|
||||
o_id: ticket.id,
|
||||
history_type: 'notification',
|
||||
|
@ -137,7 +138,6 @@ class Observer::Ticket::Notification::BackgroundJob
|
|||
created_by_id: ticket.updated_by_id || 1
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
def human_changes(user, record)
|
||||
|
||||
|
|
|
@ -40,8 +40,8 @@ class Observer::Ticket::RefObjectTouch < ActiveRecord::Observer
|
|||
end
|
||||
|
||||
# touch new/current organization
|
||||
if record.organization
|
||||
return if !record.organization
|
||||
|
||||
record.organization.touch
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -42,9 +42,10 @@ class Observer::Ticket::UserTicketCounter < ActiveRecord::Observer
|
|||
need_update = true
|
||||
customer[:preferences][:tickets_closed] = tickets_closed
|
||||
end
|
||||
if need_update
|
||||
|
||||
return if !need_update
|
||||
|
||||
customer.save
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -58,10 +58,11 @@ class Setting < ApplicationModel
|
|||
self.state_initial = self.state
|
||||
end
|
||||
def state_check
|
||||
if self.state || self.state == false
|
||||
if !self.state.respond_to?('has_key?') || !self.state.has_key?(:value)
|
||||
|
||||
return if !(self.state || self.state == false)
|
||||
|
||||
return if !( !self.state.respond_to?('has_key?') || !self.state.has_key?(:value) )
|
||||
|
||||
self.state = { value: self.state }
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -201,22 +201,24 @@ returns
|
|||
end
|
||||
|
||||
def check_title
|
||||
if self.title
|
||||
|
||||
return if !self.title
|
||||
|
||||
self.title.gsub!(/\s|\t|\r/, ' ')
|
||||
end
|
||||
end
|
||||
|
||||
def check_defaults
|
||||
if !self.owner_id
|
||||
self.owner_id = 1
|
||||
end
|
||||
if self.customer_id
|
||||
|
||||
return if !self.customer_id
|
||||
|
||||
customer = User.find( self.customer_id )
|
||||
if self.organization_id != customer.organization_id
|
||||
return if self.organization_id == customer.organization_id
|
||||
|
||||
self.organization_id = customer.organization_id
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def reset_pending_time
|
||||
|
||||
|
@ -228,10 +230,10 @@ returns
|
|||
current_state_type = Ticket::StateType.lookup( id: current_state.state_type_id )
|
||||
|
||||
# in case, set pending_time to nil
|
||||
if current_state_type.name !~ /^pending/i
|
||||
return if current_state_type.name =~ /^pending/i
|
||||
|
||||
self.pending_time = nil
|
||||
end
|
||||
end
|
||||
|
||||
def destroy_dependencies
|
||||
|
||||
|
|
|
@ -30,10 +30,11 @@ class Ticket::Article < ApplicationModel
|
|||
private
|
||||
|
||||
def check_subject
|
||||
if self.subject
|
||||
|
||||
return if !self.subject
|
||||
|
||||
self.subject.gsub!(/\s|\t|\r/, ' ')
|
||||
end
|
||||
end
|
||||
|
||||
class Flag < ApplicationModel
|
||||
end
|
||||
|
|
|
@ -152,11 +152,12 @@ returns
|
|||
if sla_selected.close_time && self.close_time_in_min
|
||||
self.close_time_diff_in_min = sla_selected.close_time - self.close_time_in_min
|
||||
end
|
||||
if self.changed?
|
||||
|
||||
return if !self.changed?
|
||||
|
||||
self.callback_loop = true
|
||||
self.save
|
||||
end
|
||||
end
|
||||
|
||||
=begin
|
||||
|
||||
|
|
|
@ -168,10 +168,10 @@ translate strings in ruby context, e. g. for notifications
|
|||
|
||||
private
|
||||
def set_initial
|
||||
if !target_initial
|
||||
|
||||
return if target_initial
|
||||
self.target_initial = self.target
|
||||
end
|
||||
end
|
||||
def cache_clear
|
||||
Cache.delete( 'Translation::' + self.locale.downcase )
|
||||
end
|
||||
|
|
|
@ -449,10 +449,11 @@ returns
|
|||
end
|
||||
|
||||
def check_email
|
||||
if self.email
|
||||
|
||||
return if !self.email
|
||||
|
||||
self.email = self.email.downcase
|
||||
end
|
||||
end
|
||||
|
||||
def check_login
|
||||
|
||||
|
@ -469,7 +470,8 @@ returns
|
|||
end
|
||||
|
||||
# check if login already exists
|
||||
if self.login
|
||||
return if !self.login
|
||||
|
||||
self.login = self.login.downcase
|
||||
check = true
|
||||
while check
|
||||
|
@ -481,7 +483,6 @@ returns
|
|||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def avatar_check
|
||||
|
||||
|
@ -499,11 +500,11 @@ returns
|
|||
)
|
||||
|
||||
# update user link
|
||||
if avatar
|
||||
return if !avatar
|
||||
|
||||
self.update_column( :image, avatar.store_hash )
|
||||
self.cache_delete
|
||||
end
|
||||
end
|
||||
|
||||
def avatar_destroy
|
||||
Avatar.remove( 'User', self.id )
|
||||
|
@ -524,9 +525,9 @@ returns
|
|||
end
|
||||
|
||||
# crypt password if not already crypted
|
||||
if self.password && self.password !~ /^\{sha2\}/
|
||||
return if !( self.password && self.password !~ /^\{sha2\}/ )
|
||||
|
||||
crypted = Digest::SHA2.hexdigest( self.password )
|
||||
self.password = "{sha2}#{crypted}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,7 +5,9 @@ class UpdateOverviewAndTicketState < ActiveRecord::Migration
|
|||
overview_role = Role.where( name: 'Agent' ).first
|
||||
add_column :ticket_states, :next_state_id, :integer, null: true
|
||||
UserInfo.current_user_id = 1
|
||||
if overview_role
|
||||
|
||||
return true if !overview_role
|
||||
|
||||
Overview.create_or_update(
|
||||
name: 'My pending reached Tickets',
|
||||
link: 'my_pending_reached',
|
||||
|
@ -120,7 +122,6 @@ class UpdateOverviewAndTicketState < ActiveRecord::Migration
|
|||
updated_by_id: 1,
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
def down
|
||||
end
|
||||
|
|
|
@ -2,7 +2,9 @@ class UpdateOverview2 < ActiveRecord::Migration
|
|||
def up
|
||||
|
||||
overview_role = Role.where( name: 'Agent' ).first
|
||||
if overview_role
|
||||
|
||||
return true if !overview_role
|
||||
|
||||
UserInfo.current_user_id = 1
|
||||
Overview.create_or_update(
|
||||
name: 'My assigned Tickets',
|
||||
|
@ -25,7 +27,6 @@ class UpdateOverview2 < ActiveRecord::Migration
|
|||
},
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
def down
|
||||
end
|
||||
|
|
|
@ -1,224 +0,0 @@
|
|||
#!/usr/bin/ruby -w
|
||||
=begin
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2008, Paul Lutus *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, write to the *
|
||||
* Free Software Foundation, Inc., *
|
||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||
***************************************************************************/
|
||||
=end
|
||||
|
||||
PVERSION = 'Version 2.9, 10/24/2008'
|
||||
|
||||
module RBeautify
|
||||
|
||||
# user-customizable values
|
||||
|
||||
RBeautify::TabStr = ' '
|
||||
RBeautify::TabSize = 2
|
||||
|
||||
# indent regexp tests
|
||||
|
||||
IndentExp = [
|
||||
/^module\b/,
|
||||
/^class\b/,
|
||||
/^if\b/,
|
||||
/[A-z]\($/,
|
||||
/(=\s*|^)until\b/,
|
||||
/(=\s*|^)for\b/,
|
||||
/^unless\b/,
|
||||
/(=\s*|^)while\b/,
|
||||
/(=\s*|^)begin\b/,
|
||||
/(^| )case\b/,
|
||||
/\bthen\b/,
|
||||
/^rescue\b/,
|
||||
/^def\b/,
|
||||
/\bdo\b/,
|
||||
/^else\b/,
|
||||
/^elsif\b/,
|
||||
/^ensure\b/,
|
||||
/\bwhen\b/,
|
||||
/\{[^\}]*$/,
|
||||
/\[[^\]]*$/
|
||||
]
|
||||
|
||||
# outdent regexp tests
|
||||
|
||||
OutdentExp = [
|
||||
/^rescue\b/,
|
||||
/^ensure\b/,
|
||||
/^elsif\b/,
|
||||
/^\)$/,
|
||||
/^\);$/,
|
||||
/^\)\./,
|
||||
/^end\b/,
|
||||
/^else\b/,
|
||||
/\bwhen\b/,
|
||||
/^[^\{]*\}/,
|
||||
/^[^\[]*\]/
|
||||
]
|
||||
|
||||
def RBeautify.rb_make_tab(tab)
|
||||
return (tab < 0)?'':TabStr * TabSize * tab
|
||||
end
|
||||
|
||||
def RBeautify.rb_add_line(line,tab)
|
||||
line.strip!
|
||||
line = rb_make_tab(tab) + line if line.length > 0
|
||||
return line
|
||||
end
|
||||
|
||||
def RBeautify.beautify_string(source, path = '')
|
||||
comment_block = false
|
||||
in_here_doc = false
|
||||
here_doc_term = ''
|
||||
program_end = false
|
||||
multiLine_array = []
|
||||
multiLine_str = ''
|
||||
tab = 0
|
||||
output = []
|
||||
source.each do |line|
|
||||
line.chomp!
|
||||
if(!program_end)
|
||||
# detect program end mark
|
||||
if(line =~ /^__END__$/)
|
||||
program_end = true
|
||||
else
|
||||
# combine continuing lines
|
||||
if(!(line =~ /^\s*#/) && line =~ /[^\\]\\\s*$/)
|
||||
multiLine_array.push line
|
||||
multiLine_str += line.sub(/^(.*)\\\s*$/,'\\1')
|
||||
next
|
||||
end
|
||||
|
||||
# add final line
|
||||
if(multiLine_str.length > 0)
|
||||
multiLine_array.push line
|
||||
multiLine_str += line.sub(/^(.*)\\\s*$/,'\\1')
|
||||
end
|
||||
|
||||
tline = ((multiLine_str.length > 0)?multiLine_str:line).strip
|
||||
if(tline =~ /^=begin/)
|
||||
comment_block = true
|
||||
end
|
||||
if(in_here_doc)
|
||||
in_here_doc = false if tline =~ %r{\s*#{here_doc_term}\s*}
|
||||
else # not in here_doc
|
||||
if tline =~ %r{=\s*<<}
|
||||
here_doc_term = tline.sub(%r{.*=\s*<<-?\s*([_|\w]+).*},'\\1')
|
||||
in_here_doc = here_doc_term.size > 0
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if(comment_block || program_end || in_here_doc)
|
||||
# add the line unchanged
|
||||
output << line
|
||||
else
|
||||
comment_line = (tline =~ /^#/)
|
||||
if(!comment_line)
|
||||
# throw out sequences that will
|
||||
# only sow confusion
|
||||
while tline.gsub!(/\{[^\{]*?\}/,'')
|
||||
end
|
||||
while tline.gsub!(/\[[^\[]*?\]/,'')
|
||||
end
|
||||
while tline.gsub!(/'.*?'/,'')
|
||||
end
|
||||
while tline.gsub!(/".*?"/,'')
|
||||
end
|
||||
while tline.gsub!(/\`.*?\`/,'')
|
||||
end
|
||||
while tline.gsub!(/\([^\(]*?\)/,'')
|
||||
end
|
||||
while tline.gsub!(/\/.*?\//,'')
|
||||
end
|
||||
while tline.gsub!(/%r(.).*?\1/,'')
|
||||
end
|
||||
# delete end-of-line comments
|
||||
tline.sub!(/#[^\"]+$/,'')
|
||||
# convert quotes
|
||||
tline.gsub!(/\\\"/,"'")
|
||||
OutdentExp.each do |re|
|
||||
if(tline =~ re)
|
||||
tab -= 1
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
if (multiLine_array.length > 0)
|
||||
multiLine_array.each do |ml|
|
||||
output << rb_add_line(ml,tab)
|
||||
end
|
||||
multiLine_array.clear
|
||||
multiLine_str = ''
|
||||
else
|
||||
output << rb_add_line(line,tab)
|
||||
end
|
||||
if(!comment_line)
|
||||
IndentExp.each do |re|
|
||||
if(tline =~ re && !(tline =~ /\s+end\s*$/))
|
||||
tab += 1
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if(tline =~ /^=end/)
|
||||
comment_block = false
|
||||
end
|
||||
end
|
||||
error = (tab != 0)
|
||||
STDERR.puts "Error: indent/outdent mismatch: #{tab}." if error
|
||||
return output.join("\n") + "\n",error
|
||||
end # beautify_string
|
||||
|
||||
def RBeautify.beautify_file(path)
|
||||
error = false
|
||||
if(path == '-') # stdin source
|
||||
source = STDIN.read
|
||||
dest,error = beautify_string(source,'stdin')
|
||||
print dest
|
||||
else # named file source
|
||||
source = File.read(path)
|
||||
dest,error = beautify_string(source,path)
|
||||
if(source != dest)
|
||||
# make a backup copy
|
||||
#File.open(path + "~","w") { |f| f.write(source) }
|
||||
# overwrite the original
|
||||
File.open(path,'w') { |f| f.write(dest) }
|
||||
end
|
||||
end
|
||||
return error
|
||||
end # beautify_file
|
||||
|
||||
def RBeautify.main
|
||||
error = false
|
||||
if(!ARGV[0])
|
||||
STDERR.puts "usage: Ruby filenames or \"-\" for stdin."
|
||||
exit 0
|
||||
end
|
||||
ARGV.each do |path|
|
||||
error = (beautify_file(path))?true:error
|
||||
end
|
||||
error = (error)?1:0
|
||||
exit error
|
||||
end # main
|
||||
end # module RBeautify
|
||||
|
||||
# if launched as a standalone program, not loaded as a module
|
||||
if __FILE__ == $0
|
||||
RBeautify.main
|
||||
end
|
|
@ -1,82 +0,0 @@
|
|||
#!/usr/bin/ruby
|
||||
# Copyright (C) 2012-2013 Zammad Foundation, http://zammad-foundation.org/
|
||||
|
||||
require 'tempfile'
|
||||
require 'code_beauty_ruby.rb'
|
||||
|
||||
def checkForHeader(fileName)
|
||||
foundHeader = false;
|
||||
foundSheBang = false;
|
||||
isCoffee = false;
|
||||
|
||||
header = "# Copyright (C) 2012-2014 Zammad Foundation, http://zammad-foundation.org/\n"
|
||||
if File.extname(fileName) == '.coffee'
|
||||
isCoffee = true
|
||||
end
|
||||
|
||||
# read file
|
||||
file = File.open(fileName)
|
||||
t_file = Tempfile.new('Temp')
|
||||
allLines = IO.readlines(fileName)
|
||||
|
||||
# detect file type
|
||||
if allLines[0] =~ /(^# Copyright)/ || allLines[1] =~ /(^# Copyright)/
|
||||
foundHeader = true
|
||||
elsif allLines[1] =~ /^=begin/ #assume external script
|
||||
foundHeader = true
|
||||
end
|
||||
if allLines[0] =~ /(^#!\/)/
|
||||
foundSheBang = true
|
||||
end
|
||||
|
||||
file.each do |line|
|
||||
# replace old header in script
|
||||
if file.lineno == 1 && foundSheBang && foundHeader
|
||||
t_file.puts header
|
||||
|
||||
# insert new header
|
||||
elsif file.lineno == 1 && !foundSheBang && foundHeader
|
||||
t_file.puts header
|
||||
|
||||
# insert new header
|
||||
elsif file.lineno == 1 && !foundSheBang && !foundHeader
|
||||
t_file.puts header
|
||||
t_file.puts line + "\n"
|
||||
|
||||
# insert new header into script
|
||||
elsif file.lineno == 1 && foundSheBang && !foundHeader
|
||||
t_file.puts line
|
||||
t_file.puts header + "\n"
|
||||
|
||||
# strip lines
|
||||
else
|
||||
t_file.puts line.rstrip
|
||||
end
|
||||
end
|
||||
|
||||
# rename file
|
||||
t_file.rewind
|
||||
t_file.close
|
||||
FileUtils.cp(t_file.path, fileName)
|
||||
t_file.unlink
|
||||
|
||||
# beautify ruby file
|
||||
if !isCoffee
|
||||
t_file = RBeautify.beautify_file(fileName)
|
||||
end
|
||||
end
|
||||
|
||||
#folder array
|
||||
folder = ['app/assets/javascripts/app', 'app/controllers/', 'app/models/', 'app/helpers/', 'app/mailers/' ]
|
||||
folder.each do |folder|
|
||||
puts 'Working on folder' + folder.to_s
|
||||
rbfiles = File.join("../#{folder}**", '*.{rb,coffee}')
|
||||
d = Dir.glob(rbfiles)
|
||||
|
||||
d.each {|fileName|
|
||||
puts "Working on #{fileName}"
|
||||
|
||||
#check if file header is present
|
||||
checkForHeader(fileName)
|
||||
}
|
||||
end
|
Loading…
Reference in a new issue