ajaxlibs 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.rdoc CHANGED
@@ -17,6 +17,17 @@ In development environment, it provides local javascript files for the developme
17
17
 
18
18
  You can specify a specific version of each library to use, or the latest available.
19
19
 
20
+ == Supported Libraries
21
+
22
+ * dojo
23
+ * ext-core (use <tt>:extcore</tt> to load it)
24
+ * jquery
25
+ * jquery-ui
26
+ * jrails
27
+ * mootools
28
+ * prototype
29
+ * scriptaculous
30
+
20
31
  == Examples
21
32
 
22
33
  === simple library load, under the development environment
@@ -25,11 +36,11 @@ You can specify a specific version of each library to use, or the latest availab
25
36
 
26
37
  will produce, under the development environment :
27
38
 
28
- <script src="/javascripts/ajaxlibs/jquery/1.4.2/jquery.js?1267013480" type="text/javascript"></script>
39
+ <script src="/javascripts/ajaxlibs/jquery/1.4.2/jquery.min.js?1267013480" type="text/javascript"></script>
29
40
 
30
41
  and in production :
31
42
 
32
- <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js" type="text/javascript"></script>
43
+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery,min.js" type="text/javascript"></script>
33
44
 
34
45
  === multiple libraries load
35
46
 
@@ -37,13 +48,13 @@ and in production :
37
48
 
38
49
  in development environment :
39
50
 
40
- <script src="/javascripts/ajaxlibs/jquery/1.4.2/jquery.js?1267013480" type="text/javascript"></script>
41
- <script src="/javascripts/ajaxlibs/jqueryui/1.7.2/jqueryui.js?1267013480" type="text/javascript"></script>
51
+ <script src="/javascripts/ajaxlibs/jquery/1.4.2/jquery.min.js?1267013480" type="text/javascript"></script>
52
+ <script src="/javascripts/ajaxlibs/jqueryui/1.7.2/jqueryui.min.js?1267013480" type="text/javascript"></script>
42
53
 
43
54
  this time in production :
44
55
 
45
- <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js" type="text/javascript"></script>
46
- <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js" type="text/javascript"></script>
56
+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
57
+ <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js" type="text/javascript"></script>
47
58
 
48
59
  === forcing a version
49
60
 
@@ -59,7 +70,17 @@ will produce :
59
70
 
60
71
  used in production, will produce :
61
72
 
62
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js" type="text/javascript"></script>
73
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
74
+
75
+ === minified / non-minified
76
+
77
+ By default, each javascript are the minified version. But you can ask for a plain version :
78
+
79
+ <%= ajaxlibs_include :jquery, :minified => false %>
80
+
81
+ will produce
82
+
83
+ <script src="/javascripts/ajaxlibs/jquery/1.4.2/jquery.js?1267013480" type="text/javascript"></script>
63
84
 
64
85
  === automatic dependencies
65
86
 
@@ -91,7 +112,6 @@ Finally, include some javascript libraries to your views or layouts :
91
112
  == TODO
92
113
 
93
114
  * support more javascript libraries : available though Google CDN (mootools, ...), not available through Google CDN (jrails, ...), available only from google (google maps, ...).
94
- * support plain/minified versions.
95
115
  * provide a rake task to copy only required javascript libraries.
96
116
  * automatic support for jrails.
97
117
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.7
1
+ 0.1.8
data/lib/ajaxlibs.rb CHANGED
@@ -3,6 +3,7 @@ require 'ajaxlibs/exceptions'
3
3
  require 'ajaxlibs/versions_tools'
4
4
  require 'ajaxlibs/library'
5
5
  require 'ajaxlibs/libraries/dojo'
6
+ require 'ajaxlibs/libraries/ext_core'
6
7
  require 'ajaxlibs/libraries/jquery'
7
8
  require 'ajaxlibs/libraries/jqueryui'
8
9
  require 'ajaxlibs/libraries/jrails'
@@ -6,6 +6,8 @@ module Ajaxlibs::IncludesHelper
6
6
  # == Options
7
7
  # * <tt>version</tt> : specify the version to use for each library
8
8
  # * <tt>local</tt> : if true, always serve file locally, if false, use Google CDN
9
+ # * <tt>:secure</tt> : specify if the generated link should be secured (https) or not. Default is <tt>false</tt>.
10
+ # * <tt>:minified</tt> : <tt>true</tt> if you want a minified version of the javascript library, <tt>false</tt> otherwise. Default is <tt>true</tt>.
9
11
  #
10
12
  # == Exceptions
11
13
  # * <tt>Ajaxlibs::Exception::LibraryNotFound</tt> : raised if one or more of the given library is not available
@@ -14,24 +16,28 @@ module Ajaxlibs::IncludesHelper
14
16
  # == Examples
