lib/sugarcube.rb in sugarcube-2.1.0 vs lib/sugarcube.rb in sugarcube-2.1.1

- old
+ new

@@ -1,19 +1,76 @@ -require File.join(File.dirname(__FILE__), 'sugarcube-core.rb') +unless defined?(Motion::Project::Config) + raise 'The sugarcube gem must be required within a RubyMotion project Rakefile.' +end module SugarCube module_function def ios_only!(package) - unless App.template.to_s =~ /ios/ + unless ios? raise "The '\033[0;1msugarcube-#{package}\033[0m' package is only available on iOS." end end def osx_only!(package) - unless App.template.to_s == /osx/ + unless osx? raise "The '\033[0;1msugarcube-#{package}\033[0m' package is only available on OS X." end end + def cocoa_only!(package) + unless cocoa? + raise "The '\033[0;1msugarcube-#{package}\033[0m' package is only available on OS X or iOS." + end + end + + def ios? + App.template.to_s =~ /ios/ + end + + def osx? + App.template.to_s =~ /osx/ + end + + def android? + App.template.to_s =~ /android/ + end + + def cocoa? + ios? || osx? + end + + def platform + if ios? + 'ios' + elsif osx? + 'osx' + elsif android? + 'android' + else + App.template.to_s + end + end + end + +Motion::Project::App.setup do |app| + # scans app.files until it finds app/ (the default) + # if found, it inserts just before those files, otherwise it will insert to + # the end of the list + insert_point = app.files.find_index { |file| file =~ /^(?:\.\/)?app\// } || 0 + + app.files.insert(insert_point, File.join(File.dirname(__FILE__), 'version.rb')) + Dir.glob(File.join(File.dirname(__FILE__), SugarCube.platform, 'sugarcube/**/*.rb')).reverse.each do |file| + app.files.insert(insert_point, file) + end + Dir.glob(File.join(File.dirname(__FILE__), 'cocoa/sugarcube/**/*.rb')).reverse.each do |file| + app.files.insert(insert_point, file) + end + Dir.glob(File.join(File.dirname(__FILE__), 'all/sugarcube/**/*.rb')).reverse.each do |file| + app.files.insert(insert_point, file) + end +end + +require File.join(File.dirname(__FILE__), 'sugarcube-coregraphics.rb') +require File.join(File.dirname(__FILE__), 'sugarcube-to_s.rb')