lib/dbt.rb in dbt-1.1.5 vs lib/dbt.rb in dbt-1.2.0
- old
+ new
@@ -1,72 +1,15 @@
# coding: utf-8
+require 'dbt/version'
+require 'dbt/android'
+require 'dbt/ios'
module DBT
module_function
def analyze(app)
- debugger_cmds_output = ''
- dependers = Hash.new { |hash,key| hash[key] = [] }
- providers = {}
- default_providers = {}
-
- files = app.files.flatten.uniq
- files.flatten.each do |filename|
- File.open(filename, 'r:UTF-8') do |file|
- file.each_line do |line|
- command = false
-
- if line =~ /^#--+>/
- command, dep = line.rstrip.sub(/^#--+> */, '').split(' ', 2)
- elsif line =~ /^[ \t]*#[ \t]*@(provides|requires)/
- command, dep = line.rstrip.sub(/^[ \t]*#[ \t]*@/, '').split(' ', 2)
- end
-
- if command
- case command
- when 'break'
- dep ||= file.lineno + 1
- debugger_cmds_output += "breakpoint set --file #{File.basename filename} --line #{dep}\n"
- when 'provides'
- if providers.key? dep
- puts "\033[1m!HAY DEMASIADOS!\033[0m \033[1;31m#{dep}\033[0m"
- end
- providers[dep] = filename
- when 'requires'
- dependers[filename] << dep
- else
- puts "\033[1m!NO COMPRENDO!\033[0m \"#{command} #{dep}\""
- puts "\033[1;31m#{filename}:#{file.lineno}\033[0m"
- end
- elsif line =~ /^[ \t]*class[ \t]+(\w+)/
- dep = "class:#{$1}"
- default_providers[dep] = filename
- elsif line =~ /^[ \t]*module[ \t]+(\w+)/
- dep = "module:#{$1}"
- default_providers[dep] = filename
- end
- end
- end
- end # files
-
- default_providers.each do |dep, filename|
- providers[dep] ||= filename
- end
-
- dependers.each do |filename, dependencies|
- if dep = dependencies.find { |dep| ! providers.include? dep }
- puts "\033[1m!NO HAY!\033[0m \033[1;31m#{dep}\033[0m"
- raise "#{filename} could not find a provider for #{dep}"
- else
- app.files_dependencies filename => dependencies.map { |dep| providers[dep] }
- end
- end
-
- unless debugger_cmds_output.empty?
- File.open('debugger_cmds', 'w') do |file|
- file.write "#------> Creado por el DBT <------#\n"
- file.write debugger_cmds_output
- end
- end
+ android = app.respond_to?(:main_activity)
+ DBT::Android.analyze(app) if android
+ DBT::IOS.analyze(app) unless android
end
end
Motion::Project::App.setup do |app|