jsus 0.2.7 → 0.3.0

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.
Files changed (45) hide show
  1. data/.travis.yml +6 -0
  2. data/CHANGELOG +4 -1
  3. data/Gemfile +4 -1
  4. data/VERSION +1 -1
  5. data/bin/jsus +30 -9
  6. data/features/command-line/compression.feature +24 -0
  7. data/features/command-line/mooforge_compatibility_layer.feature +75 -0
  8. data/features/data/Compression/Source/Library/Color.js +17 -0
  9. data/features/data/Compression/Source/Widget/Input/Input.Color.js +21 -0
  10. data/features/data/Compression/package.yml +9 -0
  11. data/features/data/MooforgePlugin/Core/Source/Core.js +16 -0
  12. data/features/data/MooforgePlugin/Core/package.yml +8 -0
  13. data/features/data/MooforgePlugin/Plugin/Source/plugin-support.js +20 -0
  14. data/features/data/MooforgePlugin/Plugin/Source/plugin.js +21 -0
  15. data/features/data/MooforgePlugin/Plugin/package.yml +9 -0
  16. data/features/data/compression.min.js +1 -0
  17. data/jsus.gemspec +45 -22
  18. data/lib/jsus/middleware.rb +178 -0
  19. data/lib/jsus/package.rb +10 -10
  20. data/lib/jsus/source_file.rb +58 -30
  21. data/lib/jsus/tag.rb +18 -10
  22. data/lib/jsus/util/file_cache.rb +57 -0
  23. data/lib/jsus/util/inflection.rb +39 -0
  24. data/lib/jsus/util.rb +2 -0
  25. data/lib/jsus.rb +2 -0
  26. data/spec/data/ComplexDependencies/Mootools/Source/Core.js +16 -0
  27. data/spec/data/ComplexDependencies/Mootools/package.yml +8 -0
  28. data/spec/data/ComplexDependencies/Output/package.js +70 -0
  29. data/spec/data/ComplexDependencies/Output/scripts.json +14 -0
  30. data/spec/data/ComplexDependencies/Output/tree.json +33 -0
  31. data/spec/data/ComplexDependencies/Source/Library/Color.js +19 -0
  32. data/spec/data/ComplexDependencies/Source/Widget/Input/Input.Color.js +20 -0
  33. data/spec/data/ComplexDependencies/Source/Widget/Input.js +16 -0
  34. data/spec/data/ComplexDependencies/package.yml +10 -0
  35. data/spec/data/mooforge_quirky_source.js +20 -0
  36. data/spec/data/unicode_source.js +23 -0
  37. data/spec/data/unicode_source_with_bom.js +23 -0
  38. data/spec/jsus/middleware_spec.rb +216 -0
  39. data/spec/jsus/package_spec.rb +12 -6
  40. data/spec/jsus/source_file_spec.rb +42 -14
  41. data/spec/jsus/tag_spec.rb +8 -2
  42. data/spec/jsus/util/file_cache_spec.rb +67 -0
  43. data/spec/jsus/util/inflection_spec.rb +42 -0
  44. metadata +124 -62
  45. data/Gemfile.lock +0 -79
data/.travis.yml ADDED
@@ -0,0 +1,6 @@
1
+ script: "rake"
2
+ rvm:
3
+ - 1.8.7
4
+ - 1.9.2
5
+ - ree
6
+ - jruby
data/CHANGELOG CHANGED
@@ -1,4 +1,7 @@
1
1
  = Jsus Changelog
2
+ == Version 0.3.0
3
+ * Added Jsus::Middleware for rack middleware stuff. Yay!
4
+
2
5
  == Version 0.2.7
3
6
  * Brushed up CLI code
4
7
  * Added --watch option for cli (using fssm gem and fs backend for your operating system)
@@ -104,4 +107,4 @@ See jsus-examples repo or features dir for more information.
104
107
  * Moved out packing logic to brand new Packager and Container classes
105
108
 
106
109
  == Version 0.1.0
107
- * Initial release
110
+ * Initial release
data/Gemfile CHANGED
@@ -10,8 +10,11 @@ group :development do
10
10
  gem "rspec"
11
11
  gem "cucumber"
12
12
  gem "jeweler"
13
- gem "murdoc"
13
+ gem "murdoc", "~> 0.1.11"
14
14
  gem "ruby-debug19", :platforms => :ruby_19
