Menu

#343 astyle ruins Ruby code

closed
None
2015-03-25
2015-03-24
No

astyle drops Ruby 1.9+ hash keys, and indents code way too deep as a result.

Configuration:

$ cat .astylerc 
# ln -s .../.astylerc $HOME/.astylerc

--style=google

--lineend=linux

--indent=spaces=2

--add-brackets 

--align-pointer=middle
--align-reference=name

--max-code-length=80

--pad-oper
--unpad-paren

Original:

$ cat Rakefile 
task :default => :lint

task :ruby => [] do
  begin
    sh 'find . -name \'*.rb\' -exec \
ruby -wc {} 2>&1 \; | \
grep -v "Syntax OK" | \
grep -v openssl | \
grep -v rubygems; \
done'
  rescue
  end
end

task :reek => [] do
  sh 'bundle exec reek -q .; true'
end

task :flay => [] do
  sh 'bundle exec flay .'
end

task :roodi => [] do
  sh 'bundle exec roodi -config=roodi.yml *.rb **/*.rb'
end

task :cane => [] do
  sh 'bundle exec cane -f *.rb; bundle exec cane **/*.rb'
end

task :excellent => [] do
  sh 'bundle exec excellent .'
end

task :rubocop => [] do
  sh 'bundle exec rubocop **/*.rb **/*.erb **/Guardfile*'
end

task :tailor => [] do
  sh 'bundle exec tailor'
end

task :cowl => [] do
  sh 'cowl .'
end

task :gtdlint => [] do
  sh 'gtdlint .'
end

task :lili => [] do
  sh 'bundle exec lili .'
end

task :editorconfig=> [] do
  sh 'find . -type f -name Thumbs.db -prune -o -type f -name .DS_Store -prune -o -type d -name .git -prune -o -type f -name .gitmodules -prune -o -type d -name .hg -prune -o -type d -name .svn -prune -o -type d -name tmp -prune -o -type d -name bin -prune -o -type d -name target -prune -o -name "*.app*" -prune -o -type d -name node_modules -prune -o -type d -name bower_components -prune -o -type f -name "*[-.]min.js" -prune -o -type d -name "*.dSYM" -prune -o -type f -name "*.scpt" -prune -o -type d -name "*.xcodeproj" -prune -o -type d -name .vagrant -prune -o -type f -name .exe -prune -o -type f -name "*.o" -prune -o -type f -name "*.pyc" -prune -o -type f -name "*.hi" -prune -o -type f -name "*.beam" -prune -o -type f -name "*.png" -prune -o -type f -name "*.gif" -prune -o -type f -name "*.jp*g" -prune -o -type f -name "*.ico" -prune -o -type f -name "*.ttf" -prune -o -type f -name "*.zip" -prune -o -type f -name "*.jar" -prune -o -type f -name "*.dot" -prune -o -type f -name "*.pdf" -prune -o -type f -name "*.wav" -prune -o -type f -name "*.mp[34]" -prune -o -type f -name "*.svg" -prune -o -type f -name "*.flip" -prune -o -type f -name "*.class" -prune -o -type f -name "*.cmi" -prune -o -type f -name "*.cmo" -prune -o -type f -name "*.gem" -prune -o -type f -name "*.jad" -prune -o -type d -name .idea -prune -o -type f -name "*.iml" -prune -o -type f -name "*.log" -prune -o -type f -name "*" -exec node_modules/editorconfig-tools/bin/index.js check {} \\;'
end

task :lint => [
  :ruby,
  :reek,
  :flay,
  :roodi,
  :cane,
  :excellent,
  :rubocop,
  :tailor,
  :cowl,
  :gtdlint,
  :lili,
  :editorconfig
] do
end

Trace:

$ astyle < Rakefile
task :
default => : lint

  task : ruby => [] do
    begin
    sh 'find . -name \'*.rb\' -exec \
ruby -wc {} 2>&1 \; | \
grep -v "Syntax OK" | \
grep -v openssl | \
grep -v rubygems; \
done'
    rescue
    end
    end

task :
    reek => [] do
      sh 'bundle exec reek -q .; true'
      end

task :
      flay => [] do
        sh 'bundle exec flay .'
        end

task :
        roodi => [] do
          sh 'bundle exec roodi -config=roodi.yml *.rb **/*.rb'
          end

task :
          cane => [] do
            sh 'bundle exec cane -f *.rb; bundle exec cane **/*.rb'
            end

task :
            excellent => [] do
              sh 'bundle exec excellent .'
              end

task :
              rubocop => [] do
                sh 'bundle exec rubocop **/*.rb **/*.erb **/Guardfile*'
                end

task :
                tailor => [] do
                  sh 'bundle exec tailor'
                  end

task :
                  cowl => [] do
                    sh 'cowl .'
                    end

task :
                    gtdlint => [] do
                      sh 'gtdlint .'
                      end

task :
                      lili => [] do
                        sh 'bundle exec lili .'
                        end

task :
                        editorconfig => [] do
                          sh 'find . -type f -name Thumbs.db -prune -o -type f -name .DS_Store -prune -o -type d -name .git -prune -o -type f -name .gitmodules -prune -o -type d -name .hg -prune -o -type d -name .svn -prune -o -type d -name tmp -prune -o -type d -name bin -prune -o -type d -name target -prune -o -name "*.app*" -prune -o -type d -name node_modules -prune -o -type d -name bower_components -prune -o -type f -name "*[-.]min.js" -prune -o -type d -name "*.dSYM" -prune -o -type f -name "*.scpt" -prune -o -type d -name "*.xcodeproj" -prune -o -type d -name .vagrant -prune -o -type f -name .exe -prune -o -type f -name "*.o" -prune -o -type f -name "*.pyc" -prune -o -type f -name "*.hi" -prune -o -type f -name "*.beam" -prune -o -type f -name "*.png" -prune -o -type f -name "*.gif" -prune -o -type f -name "*.jp*g" -prune -o -type f -name "*.ico" -prune -o -type f -name "*.ttf" -prune -o -type f -name "*.zip" -prune -o -type f -name "*.jar" -prune -o -type f -name "*.dot" -prune -o -type f -name "*.pdf" -prune -o -type f -name "*.wav" -prune -o -type f -name "*.mp[34]" -prune -o -type f -name "*.svg" -prune -o -type f -name "*.flip" -prune -o -type f -name "*.class" -prune -o -type f -name "*.cmi" -prune -o -type f -name "*.cmo" -prune -o -type f -name "*.gem" -prune -o -type f -name "*.jad" -prune -o -type d -name .idea -prune -o -type f -name "*.iml" -prune -o -type f -name "*.log" -prune -o -type f -name "*" -exec node_modules/editorconfig-tools/bin/index.js check {} \\;'
                          end

task :
                          lint => [
                            :ruby,
                            :reek,
                            :flay,
                            :roodi,
                            :cane,
                            :excellent,
                            :rubocop,
                            :tailor,
                            :cowl,
                            :gtdlint,
                            :lili,
                            :editorconfig
                          ] do
                            end

Discussion

  • Anonymous

    Anonymous - 2015-03-24

    I get the impression that astyle is only meant to format C-family code, not Ruby code.

    Feel free to close this.

     
  • Jim Pattee

    Jim Pattee - 2015-03-25

    Artistic Style supports r C, C++, C++/CLI, Objective‑C, C#, and Java Source Code.

     
  • Jim Pattee

    Jim Pattee - 2015-03-25
    • status: open --> closed
    • assigned_to: Jim Pattee
    • Priority: 5 --> 7
     

Log in to post a comment.