class Maruto::Runner
Public Instance Methods
check_magento_folder()
click to toggle source
# File lib/maruto/runner.rb, line 162 def check_magento_folder() magento_root = Pathname.new(options[:magento_root]).cleanpath raise Thor::Error, "not a folder: #{magento_root}" unless magento_root.directory? is_magento = (magento_root + 'app').directory? && (magento_root + 'app/code').directory? && (magento_root + 'app/etc').directory? && (magento_root + 'app/etc/modules').directory? && (magento_root + 'app/etc/modules/Mage_All.xml').file? raise Thor::Error, "could not find magento in this folder: #{magento_root.realpath}#{options[:magento_root] == '.' ? ' (try -m MAGENTO_ROOT)' : ''}" unless is_magento return magento_root end
lint()
click to toggle source
# File lib/maruto/runner.rb, line 33 def lint() magento_root = check_magento_folder() # TODO move this into a lint_php method inside(magento_root) do Dir.glob( 'app/code/**/*.php' ) do |file| begin firstline = File.open(file, &:readline) # TODO return list of warnings # TODO case insensitive puts file unless firstline.start_with?("<?php") or firstline.start_with?("<?PHP") rescue # TODO return list of errors puts "error in " + file end end end end
magento?()
click to toggle source
# File lib/maruto/runner.rb, line 26 def magento?() check_magento_folder() puts "OK" end
models()
click to toggle source
# File lib/maruto/runner.rb, line 89 def models() magento_root = check_magento_folder() magento_config = Maruto::MagentoConfig.new magento_root magento_config.models.sort_by { |k, v| k }.each do |name,group| puts "#{name} #{group}" end end
modules()
click to toggle source
# File lib/maruto/runner.rb, line 103 def modules() magento_root = check_magento_folder() magento = Maruto::MagentoInstance.load(magento_root) magento[:all_modules].each do |name, m| deps = '' deps = ", dependencies:[#{m[:dependencies].collect{ |d| d.to_s }.join(', ')}]" if m[:dependencies] puts "#{name}(active:#{m[:active]}, code_pool:#{m[:code_pool]}, defined:#{m[:defined]}#{deps})" end end
observers(filter = nil)
click to toggle source
# File lib/maruto/runner.rb, line 120 def observers(filter = nil) magento_root = check_magento_folder() magento = Maruto::MagentoInstance.load(magento_root) group_by_scope = options[:group_by_scope] if group_by_scope then magento[:event_observers].each do |area, events| events.each do |event, observers| if filter.nil? or event.include? filter puts "#{area}/#{event}" observers.each do |name, observer| puts " #{name} (module:#{observer[:module]} type:#{observer[:type]} class:#{observer[:class]} method:#{observer[:method]})" end end end end else grouped_by_events = Hash.new magento[:event_observers].each do |area, events| events.each do |event, observers| grouped_by_events[event] ||= Hash.new grouped_by_events[event][area] = observers end end grouped_by_events.sort_by { |k, v| k }.each do |event, areas| if filter.nil? or event.include? filter puts "#{event}" areas.each do |area, observers| observers.each do |name, observer| puts " #{area}/#{name} (module:#{observer[:module]} type:#{observer[:type]} class:#{observer[:class]} method:#{observer[:method]})" end end end end end end
version()
click to toggle source
# File lib/maruto/runner.rb, line 13 def version say "Maruto #{Maruto::VERSION}" begin magento_root = check_magento_folder() magento = Maruto::MagentoInstance.load(magento_root) say "Magento #{magento[:version].join('.')}" rescue Thor::Error # do nothing end end
warnings()
click to toggle source
# File lib/maruto/runner.rb, line 56 def warnings() magento_root = check_magento_folder() magento_config = Maruto::MagentoConfig.new magento_root magento_config.print_warnings # next gen maruto: with_core = options[:with_core] magento = Maruto::MagentoInstance.load(magento_root) magento[:warnings].group_by { |e| e[:module] }.each do |m,module_warnings| if with_core or magento[:all_modules][m][:code_pool] != :core then puts "[module:#{m}]" module_warnings.group_by { |e| e[:file] }.each do |file,warnings| puts " [file:#{file}]" warnings.each do |w| puts " #{w[:message]}" end end end end if magento[:warnings].empty? exit 0 end exit 1 end