lib/ajaxlibs/includes_helper.rb in ajaxlibs-0.1.0 vs lib/ajaxlibs/includes_helper.rb in ajaxlibs-0.1.1

- old
+ new

@@ -17,24 +17,19 @@ # ajaxlibs_include :jquery # <script src="/javascripts/ajaxlibs/jquery/1.4.2/jquery.js?1267013480" type="text/javascript"></script> # # ajaxlibs_include :jquery, :jqueryui # <script src="/javascripts/ajaxlibs/jquery/1.4.2/jquery.js?1267013480" type="text/javascript"></script> - # <script src="/javascripts/ajaxlibs/jqueryui/1.7.2/jqueryui.js" type="text/javascript"></script> + # <script src="/javascripts/ajaxlibs/jqueryui/1.7.2/jqueryui.js?1267013480" type="text/javascript"></script> # # * Same examples as above, this time in production # ajaxlibs_include :jquery - # <script src="/javascripts/ajaxlibs/jquery/1.4.2/jquery.js?1267013480" type="text/javascript"></script> + # <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js" type="text/javascript"></script> # # ajaxlibs_include :jquery, :jqueryui - # <script type="text/javascript" src="http://www.google.com/jsapi"></script> - # <script type="text/javascript"> - # //<![CDATA[ - # google.load('jquery', '1.4.2'); - # google.load('jqueryui', '1.7.2'); - # //]]> - # </script> + # <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js" type="text/javascript"></script> + # <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js" type="text/javascript"></script> # # * Specifying version # ajaxlibs_include :prototype, :version => '1.6.0.3' # <script src="/javascripts/ajaxlibs/prototype/1.6.0.3/prototype.js?1267013480" type="text/javascript"></script> # @@ -43,48 +38,34 @@ # <script src="/javascripts/ajaxlibs/prototype/1.6.1.0/prototype.js?1267013480" type="text/javascript"></script> # <script src="/javascripts/ajaxlibs/scriptaculous/1.8.3/scriptaculous.js?1267013481" type="text/javascript"></script> # def ajaxlibs_include(*args) options = (Hash === args.last) ? args.pop : {} - - includes = args.collect {|library| javascript_include_library library, options}.compact.join("\n") - if options[:local] === false or RAILS_ENV == 'production' - <<-EOB - <script type="text/javascript" src="#{Ajaxlibs::GoogleJSAPI}"></script> - #{javascript_tag includes} - EOB - else - includes - end + includes = args.collect {|library| javascript_include_library library, options}.flatten.compact + + includes.collect {|ajaxlib| javascript_include_tag ajaxlib.include_path}.join("\n") end private def javascript_include_library(library, options) library = library.to_sym + version = options.delete(:version) + source = (options[:local] === true or RAILS_ENV != 'production') ? :local : :remote + ajaxlib = Ajaxlibs::Library.by_name(library, :version => version, :source => source) @included_javascript_libraries ||= [] - return if @included_javascript_libraries.include?(library) - - version = options.delete(:version) - ajaxlib = Ajaxlibs::Library.by_name(library) + return if @included_javascript_libraries.include?(ajaxlib) + @included_javascript_libraries << ajaxlib result = [] - # Handle dependencies between libraries - if ajaxlib.requires and !@included_javascript_libraries.include?(ajaxlib.requires.to_sym) - result << javascript_include_library(ajaxlib.requires, options) + if ajaxlib.requires + ajaxlib.requires.each do |required_library, required_version| + result << javascript_include_library(required_library, :version => required_version) + end end - - @included_javascript_libraries << library - # Javascript load code - if options[:local] === true or RAILS_ENV != 'production' - result << javascript_include_tag(ajaxlib.local_path(version)) - else - result << ajaxlib.google_cdn_load_code(version) - end - - result.join("\n") + result << ajaxlib end end \ No newline at end of file