15
17
  # * Simple library load, under the development environment
16
18
  # ajaxlibs_include :jquery
17
- # <script src="/javascripts/ajaxlibs/jquery/1.4.2/jquery.js?1267013480" type="text/javascript"></script>
19
+ # <script src="/javascripts/ajaxlibs/jquery/1.4.2/jquery.min.js?1267013480" type="text/javascript"></script>
18
20
  #
19
21
  # ajaxlibs_include :jquery, :jqueryui
20
- # <script src="/javascripts/ajaxlibs/jquery/1.4.2/jquery.js?1267013480" type="text/javascript"></script>
21
- # <script src="/javascripts/ajaxlibs/jqueryui/1.7.2/jqueryui.js?1267013480" type="text/javascript"></script>
22
+ # <script src="/javascripts/ajaxlibs/jquery/1.4.2/jquery.min.js?1267013480" type="text/javascript"></script>
23
+ # <script src="/javascripts/ajaxlibs/jqueryui/1.7.2/jquery-ui.min.js?1267013480" type="text/javascript"></script>
22
24
  #
23
25
  # * Same examples as above, this time in production
24
26
  # ajaxlibs_include :jquery
25
- # <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js" type="text/javascript"></script>
27
+ # <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
26
28
  #
27
29
  # ajaxlibs_include :jquery, :jqueryui
28
- # <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js" type="text/javascript"></script>
29
- # <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js" type="text/javascript"></script>
30
+ # <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
31
+ # <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js" type="text/javascript"></script>
30
32
  #
31
33
  # * Specifying version
32
34
  # ajaxlibs_include :prototype, :version => '1.6.0.3'
33
35
  # <script src="/javascripts/ajaxlibs/prototype/1.6.0.3/prototype.js?1267013480" type="text/javascript"></script>
34
36
  #
37
+ # * Ask for a non-minified version
38
+ # ajaxlibs_include :jquery, :minified => false
39
+ # <script src="/javascripts/ajaxlibs/jquery/1.4.2/jquery.js?1267013480" type="text/javascript"></script>
40
+ #
35
41
  # * Automatic dependencies
36
42
  # ajaxlibs_include :scriptaculous
37
43
  # <script src="/javascripts/ajaxlibs/prototype/1.6.1.0/prototype.js?1267013480" type="text/javascript"></script>
@@ -9,6 +9,6 @@ class Ajaxlibs::Library::Dojo < Ajaxlibs::Library
9
9
  "1.4.1"]
10
10
 
11
11
  def file_name #:nodoc:
12
- "dojo.xd.js.uncompressed"
12
+ @minified ? 'dojo.xd' : 'dojo.xd.js.uncompressed'
13
13
  end
14
14
  end
@@ -7,6 +7,6 @@ class Ajaxlibs::Library::ExtCore < Ajaxlibs::Library
7
7
  end
8
8
 
9
9
  def file_name #:nodoc:
10
- "ext-core-debug"
10
+ @minified ? 'ext-core' : 'ext-core-debug'
11
11
  end
12
12
  end
@@ -7,4 +7,8 @@ class Ajaxlibs::Library::Jquery < Ajaxlibs::Library
7
7
  '1.4.0',
8
8
  '1.4.1',
9
9
  '1.4.2']
10
+
11
+ def file_name #:nodoc:
12
+ @minified ? 'jquery.min' : 'jquery'
13
+ end
10
14
  end
@@ -10,6 +10,6 @@ class Ajaxlibs::Library::Jqueryui < Ajaxlibs::Library
10
10
  Requirements = {:all => {:jquery => nil}}
11
11
 
12
12
  def file_name #:nodoc:
13
- "jquery-ui"
13
+ @minified ? 'jquery-ui.min' : 'jquery-ui'
14
14
  end
15
15
  end
@@ -1,5 +1,6 @@
1
1
  # JRails library, local support only.
2
2
  # This is only the javascript support of JRails, you must install JRails plugin to have a full support.
3
+ # TODO : require jrails gem (or fail) if included
3
4
  class Ajaxlibs::Library::Jrails < Ajaxlibs::Library
4
5
  Versions = ['0.5.0']
5
6
 
@@ -8,4 +9,12 @@ class Ajaxlibs::Library::Jrails < Ajaxlibs::Library
8
9
  def local_only?
9
10
  true
10
11
  end
12
+
13
+ def initialize(options = {})
14
+ require 'rubygems'
15
+ require 'jrails' # Check if we have jrails support before trying to load it
16
+ super
17
+ rescue LoadError
18
+ raise "jrails gem is missing, you must install it."
19
+ end
11
20
  end
