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