ninjs 0.16.3 → 0.16.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. data/VERSION +1 -1
  2. data/lib/sprockets/.gitignore +4 -0
  3. data/lib/sprockets/CHANGELOG +22 -0
  4. data/lib/sprockets/LICENSE +20 -0
  5. data/lib/sprockets/README.markdown +230 -0
  6. data/lib/sprockets/bin/sprocketize +54 -0
  7. data/lib/sprockets/ext/nph-sprockets.cgi +127 -0
  8. data/lib/sprockets/lib/sprockets.rb +42 -0
  9. data/lib/sprockets/lib/sprockets/concatenation.rb +36 -0
  10. data/lib/sprockets/lib/sprockets/environment.rb +52 -0
  11. data/lib/sprockets/lib/sprockets/error.rb +5 -0
  12. data/lib/sprockets/lib/sprockets/pathname.rb +37 -0
  13. data/lib/sprockets/lib/sprockets/preprocessor.rb +96 -0
  14. data/lib/sprockets/lib/sprockets/secretary.rb +110 -0
  15. data/lib/sprockets/lib/sprockets/source_file.rb +56 -0
  16. data/lib/sprockets/lib/sprockets/source_line.rb +85 -0
  17. data/lib/sprockets/lib/sprockets/version.rb +9 -0
  18. data/lib/sprockets/sprockets.gemspec +15 -0
  19. data/lib/sprockets/test/fixtures/assets/images/script_with_assets/one.png +1 -0
  20. data/lib/sprockets/test/fixtures/assets/images/script_with_assets/two.png +1 -0
  21. data/lib/sprockets/test/fixtures/assets/stylesheets/script_with_assets.css +1 -0
  22. data/lib/sprockets/test/fixtures/constants.yml +1 -0
  23. data/lib/sprockets/test/fixtures/double_slash_comments_that_are_not_requires_should_be_ignored_when_strip_comments_is_false.js +8 -0
  24. data/lib/sprockets/test/fixtures/double_slash_comments_that_are_not_requires_should_be_removed_by_default.js +2 -0
  25. data/lib/sprockets/test/fixtures/multiline_comments_should_be_removed_by_default.js +4 -0
  26. data/lib/sprockets/test/fixtures/requiring_a_file_after_it_has_already_been_required_should_do_nothing.js +5 -0
  27. data/lib/sprockets/test/fixtures/requiring_a_file_that_does_not_exist_should_raise_an_error.js +1 -0
  28. data/lib/sprockets/test/fixtures/requiring_a_single_file_should_replace_the_require_comment_with_the_file_contents.js +3 -0
  29. data/lib/sprockets/test/fixtures/requiring_the_current_file_should_do_nothing.js +1 -0
  30. data/lib/sprockets/test/fixtures/src/constants.yml +3 -0
  31. data/lib/sprockets/test/fixtures/src/foo.js +1 -0
  32. data/lib/sprockets/test/fixtures/src/foo/bar.js +4 -0
  33. data/lib/sprockets/test/fixtures/src/foo/foo.js +1 -0
  34. data/lib/sprockets/test/fixtures/src/script_with_assets.js +3 -0
  35. data/lib/sprockets/test/fixtures/src/script_with_comments.js +13 -0
  36. data/lib/sprockets/test/test_concatenation.rb +28 -0
  37. data/lib/sprockets/test/test_environment.rb +64 -0
  38. data/lib/sprockets/test/test_helper.rb +55 -0
  39. data/lib/sprockets/test/test_pathname.rb +43 -0
  40. data/lib/sprockets/test/test_preprocessor.rb +107 -0
  41. data/lib/sprockets/test/test_secretary.rb +89 -0
  42. data/lib/sprockets/test/test_source_file.rb +34 -0
  43. data/lib/sprockets/test/test_source_line.rb +89 -0
  44. data/ninjs.gemspec +55 -13
  45. metadata +46 -4