@@ -5,4 +5,8 @@ class Ajaxlibs::Library::Mootools < Ajaxlibs::Library
5
5
  "1.2.2",
6
6
  "1.2.3",
7
7
  "1.2.4"]
8
+
9
+ def file_name #:nodoc:
10
+ @minified ? 'mootools-yui-compressed' : 'mootools'
11
+ end
8
12
  end
@@ -40,9 +40,11 @@ class Ajaxlibs::Library
40
40
  # * <tt>:version</tt> : specify a version (ex: "1.8.1").
41
41
  # * <tt>:source</tt> : force the source to use, default to <tt>:local</tt>.
42
42
  # * <tt>:secure</tt> : specify if the generated link should be secured (https) or not. Default is <tt>false</tt>.
43
+ # * <tt>:minified</tt> : <tt>true</tt> if you want a minified version of the javascript library, <tt>false</tt> otherwise. Default is <tt>true</tt>.
43
44
  def initialize(options = {})
44
45
  @version = check_version_or_latest_version(options[:version])
45
46
  @source = options[:source] || :local
47
+ @minified = options[:minified].nil? ? true : options[:minified]
46
48
  @secure = options[:secure] || false
47
49
  end
48
50
 
@@ -17,6 +17,15 @@ describe "Ajaxlibs::IncludesHelper" do
17
17
  Object.send(:remove_const, 'RAILS_ENV') if Object.const_defined?('RAILS_ENV')
18
18
  RAILS_ENV = 'development'
19
19
  end
20
+
21
+ it "should follow options to Ajaxlibs::Library class" do
22
+ Ajaxlibs::Library.should_receive(:by_name).
23
+ with(:prototype, hash_including(:minified => false, :secure => true)).
24
+ once.
25
+ and_return(Ajaxlibs::Library::Prototype.new)
26
+
27
+ @fake_action_view.ajaxlibs_include :prototype, :minified => false, :secure => true
28
+ end
20
29
 
21
30
  context "should call javascript_include_tag to include local javascript library file" do
22
31
  example "once if only one library was specified" do
@@ -68,6 +77,25 @@ describe "Ajaxlibs::IncludesHelper" do
68
77
  @fake_action_view.ajaxlibs_include :prototype, :version => '1.6.0.3'
69
78
  end
70
79
  end # end of context "while specifying a specific version number"
80
+
81
+ context "while asking for a uncompressed version" do
82
+ example "with a filename to the uncompressed version" do
83
+ @fake_action_view.should_receive(:javascript_include_tag).
84
+ with(Ajaxlibs::Library.by_name(:jquery, :minified => false).local_path).
85
+ once
86
+
87
+ @fake_action_view.ajaxlibs_include :jquery, :minified => false
88
+ end
89
+ end # end of context "while asking for a uncompressed version"
90
+
91
+ example "with a minified version by default" do
92
+ @fake_action_view.should_receive(:javascript_include_tag).
93
+ with(Ajaxlibs::Library.by_name(:jquery, :minified => true).local_path).
94
+ once
95
+
96
+ @fake_action_view.ajaxlibs_include :jquery
97
+ end
98
+
71
99
  end # end of context "should call javascript_include_tag to include local javascript library file"
72
100
 
73
101
  example "should call javascript_include_tag with google cdn include path if specified source is remote" do
@@ -147,6 +175,25 @@ describe "Ajaxlibs::IncludesHelper" do
147
175
  @fake_action_view.ajaxlibs_include :prototype, :version => '1.6.0.3'
148
176
  end
149
177
  end # end of context "while specifying a specific version number"
178
+
179
+ context "while asking for a uncompressed version" do
180
+ example "with a filename to the uncompressed version" do
181
+ @fake_action_view.should_receive(:javascript_include_tag).
182
+ with(Ajaxlibs::Library.by_name(:jquery, :minified => false).google_cdn_include_path).
183
+ once
184
+
185
+ @fake_action_view.ajaxlibs_include :jquery, :minified => false
186
+ end
187
+ end # end of context "while asking for a uncompressed version"
188
+
189
+ example "with a minified version by default" do
190
+ @fake_action_view.should_receive(:javascript_include_tag).
191
+ with(Ajaxlibs::Library.by_name(:jquery, :minified => true).google_cdn_include_path).
192
+ once
193
+
194
+ @fake_action_view.ajaxlibs_include :jquery
195
+ end
196
+
150
197
  end # end of context "should call javascript_include_tag with google cdn include path"
151
198
  end # end of context "in production environment"
152
199
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 7
9
- version: 0.1.7
8
+ - 8
9
+ version: 0.1.8
10
10
  platform: ruby
11
11
  authors:
12
12
  - Fabien Jakimowicz
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-04-27 00:00:00 +02:00
17
+ date: 2010-05-03 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency