jim 0.1.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.
@@ -0,0 +1,119 @@
1
+ require 'helper'
2
+
3
+ class TestJimInstaller < Test::Unit::TestCase
4
+
5
+ context "Jim::Installer" do
6
+ setup do
7
+ # clear the tmp dir
8
+ FileUtils.rm_rf(tmp_path) if File.directory?(tmp_path)
9
+ end
10
+
11
+ context "initializing" do
12
+ setup do
13
+ @installer = Jim::Installer.new('fetchpath', 'installpath', {:version => '1.1'})
14
+ end
15
+
16
+ should "set fetch path" do
17
+ assert_equal Pathname.new('fetchpath'), @installer.fetch_path
18
+ end
19
+
20
+ should "set install path" do
21
+ assert_equal Pathname.new('installpath'), @installer.install_path
22
+ end
23
+
24
+ should "set options" do
25
+ assert_equal({:version => '1.1'}, @installer.options)
26
+ end
27
+
28
+ end
29
+
30
+ context "fetch" do
31
+ setup do
32
+ @url = "http://jquery.com/download/jquery-1.4.1.js"
33
+ FakeWeb.register_uri(:get, @url, :body => fixture('jquery-1.4.1.js'))
34
+ end
35
+
36
+ should "fetch remote file" do
37
+ installer = Jim::Installer.new(@url, tmp_path)
38
+ assert installer.fetch
39
+ end
40
+
41
+ should "fetch local file" do
42
+ installer = Jim::Installer.new(fixture_path('jquery-1.4.1.js'), tmp_path)
43
+ fetched_path = installer.fetch
44
+ assert_dir fetched_path.dirname
45
+ assert_equal 'jquery-1.4.1.js', fetched_path.basename.to_s
46
+ end
47
+
48
+ end
49
+
50
+ context "determine_name_and_version" do
51
+
52
+ should "determine from filename" do
53
+ installer = Jim::Installer.new(fixture_path('jquery-1.4.1.js'), tmp_path)
54
+ assert installer.fetch
55
+ assert installer.determine_name_and_version
56
+ assert_equal '1.4.1', installer.version
57
+ assert_equal 'jquery', installer.name
58
+ end
59
+
60
+ should "determine from package.json" do
61
+ installer = Jim::Installer.new(fixture_path('mustache.js'), tmp_path)
62
+ assert installer.fetch
63
+ assert installer.determine_name_and_version
64
+ assert_equal "0.2.2", installer.version
65
+ assert_equal "mustache", installer.name
66
+ end
67
+
68
+ should "determine from file comments" do
69
+ installer = Jim::Installer.new(fixture_path('infoincomments.js'), tmp_path)
70
+ assert installer.fetch
71
+ assert installer.determine_name_and_version
72
+ assert_equal 'myproject', installer.name
73
+ assert_equal '1.2.2', installer.version
74
+ end
75
+
76
+ should "determine from options" do
77
+ installer = Jim::Installer.new(fixture_path('jquery-1.4.1.js'), tmp_path, :name => 'myproject', :version => '1.1.1')
78
+ assert installer.fetch
79
+ assert installer.determine_name_and_version
80
+ assert_equal 'myproject', installer.name
81
+ assert_equal '1.1.1', installer.version
82
+ end
83
+
84
+ should "have default version if version can not be determined" do
85
+ installer = Jim::Installer.new(fixture_path('noversion.js'), tmp_path)
86
+ assert installer.fetch
87
+ assert installer.determine_name_and_version
88
+ assert_equal 'noversion', installer.name
89
+ assert_equal '0', installer.version
90
+ end
91
+
92
+ end
93
+
94
+ context "install" do
95
+
96
+ should "move file into install path at name/version" do
97
+ installer = Jim::Installer.new(fixture_path('jquery-1.4.1.js'), tmp_path)
98
+ assert installer.install
99
+ install_path = File.join(tmp_path, 'lib', 'jquery-1.4.1')
100
+ assert_dir install_path
101
+ assert_readable install_path, 'jquery.js'
102
+ assert_equal fixture('jquery-1.4.1.js'), File.read(File.join(install_path, 'jquery.js'))
103
+ end
104
+
105
+ should "install zips" do
106
+ @url = "http://jquery.com/download/jquery.metadata-2.0.zip"
107
+ FakeWeb.register_uri(:get, @url, :body => fixture('jquery.metadata-2.0.zip'))
108
+ installer = Jim::Installer.new(@url, tmp_path)
109
+ path = installer.install
110
+ # puts Dir.glob(path + '**/**').inspect
111
+ assert_dir path
112
+ assert_dir path + 'jquery.metadata-2.0.zip'
113
+ assert_readable path + 'jquery.metadata-2.0.zip' + 'jquery.metadata.2.0' +'jquery.metadata.js'
114
+ end
115
+
116
+ end
117
+
118
+ end
119
+ end
@@ -0,0 +1,48 @@
1
+ require 'helper'
2
+
3
+ class TestJimVersionParser < Test::Unit::TestCase
4
+
5
+ context "Jim::VersionParser" do
6
+
7
+ context ".parse_filename" do
8
+ should "parse filenames'" do
9
+ [
10
+ ["sammy-0.1.0", ["sammy", "0.1.0"]],
11
+ ["sammy_0.1.0", ["sammy", "0.1.0"]],
12
+ ["sammy-1", ["sammy", "1"]],
13
+ ["sammy_1", ["sammy", "1"]],
14
+ ["sammy.1.0", ["sammy", "1.0"]],
15
+ ["sammy.1.0.1", ["sammy", "1.0.1"]],
16
+ ["sammy.1.0.1.min", ["sammy", "1.0.1.min"]],
17
+ ["sammy-1.0.1.min", ["sammy", "1.0.1.min"]],
18
+ ["sammy.plugin-1.0.1.min", ["sammy.plugin", "1.0.1.min"]],
19
+ ["sammy.plugin.1.0.1", ["sammy.plugin", "1.0.1"]],
20
+ ["sammy.plugin_1.0.1", ["sammy.plugin", "1.0.1"]],
21
+ ["sammy.plugin.1.0.1pre", ["sammy.plugin", "1.0.1pre"]],
22
+ ["sammy.plugin-1.0.1beta", ["sammy.plugin", "1.0.1beta"]],
23
+ ["sammy.plugin.1.0.1.pre", ["sammy.plugin", "1.0.1.pre"]],
24
+ ["sammy.plugin-1.0.1.beta", ["sammy.plugin", "1.0.1.beta"]],
25
+ ["sammy 1.0.1", ["sammy", "1.0.1"]],
26
+ ["sammy.plugin.1.0.1.js", ["sammy.plugin", "1.0.1"]],
27
+ ["sammy.plugin.1.0.1.zip", ["sammy.plugin", "1.0.1"]],
28
+ ["sammy.plugin.1.0.1", ["sammy.plugin", "1.0.1"]],
29
+ # ["sammy.plugin-a9asb02", ["sammy.plugin", "a9asb02"]],
30
+ ["sammy-9asb02", ["sammy", "9asb02"]],
31
+ ["noversion.js", ["noversion", "0"]]
32
+ ].each do |name, result|
33
+ assert_equal result, Jim::VersionParser.parse_filename(name), "Should parse #{name} to #{result.inspect}"
34
+ end
35
+ end
36
+
37
+ end
38
+
39
+ context ".parse_package_json" do
40
+
41
+ should "parse version and name from file" do
42
+ assert_equal ["mustache", "0.2.2"], Jim::VersionParser.parse_package_json(fixture('mustache.js/package.json'))
43
+ end
44
+
45
+ end
46
+
47
+ end
48
+ end
metadata ADDED
@@ -0,0 +1,109 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jim
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Aaron Quint
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2010-02-19 00:00:00 -05:00
13
+ default_executable: jim
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: downlow
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.1.1
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: shoulda
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ description: jim is your friendly javascript library manager. He downloads, stores, bundles, vendors and compresses.
36
+ email: aaron@quirkey.com
37
+ executables:
38
+ - jim
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - LICENSE
43
+ - README.rdoc
44
+ files:
45
+ - .document
46
+ - .gitignore
47
+ - LICENSE
48
+ - README.rdoc
49
+ - Rakefile
50
+ - bin/jim
51
+ - jim.gemspec
52
+ - lib/jim.rb
53
+ - lib/jim/bundler.rb
54
+ - lib/jim/cli.rb
55
+ - lib/jim/index.rb
56
+ - lib/jim/installer.rb
57
+ - lib/jim/rack.rb
58
+ - lib/jim/templates/commands
59
+ - lib/jim/templates/jimfile
60
+ - lib/jim/version_parser.rb
61
+ - test/fixtures/infoincomments.js
62
+ - test/fixtures/jimfile
63
+ - test/fixtures/jquery-1.4.1.js
64
+ - test/fixtures/jquery.color.js
65
+ - test/fixtures/jquery.metadata-2.0.zip
66
+ - test/fixtures/mustache.js/mustache.js
67
+ - test/fixtures/mustache.js/package.json
68
+ - test/fixtures/noversion.js
69
+ - test/helper.rb
70
+ - test/test_jim_bundler.rb
71
+ - test/test_jim_cli.rb
72
+ - test/test_jim_index.rb
73
+ - test/test_jim_installer.rb
74
+ - test/test_jim_version_parser.rb
75
+ has_rdoc: true
76
+ homepage: http://github.com/quirkey/jim
77
+ licenses: []
78
+
79
+ post_install_message:
80
+ rdoc_options:
81
+ - --charset=UTF-8
82
+ require_paths:
83
+ - lib
84
+ required_ruby_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: "0"
89
+ version:
90
+ required_rubygems_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: "0"
95
+ version:
96
+ requirements: []
97
+
98
+ rubyforge_project:
99
+ rubygems_version: 1.3.5
100
+ signing_key:
101
+ specification_version: 3
102
+ summary: jim is your friendly javascript library manager
103
+ test_files:
104
+ - test/helper.rb
105
+ - test/test_jim_bundler.rb
106
+ - test/test_jim_cli.rb
107
+ - test/test_jim_index.rb
108
+ - test/test_jim_installer.rb
109
+ - test/test_jim_version_parser.rb