15
15
  gem "ruby-debug", :platforms => :ruby_18
16
16
  gem 'fssm'
17
+ gem 'yui-compressor'
18
+ gem 'sinatra'
19
+ gem 'rack-test'
17
20
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.7
1
+ 0.3.0
data/bin/jsus CHANGED
@@ -122,18 +122,23 @@ module Jsus
122
122
 
123
123
  def run!
124
124
  parse_command_line!
125
+ launch!
125
126
  if watch?
126
127
  watch do |base, match|
127
128
  full_path = File.join(base, match)
128
129
  unless full_path.include?(cli_options[:output_dir])
129
130
  puts "#{match} has changed, relaunching jsus..."
130
- launch!
131
- puts "... done"
131
+ begin
132
+ launch!
133
+ puts "... done"
134
+ rescue Exception => e
135
+ puts "Exception happened: #{e}, #{e.inspect}"
136
+ puts "\t#{e.backtrace.join("\n\t")}" if Jsus.verbose?
137
+ puts "Compilation FAILED."
138
+ end
132
139
  puts ""
133
140
  end
134
141
  end
135
- else
136
- launch!
137
142
  end
138
143
  end
139
144
 
@@ -143,6 +148,20 @@ module Jsus
143
148
  puts ""
144
149
  start_directory = Dir.pwd
145
150
  watched_dirs = [cli_options[:input_dir], cli_options[:deps_dir]].compact.map {|path| File.expand_path(path)}
151
+
152
+ watched_dirs.reject! do |dir|
153
+ # This is a work around for rb-fsevent quirk
154
+ # Apparently, when your dependency dir is a child directory for your input dir,
155
+ # You get problems.
156
+ result = false
157
+ pathname_traversal = Pathname.new(dir).descend do |parent|
158
+ parent = parent.to_s
159
+ result ||= watched_dirs.include?(parent) && parent != dir
160
+ end
161
+ result
162
+ end
163
+
164
+ puts "Watching directories: " + watched_dirs.inspect if Jsus.verbose?
146
165
  FSSM.monitor do
147
166
  watched_dirs.each do |dir|
148
167
  path dir do
@@ -231,14 +250,14 @@ module Jsus
231
250
  compressor = YUI::JavaScriptCompressor.new(:munge => true)
232
251
  compressed_content = compressor.compress(@package_content)
233
252
  if compressed_content != ""
234
- compression_ratio = compressed_content.size.to_f / @package_content.size.to_f
235
- @package_content = compressed_content
253
+ @compression_ratio = compressed_content.size.to_f / @package_content.size.to_f
254
+ compressed_file_name = @package.filename.sub(/.js$/, ".min.js")
255
+ File.open(File.join(@output_dir, compressed_file_name), "w") {|f| f.write(compressed_content) }
236
256
  else
237
- compression_ratio = 1.00
238
- puts "ERROR: YUI compressor could not parse input. Falling back to uncompressed version"
257
+ @compression_ratio = 1.00
258
+ puts "ERROR: YUI compressor could not parse input. "
239
259
  puts "Compressor command used: #{compressor.command.join(' ')}"
240
260
  end
241
- puts "Compression ratio: #{sprintf("%.2f%%", compression_ratio * 100)}" if Jsus.verbose?
242
261
  checkpoint(:compress)
243
262
  rescue LoadError
244
263
  puts 'ERROR: You need "yui-compressor" gem in order to use --compress option'
@@ -302,6 +321,8 @@ module Jsus
302
321
  puts "Total compilation time: #{formatted_time_for(:compilation)}"
303
322
  puts "Post-processing time: #{formatted_time_for(:postproc)}" if options[:postproc]
304
323
  puts "Compression time: #{formatted_time_for(:compress)}" if options[:compress]
324
+ puts ""
325
+ puts "Compression ratio: #{sprintf("%.2f%%", @compression_ratio * 100)}" if Jsus.verbose? && @compression_ratio
305
326
  end
306
327
  end
307
328
 