@@ -0,0 +1,34 @@
1
+ require "test_helper"
2
+ require "enumerator"
3
+ Enumerator = Enumerable::Enumerator unless defined?(Enumerator) # for 1.9.1 compatibility
4
+
5
+ class SourceFileTest < Test::Unit::TestCase
6
+ def setup
7
+ @environment = environment_for_fixtures
8
+ end
9
+
10
+ def test_each_source_line
11
+ source_file_lines = Enumerator.new(source_file("src/foo/bar.js"), :each_source_line).to_a
12
+ assert_equal content_of_fixture("src/foo/bar.js"), source_file_lines.map { |line| line.line }.join
13
+ assert_equal 4, source_file_lines.length
14
+ end
15
+
16
+ def test_find_should_return_pathname_for_file_relative_to_the_current_pathname
17
+ assert_absolute_location_ends_with "test/fixtures/src/foo/bar.js", source_file("src/foo/foo.js").find("bar.js")
18
+ end
19
+
20
+ def test_find_should_return_nil_for_nonexistent_file
21
+ assert_nil source_file("src/foo/foo.js").find("nonexistent.js")
22
+ end
23
+
24
+ def test_equality_of_source_files
25
+ assert_equal source_file("src/foo/foo.js"), source_file("src/foo/foo.js")
26
+ assert_equal source_file("src/foo/foo.js"), source_file("src/foo/../foo/foo.js")
27
+ assert_not_equal source_file("src/foo/foo.js"), source_file("src/foo.js")
28
+ assert_not_equal source_file("src/foo/foo.js"), source_file("src/foo/bar.js")
29
+ end
30
+
31
+ def test_mtime_should_return_now_if_file_does_not_exist
32
+ assert source_file("src/foo/nonexistent.js").mtime.instance_of?(Time)
33
+ end
34
+ end
@@ -0,0 +1,89 @@
1
+ require "test_helper"
2
+
3
+ class SourceLineTest < Test::Unit::TestCase
4
+ def test_line_that_begins_with_double_slash_should_be_a_comment
5
+ assert source_line("//").comment?
6
+ assert source_line("//test").comment?
7
+ assert source_line("//= require").comment?
8
+ assert source_line("//= require <foo>").comment?
9
+ assert source_line(" //").comment?
10
+ assert source_line("\t//").comment?
11
+ end
12
+
13
+ def test_line_that_begins_a_multiline_comment
14
+ assert source_line(" /*").begins_multiline_comment?
15
+ assert source_line(" /**").begins_multiline_comment?
16
+ end
17
+
18
+ def test_line_that_begins_a_pdoc_comment
19
+ assert !source_line(" /*").begins_pdoc_comment?
20
+ assert source_line(" /**").begins_pdoc_comment?
21
+ end
22
+
23
+ def test_line_that_ends_a_multiline_comment
24
+ assert source_line(" */").ends_multiline_comment?
25
+ assert source_line(" **/").ends_multiline_comment?
26
+ end
27
+
28
+ def test_line_that_ends_a_pdoc_comment
29
+ assert !source_line(" */").ends_pdoc_comment?
30
+ assert source_line(" **/").ends_pdoc_comment?
31
+ end
32
+
33
+ def test_line_that_contains_but_does_not_begin_with_double_slash_should_not_be_a_comment
34
+ assert !source_line("f //").comment?
35
+ assert !source_line("f //= require <foo>").comment?
36
+ end
37
+
38
+ def test_comment_should_be_extracted_from_comment_lines
39
+ assert_equal "test", source_line("//test").comment
40
+ assert_equal " test", source_line("// test").comment
41
+ assert_equal nil, source_line("f //test").comment
42
+ end
43
+
44
+ def test_line_that_contains_require_comment_should_be_a_require
45
+ assert source_line("//= require <foo>").require?
46
+ assert !source_line("//= require<foo>").require?
47
+ assert source_line("//= require \"foo\"").require?
48
+ assert !source_line("//= require <foo> f").require?
49
+ end
50
+
51
+ def test_require_should_be_extracted_from_require_lines
52
+ assert_nil source_line("//= require").require
53
+ assert_equal "<foo>", source_line("//= require <foo>").require
54
+ assert_equal "<foo>", source_line("//= require <foo> ").require
55
+ assert_equal "\"foo\"", source_line("//= require \"foo\"").require
56
+ end
57
+
58
+ def test_line_that_contains_a_provide_comment_should_be_a_provide
59
+ assert source_line("//= provide \"../assets\"").provide?
60
+ assert !source_line("//= provide").provide?
61
+ assert !source_line("//= provide <../assets>").provide?
62
+ end
63
+
64
+ def test_provide_should_be_extracted_from_provide_lines
65
+ assert_nil source_line("//= provide").provide
66
+ assert_equal "../assets", source_line("//= provide \"../assets\"").provide
67
+ end
68
+
69
+ def test_inspect_should_include_source_file_location_and_line_number
70
+ environment = environment_for_fixtures
71
+ pathname = Sprockets::Pathname.new(environment, "/a/b/c.js")
72
+ source_file = Sprockets::SourceFile.new(environment, pathname)
73
+ assert_equal "line 25 of #{File.expand_path("/a/b/c.js")}", source_line("hello", source_file, 25).inspect
74
+ end
75
+
76
+ def test_interpolation_of_constants
77
+ assert_equal %(var VERSION = "1.0";\n), source_line('var VERSION = "<%= VERSION %>";').to_s("VERSION" => "1.0")
78
+ end
79
+
80
+ def test_interpolation_of_missing_constant_raises_undefined_constant_error
81
+ assert_raises(Sprockets::UndefinedConstantError) do
82
+ source_line('<%= NONEXISTENT %>').to_s("VERSION" => "1.0")
83
+ end
84
+ end
85
+
86
+ def test_to_s_should_strip_trailing_whitespace_before_adding_line_ending
87
+ assert_equal "hello();\n", source_line("hello(); \t \r\n").to_s({})
88
+ end
89
+ end
@@ -4,15 +4,15 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{ninjs}
8
- s.version = "0.16.3"
7
+ s.name = "ninjs"
8
+ s.version = "0.16.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = [%q{Dayton Nolan}]
12
- s.date = %q{2011-10-28}
13
- s.description = %q{Ninjs is a ruby application and small javascript framework that helps you build clean, modular javascript applications. Ninjs encourages "Good Parts" best practices and the Crockford school Module pattern (http://www.crockford.com/). The ninjs command line application is an automatic compiler, written in ruby, and based on the Sprockets library (http://getsprockets.org/).}
14
- s.email = %q{daytonn@gmail.com}
15
- s.executables = [%q{ninjs}]
11
+ s.authors = ["Dayton Nolan"]
12
+ s.date = "2012-02-15"
13
+ s.description = "Ninjs is a ruby application and small javascript framework that helps you build clean, modular javascript applications. Ninjs encourages \"Good Parts\" best practices and the Crockford school Module pattern (http://www.crockford.com/). The ninjs command line application is an automatic compiler, written in ruby, and based on the Sprockets library (http://getsprockets.org/)."
14
+ s.email = "daytonn@gmail.com"
15
+ s.executables = ["ninjs"]
16
16
  s.extra_rdoc_files = [
17
17
  "LICENSE",
18
18
  "README.md"
@@ -37,6 +37,48 @@ Gem::Specification.new do |s|
37
37
  "lib/ninjs/manifest.rb",
38
38
  "lib/ninjs/notification.rb",
39
39
  "lib/ninjs/project.rb",
40
+ "lib/sprockets/.gitignore",
41
+ "lib/sprockets/CHANGELOG",
42
+ "lib/sprockets/LICENSE",
43
+ "lib/sprockets/README.markdown",
44
+ "lib/sprockets/bin/sprocketize",
45
+ "lib/sprockets/ext/nph-sprockets.cgi",
46
+ "lib/sprockets/lib/sprockets.rb",
47
+ "lib/sprockets/lib/sprockets/concatenation.rb",
48
+ "lib/sprockets/lib/sprockets/environment.rb",
49
+ "lib/sprockets/lib/sprockets/error.rb",
50
+ "lib/sprockets/lib/sprockets/pathname.rb",
51
+ "lib/sprockets/lib/sprockets/preprocessor.rb",
52
+ "lib/sprockets/lib/sprockets/secretary.rb",
53
+ "lib/sprockets/lib/sprockets/source_file.rb",
54
+ "lib/sprockets/lib/sprockets/source_line.rb",
55
+ "lib/sprockets/lib/sprockets/version.rb",
56
+ "lib/sprockets/sprockets.gemspec",
57
+ "lib/sprockets/test/fixtures/assets/images/script_with_assets/one.png",
58
+ "lib/sprockets/test/fixtures/assets/images/script_with_assets/two.png",
59
+ "lib/sprockets/test/fixtures/assets/stylesheets/script_with_assets.css",
60
+ "lib/sprockets/test/fixtures/constants.yml",
61
+ "lib/sprockets/test/fixtures/double_slash_comments_that_are_not_requires_should_be_ignored_when_strip_comments_is_false.js",
62
+ "lib/sprockets/test/fixtures/double_slash_comments_that_are_not_requires_should_be_removed_by_default.js",
63
+ "lib/sprockets/test/fixtures/multiline_comments_should_be_removed_by_default.js",
64
+ "lib/sprockets/test/fixtures/requiring_a_file_after_it_has_already_been_required_should_do_nothing.js",
65
+ "lib/sprockets/test/fixtures/requiring_a_file_that_does_not_exist_should_raise_an_error.js",
66
+ "lib/sprockets/test/fixtures/requiring_a_single_file_should_replace_the_require_comment_with_the_file_contents.js",
67
+ "lib/sprockets/test/fixtures/requiring_the_current_file_should_do_nothing.js",
68
+ "lib/sprockets/test/fixtures/src/constants.yml",
69
+ "lib/sprockets/test/fixtures/src/foo.js",
70
+ "lib/sprockets/test/fixtures/src/foo/bar.js",
71
+ "lib/sprockets/test/fixtures/src/foo/foo.js",
72
+ "lib/sprockets/test/fixtures/src/script_with_assets.js",
73
+ "lib/sprockets/test/fixtures/src/script_with_comments.js",
74
+ "lib/sprockets/test/test_concatenation.rb",
75
+ "lib/sprockets/test/test_environment.rb",
76
+ "lib/sprockets/test/test_helper.rb",
77
+ "lib/sprockets/test/test_pathname.rb",
78
+ "lib/sprockets/test/test_preprocessor.rb",
79
+ "lib/sprockets/test/test_secretary.rb",
80
+ "lib/sprockets/test/test_source_file.rb",
81
+ "lib/sprockets/test/test_source_line.rb",
40
82
  "ninjs.gemspec",
41
83
  "repository/jquery/1.1.4.js",
42
84
  "repository/jquery/1.2.6.js",
@@ -185,12 +227,12 @@ Gem::Specification.new do |s|
185
227
  "templates/jasmine.yml",
186
228
  "templates/test-index.html"
187
229
  ]
188
- s.homepage = %q{http://github.com/textnotspeech/ninjs}
189
- s.licenses = [%q{MIT}]
190
- s.require_paths = [%q{lib}]
191
- s.rubyforge_project = %q{nowarning}
192
- s.rubygems_version = %q{1.8.8}
193
- s.summary = %q{ninjs is a command line application to help you write clean, modular javascript applications.}
230
+ s.homepage = "http://github.com/textnotspeech/ninjs"
231
+ s.licenses = ["MIT"]
232
+ s.require_paths = ["lib"]
233
+ s.rubyforge_project = "nowarning"
234
+ s.rubygems_version = "1.8.15"
235
+ s.summary = "ninjs is a command line application to help you write clean, modular javascript applications."
194
236
  s.test_files = [
195
237
  "spec/cli_spec.rb",
196
238
  "spec/command_spec.rb",
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: ninjs
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.16.3
5
+ version: 0.16.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - Dayton Nolan
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-10-28 00:00:00 Z
13
+ date: 2012-02-15 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: fssm
@@ -195,6 +195,48 @@ files:
195
195
  - lib/ninjs/manifest.rb
196
196
  - lib/ninjs/notification.rb
197
197
  - lib/ninjs/project.rb
198
+ - lib/sprockets/.gitignore
199
+ - lib/sprockets/CHANGELOG
200
+ - lib/sprockets/LICENSE
201
+ - lib/sprockets/README.markdown
202
+ - lib/sprockets/bin/sprocketize
203
+ - lib/sprockets/ext/nph-sprockets.cgi
204
+ - lib/sprockets/lib/sprockets.rb
205
+ - lib/sprockets/lib/sprockets/concatenation.rb
206
+ - lib/sprockets/lib/sprockets/environment.rb
207
+ - lib/sprockets/lib/sprockets/error.rb
208
+ - lib/sprockets/lib/sprockets/pathname.rb
209
+ - lib/sprockets/lib/sprockets/preprocessor.rb
210
+ - lib/sprockets/lib/sprockets/secretary.rb
211
+ - lib/sprockets/lib/sprockets/source_file.rb
212
+ - lib/sprockets/lib/sprockets/source_line.rb
213
+ - lib/sprockets/lib/sprockets/version.rb
214
+ - lib/sprockets/sprockets.gemspec
215
+ - lib/sprockets/test/fixtures/assets/images/script_with_assets/one.png
216
+ - lib/sprockets/test/fixtures/assets/images/script_with_assets/two.png
217
+ - lib/sprockets/test/fixtures/assets/stylesheets/script_with_assets.css
218
+ - lib/sprockets/test/fixtures/constants.yml
219
+ - lib/sprockets/test/fixtures/double_slash_comments_that_are_not_requires_should_be_ignored_when_strip_comments_is_false.js
220
+ - lib/sprockets/test/fixtures/double_slash_comments_that_are_not_requires_should_be_removed_by_default.js
221
+ - lib/sprockets/test/fixtures/multiline_comments_should_be_removed_by_default.js
222
+ - lib/sprockets/test/fixtures/requiring_a_file_after_it_has_already_been_required_should_do_nothing.js
223
+ - lib/sprockets/test/fixtures/requiring_a_file_that_does_not_exist_should_raise_an_error.js
224
+ - lib/sprockets/test/fixtures/requiring_a_single_file_should_replace_the_require_comment_with_the_file_contents.js
225
+ - lib/sprockets/test/fixtures/requiring_the_current_file_should_do_nothing.js
226
+ - lib/sprockets/test/fixtures/src/constants.yml
227
+ - lib/sprockets/test/fixtures/src/foo.js
228
+ - lib/sprockets/test/fixtures/src/foo/bar.js
229
+ - lib/sprockets/test/fixtures/src/foo/foo.js
230
+ - lib/sprockets/test/fixtures/src/script_with_assets.js
231
+ - lib/sprockets/test/fixtures/src/script_with_comments.js
232
+ - lib/sprockets/test/test_concatenation.rb
233
+ - lib/sprockets/test/test_environment.rb
234
+ - lib/sprockets/test/test_helper.rb
235
+ - lib/sprockets/test/test_pathname.rb
236
+ - lib/sprockets/test/test_preprocessor.rb
237
+ - lib/sprockets/test/test_secretary.rb
238
+ - lib/sprockets/test/test_source_file.rb
239
+ - lib/sprockets/test/test_source_line.rb
198
240
  - ninjs.gemspec
199
241
  - repository/jquery/1.1.4.js
200
242
  - repository/jquery/1.2.6.js
@@ -355,7 +397,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
355
397
  requirements:
356
398
  - - ">="
357
399
  - !ruby/object:Gem::Version
358
- hash: -3496350730608908011
400
+ hash: 3447029779432945311
359
401
  segments:
360
402
  - 0
361
403
  version: "0"
@@ -368,7 +410,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
368
410
  requirements: []
369
411
 
370
412
  rubyforge_project: nowarning
371
- rubygems_version: 1.8.8
413
+ rubygems_version: 1.8.15
372
414
  signing_key:
373
415
  specification_version: 3
374
416
  summary: ninjs is a command line application to help you write clean, modular javascript applications.