@@ -0,0 +1,24 @@
1
+ Feature: compression
2
+ In order to minimize resulting file size, I should be able to use YUI
3
+ compressor.
4
+ Scenario: using the --compress option
5
+ When I run "jsus Compression tmp --compress"
6
+ Then the following files should exist:
7
+ | tmp/compression.js |
8
+ | tmp/compression.min.js |
9
+ And file "tmp/compression.min.js" should not contain
10
+ """
11
+ /*
12
+ """
13
+ And file "tmp/compression.min.js" should not contain
14
+ """
15
+ */
16
+ """
17
+ And file "tmp/compression.min.js" should contain
18
+ """
19
+ var Input
20
+ """
21
+ And file "tmp/compression.min.js" should contain
22
+ """
23
+ var Color
24
+ """
@@ -0,0 +1,75 @@
1
+ Feature: MooForge compatibility layer
2
+ In order to be compliant with mooforge packages, we should accept
3
+ various quirky source files.
4
+
5
+ Scenario: Compiling a mooforge package that uses mooforge tag dependency notation
6
+ When I run "jsus MooforgePlugin/Plugin tmp -d MooforgePlugin/Core"
7
+ Then the following files should exist:
8
+ | tmp/plugin.js |
9
+ And file "tmp/plugin.js" should contain
10
+ """
11
+ /*
12
+ ---
13
+
14
+ script: Core.js
15
+
16
+ description: Mootools fake core
17
+
18
+ license: MIT-style license
19
+
20
+ authors:
21
+ - Valerio Proietti
22
+
23
+ provides: [Core]
24
+
25
+ ...
26
+ */
27
+ """
28
+ And file "tmp/plugin.js" should contain
29
+ """
30
+ /*
31
+ ---
32
+
33
+ script: plugin.js
34
+
35
+ description: plugin main file
36
+
37
+ license: UNLICENSE
38
+
39
+ authors:
40
+ - Mark Abramov
41
+
42
+ provides:
43
+ - Base
44
+
45
+ requires:
46
+ - /Support
47
+ - mootools_core/1.3.0: Core
48
+
49
+ ...
50
+ */
51
+ """
52
+ And file "tmp/plugin.js" should contain
53
+ """
54
+ /*
55
+ ---
56
+
57
+ script: plugin-support.js
58
+
59
+ description: plugin support file
60
+
61
+ license: UNLICENSE
62
+
63
+ authors:
64
+ - Mark Abramov
65
+
66
+ provides:
67
+ - Support
68
+
69
+ requires:
70
+ - mootools_core/1.3.0: Core
71
+
72
+ ...
73
+ */
74
+ """
75
+ And file "tmp/plugin.js" should have "script: plugin-support.js" before "script: plugin.js"
@@ -0,0 +1,17 @@
1
+ /*
2
+ ---
3
+
4
+ script: Color.js
5
+
6
+ description: A library to work with colors
7
+
8
+ license: MIT-style license
9
+
10
+ authors:
11
+ - Valerio Proietti
12
+
13
+ provides: [Color]
14
+
15
+ ...
16
+ */
17
+ var Color = {};
@@ -0,0 +1,21 @@
1
+ /*
2
+ ---
3
+
4
+ script: Input.Color.js
5
+
6
+ description: Cool colorpicker for everyone to enjoy
7
+
8
+ license: MIT-style license
9
+
10
+ authors:
11
+ - Yaroslaff Fedin
12
+
13
+ requires:
14
+ - Color
15
+
16
+ provides: [Input.Color]
17
+
18
+ ...
19
+ */
20
+ var Input = {};
21
+ Input.Color = Color;
@@ -0,0 +1,9 @@
1
+ name: Compression
2
+ filename: compression.js
3
+ web: http://github.com/markiz/jsus
4
+ description: Jsus package with correct order set
5
+ license: Public Domain, http://unlicense.org/UNLICENSE
6
+ authors: Mark Abramov (http://github.com/markiz)
7
+ sources:
8
+ - "Source/Library/Color.js"
9
+ - "Source/Widget/Input/Input.Color.js"
@@ -0,0 +1,16 @@
1
+ /*
2
+ ---
3
+
4
+ script: Core.js
5
+
6
+ description: Mootools fake core
7
+
8
+ license: MIT-style license
9
+
10
+ authors:
11
+ - Valerio Proietti
12
+
13
+ provides: [Core]
14
+
15
+ ...
16
+ */
@@ -0,0 +1,8 @@
1
+ name: Mootools Core
2
+ filename: mootools.js
3
+ web: http://mootools.net
4
+ description: Fake mootools package
5
+ license: Public Domain, http://unlicense.org/UNLICENSE
6
+ authors: mootools authors
7
+ sources:
8
+ - "Source/Core.js"
@@ -0,0 +1,20 @@
1
+ /*
2
+ ---
3
+
4
+ script: plugin-support.js
5
+
6
+ description: plugin support file
7
+
8
+ license: UNLICENSE
9
+
10
+ authors:
11
+ - Mark Abramov
12
+
13
+ provides:
14
+ - Support
15
+
16
+ requires:
17
+ - mootools_core/1.3.0: Core
18
+
19
+ ...
20
+ */
@@ -0,0 +1,21 @@
1
+ /*
2
+ ---
3
+
4
+ script: plugin.js
5
+
6
+ description: plugin main file
7
+
8
+ license: UNLICENSE
9
+
10
+ authors:
11
+ - Mark Abramov
12
+
13
+ provides:
14
+ - Base
15
+
16
+ requires:
17
+ - /Support
18
+ - mootools_core/1.3.0: Core
19
+
20
+ ...
21
+ */
@@ -0,0 +1,9 @@
1
+ name: Plugin Package
2
+ filename: plugin.js
3
+ web: http://github.com/markiz/jsus
4
+ description: Mooforge plugin using various mooforge-specific conventions
5
+ license: 'Public Domain, http://unlicense.org/UNLICENSE'
6
+ authors: Mark Abramov (http://github.com/markiz)
7
+ sources:
8
+ - "Source/plugin-support.js"
9
+ - "Source/plugin.js"
@@ -0,0 +1 @@
1
+ var Color={};var Input={};Input.Color=Color;
data/jsus.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{jsus}
8
- s.version = "0.2.7"
8
+ s.version = "0.3.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Mark Abramov"]
12
- s.date = %q{2011-03-10}
12
+ s.date = %q{2011-05-17}
13
13
  s.default_executable = %q{jsus}
14
14
  s.description = %q{Javascript packager and dependency resolver}
15
15
  s.email = %q{markizko@gmail.com}
@@ -21,9 +21,9 @@ Gem::Specification.new do |s|
21
21
  s.files = [
22
22
  ".document",
23
23
  ".rspec",
24
+ ".travis.yml",
24
25
  "CHANGELOG",
25
26
  "Gemfile",
26
- "Gemfile.lock",
27
27
  "Manifest",
28
28
  "README",
29
29
  "Rakefile",
@@ -34,9 +34,11 @@ Gem::Specification.new do |s|
34
34
  "bin/jsus",
35
35
  "cucumber.yml",
36
36
  "features/command-line/basic_dependency_resolution.feature",
37
+ "features/command-line/compression.feature",
37
38
  "features/command-line/extensions.feature",
38
39
  "features/command-line/external_dependency_resolution.feature",
39
40
  "features/command-line/json_package.feature",
41
+ "features/command-line/mooforge_compatibility_layer.feature",
40
42
  "features/command-line/postproc.feature",
41
43
  "features/command-line/replacements.feature",
42
44
  "features/command-line/structure_json.feature",
@@ -46,6 +48,9 @@ Gem::Specification.new do |s|
46
48
  "features/data/BasicWrongOrder/Source/Library/Color.js",
47
49
  "features/data/BasicWrongOrder/Source/Widget/Input/Input.Color.js",
48
50
  "features/data/BasicWrongOrder/package.yml",
51
+ "features/data/Compression/Source/Library/Color.js",
52
+ "features/data/Compression/Source/Widget/Input/Input.Color.js",
53
+ "features/data/Compression/package.yml",
49
54
  "features/data/Extensions/Mootools/Source/Core.js",
50
55
  "features/data/Extensions/Mootools/package.yml",
51
56
  "features/data/Extensions/Source/Extensions/MootoolsCore.js",
@@ -66,6 +71,11 @@ Gem::Specification.new do |s|
66
71
  "features/data/JsonPackage/Source/Library/Color.js",
67
72
  "features/data/JsonPackage/Source/Widget/Input/Input.Color.js",
68
73
  "features/data/JsonPackage/package.json",
74
+ "features/data/MooforgePlugin/Core/Source/Core.js",
75
+ "features/data/MooforgePlugin/Core/package.yml",
76
+ "features/data/MooforgePlugin/Plugin/Source/plugin-support.js",
77
+ "features/data/MooforgePlugin/Plugin/Source/plugin.js",
78
+ "features/data/MooforgePlugin/Plugin/package.yml",
69
79
  "features/data/Postprocessing/MootoolsCompat12/Source/Core.js",
70
80
  "features/data/Postprocessing/MootoolsCompat12/package.yml",
71
81
  "features/data/Postprocessing/MootoolsLtIE8/Source/Core.js",
@@ -76,6 +86,7 @@ Gem::Specification.new do |s|
76
86
  "features/data/Replacements/MootoolsFork/package.yml",
77
87
  "features/data/Replacements/Source/Library/Color.js",
78
88
  "features/data/Replacements/package.yml",
89
+ "features/data/compression.min.js",
79
90
  "features/data/tmp2/package.js",
80
91
  "features/data/tmp2/scripts.json",
81
92
  "features/data/tmp2/tree.json",
@@ -84,6 +95,7 @@ Gem::Specification.new do |s|
84
95
  "jsus.gemspec",
85
96
  "lib/jsus.rb",
86
97
  "lib/jsus/container.rb",
98
+ "lib/jsus/middleware.rb",
87
99
  "lib/jsus/package.rb",
88
100
  "lib/jsus/packager.rb",
89
101
  "lib/jsus/pool.rb",
@@ -91,6 +103,8 @@ Gem::Specification.new do |s|
91
103
  "lib/jsus/tag.rb",
92
104
  "lib/jsus/util.rb",
93
105
  "lib/jsus/util/documenter.rb",
106
+ "lib/jsus/util/file_cache.rb",
107
+ "lib/jsus/util/inflection.rb",
94
108
  "lib/jsus/util/tree.rb",
95
109
  "lib/jsus/util/validator.rb",
96
110
  "lib/jsus/util/validator/base.rb",
@@ -112,6 +126,15 @@ Gem::Specification.new do |s|
112
126
  "spec/data/ChainDependencies/app/javascripts/Mash/package.yml",
113
127
  "spec/data/ClassReplacement/Source/Class.js",
114
128
  "spec/data/ClassReplacement/package.yml",
129
+ "spec/data/ComplexDependencies/Mootools/Source/Core.js",
130
+ "spec/data/ComplexDependencies/Mootools/package.yml",
131
+ "spec/data/ComplexDependencies/Output/package.js",
132
+ "spec/data/ComplexDependencies/Output/scripts.json",
133
+ "spec/data/ComplexDependencies/Output/tree.json",
134
+ "spec/data/ComplexDependencies/Source/Library/Color.js",
135
+ "spec/data/ComplexDependencies/Source/Widget/Input.js",
136
+ "spec/data/ComplexDependencies/Source/Widget/Input/Input.Color.js",
137
+ "spec/data/ComplexDependencies/package.yml",
115
138
  "spec/data/DependenciesWildcards/app/javascripts/Class/Source/Class.js",
116
139
  "spec/data/DependenciesWildcards/app/javascripts/Class/package.yml",
117
140
  "spec/data/DependenciesWildcards/app/javascripts/Hash/Source/Hash.js",
@@ -161,14 +184,20 @@ Gem::Specification.new do |s|
161
184
  "spec/data/OutsideDependencies/app/javascripts/Orwik/package.yml",
162
185
  "spec/data/bad_test_source_one.js",
163
186
  "spec/data/bad_test_source_two.js",
187
+ "spec/data/mooforge_quirky_source.js",
164
188
  "spec/data/test_source_one.js",
189
+ "spec/data/unicode_source.js",
190
+ "spec/data/unicode_source_with_bom.js",
165
191
  "spec/jsus/container_spec.rb",
192
+ "spec/jsus/middleware_spec.rb",
166
193
  "spec/jsus/package_spec.rb",
167
194
  "spec/jsus/packager_spec.rb",
168
195
  "spec/jsus/pool_spec.rb",
169
196
  "spec/jsus/source_file_spec.rb",
170
197
  "spec/jsus/tag_spec.rb",
171
198
  "spec/jsus/util/documenter_spec.rb",
199
+ "spec/jsus/util/file_cache_spec.rb",
200
+ "spec/jsus/util/inflection_spec.rb",
172
201
  "spec/jsus/util/tree_spec.rb",
173
202
  "spec/jsus/util/validator/base_spec.rb",
174
203
  "spec/jsus/util/validator/mooforge_spec.rb",
@@ -178,25 +207,10 @@ Gem::Specification.new do |s|
178
207
  s.homepage = %q{http://github.com/markiz/jsus}
179
208
  s.licenses = ["Public Domain"]
180
209
  s.require_paths = ["lib"]
181
- s.rubygems_version = %q{1.3.7}
210
+ s.rubygems_version = %q{1.6.2}
182
211
  s.summary = %q{Javascript packager and dependency resolver}
183
- s.test_files = [
184
- "spec/jsus/container_spec.rb",
185
- "spec/jsus/package_spec.rb",
186
- "spec/jsus/packager_spec.rb",
187
- "spec/jsus/pool_spec.rb",
188
- "spec/jsus/source_file_spec.rb",
189
- "spec/jsus/tag_spec.rb",
190
- "spec/jsus/util/documenter_spec.rb",
191
- "spec/jsus/util/tree_spec.rb",
192
- "spec/jsus/util/validator/base_spec.rb",
193
- "spec/jsus/util/validator/mooforge_spec.rb",
194
- "spec/shared/class_stubs.rb",
195
- "spec/spec_helper.rb"
196
- ]
197
212
 
198
213
  if s.respond_to? :specification_version then
199
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
200
214
  s.specification_version = 3
201
215
 
202
216
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
@@ -207,10 +221,13 @@ Gem::Specification.new do |s|
207
221
  s.add_development_dependency(%q<rspec>, [">= 0"])
208
222
  s.add_development_dependency(%q<cucumber>, [">= 0"])
209
223
  s.add_development_dependency(%q<jeweler>, [">= 0"])
210
- s.add_development_dependency(%q<murdoc>, [">= 0"])
224
+ s.add_development_dependency(%q<murdoc>, ["~> 0.1.11"])
211
225
  s.add_development_dependency(%q<ruby-debug19>, [">= 0"])
212
226
  s.add_development_dependency(%q<ruby-debug>, [">= 0"])
213
227
  s.add_development_dependency(%q<fssm>, [">= 0"])
228
+ s.add_development_dependency(%q<yui-compressor>, [">= 0"])
229
+ s.add_development_dependency(%q<sinatra>, [">= 0"])
230
+ s.add_development_dependency(%q<rack-test>, [">= 0"])
214
231
  else
215
232
  s.add_dependency(%q<activesupport>, [">= 0"])
216
233
  s.add_dependency(%q<json_pure>, [">= 0"])
@@ -219,10 +236,13 @@ Gem::Specification.new do |s|
219
236
  s.add_dependency(%q<rspec>, [">= 0"])
220
237
  s.add_dependency(%q<cucumber>, [">= 0"])
221
238
  s.add_dependency(%q<jeweler>, [">= 0"])
222
- s.add_dependency(%q<murdoc>, [">= 0"])
239
+ s.add_dependency(%q<murdoc>, ["~> 0.1.11"])
223
240
  s.add_dependency(%q<ruby-debug19>, [">= 0"])
224
241
  s.add_dependency(%q<ruby-debug>, [">= 0"])
225
242
  s.add_dependency(%q<fssm>, [">= 0"])
243
+ s.add_dependency(%q<yui-compressor>, [">= 0"])
244
+ s.add_dependency(%q<sinatra>, [">= 0"])
245
+ s.add_dependency(%q<rack-test>, [">= 0"])
226
246
  end
227
247
  else
228
248
  s.add_dependency(%q<activesupport>, [">= 0"])
@@ -232,10 +252,13 @@ Gem::Specification.new do |s|
232
252
  s.add_dependency(%q<rspec>, [">= 0"])
233
253
  s.add_dependency(%q<cucumber>, [">= 0"])
234
254
  s.add_dependency(%q<jeweler>, [">= 0"])
235
- s.add_dependency(%q<murdoc>, [">= 0"])
255
+ s.add_dependency(%q<murdoc>, ["~> 0.1.11"])
236
256
  s.add_dependency(%q<ruby-debug19>, [">= 0"])
237
257
  s.add_dependency(%q<ruby-debug>, [">= 0"])
238
258
  s.add_dependency(%q<fssm>, [">= 0"])
259
+ s.add_dependency(%q<yui-compressor>, [">= 0"])
260
+ s.add_dependency(%q<sinatra>, [">= 0"])
261
+ s.add_dependency(%q<rack-test>, [">= 0"])
239
262
  end
240
263
  end
241
264