bpm 1.0.0.beta.13 → 1.0.0.rc.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. data/CHANGELOG.md +35 -1
  2. data/README.md +1 -1
  3. data/bin/bpm +18 -1
  4. data/bpm.gemspec +3 -3
  5. data/lib/bpm.rb +34 -1
  6. data/lib/bpm/cli/base.rb +32 -44
  7. data/lib/bpm/errors.rb +15 -3
  8. data/lib/bpm/execjs_ext.rb +99 -0
  9. data/lib/bpm/local.rb +1 -1
  10. data/lib/bpm/package.rb +53 -51
  11. data/lib/bpm/pipeline.rb +21 -14
  12. data/lib/bpm/pipeline/directive_processor.rb +9 -0
  13. data/lib/bpm/pipeline/generated_asset.rb +59 -13
  14. data/lib/bpm/pipeline/package_pipeline.rb +2 -2
  15. data/lib/bpm/pipeline/plugin_asset.rb +1 -1
  16. data/lib/bpm/pipeline/plugin_context.rb +12 -2
  17. data/lib/bpm/pipeline/plugin_processor.rb +27 -4
  18. data/lib/bpm/project.rb +171 -139
  19. data/lib/bpm/server.rb +14 -9
  20. data/lib/bpm/version.rb +1 -1
  21. data/man/{bpm-compile.1.ronn → bpm-rebuild.1.ronn} +0 -0
  22. data/man/bpm.1.ronn +112 -9
  23. data/spec/cli/add_spec.rb +15 -6
  24. data/spec/cli/init_spec.rb +7 -7
  25. data/spec/cli/pack_spec.rb +13 -8
  26. data/spec/cli/preview_spec.rb +10 -0
  27. data/spec/cli/rebuild_spec.rb +5 -5
  28. data/spec/cli/remove_spec.rb +1 -1
  29. data/spec/fixtures/gems/core-test-0.4.9.bpkg +0 -0
  30. data/spec/fixtures/packages/backbone/package.json +2 -2
  31. data/spec/fixtures/packages/core-test/package.json +1 -1
  32. data/spec/fixtures/projects/coffee/coffee.json +4 -4
  33. data/spec/fixtures/projects/coffee/{packages → vendor}/coffee-script/compiler.js +0 -0
  34. data/spec/fixtures/projects/coffee/{packages → vendor}/coffee-script/lib/main.js +0 -0
  35. data/spec/fixtures/projects/coffee/{packages → vendor}/coffee-script/package.json +0 -0
  36. data/spec/fixtures/projects/coffee/{packages/handlebars → vendor/handlebars-format}/format.js +0 -0
  37. data/spec/fixtures/projects/coffee/{packages/handlebars → vendor/handlebars-format}/lib/main.js +0 -0
  38. data/spec/fixtures/projects/coffee/{packages/handlebars → vendor/handlebars-format}/package.json +2 -2
  39. data/spec/fixtures/projects/coffee/vendor/handlebars/package.json +15 -0
  40. data/spec/fixtures/projects/coffee/vendor/spade-coffee/package.json +15 -0
  41. data/spec/fixtures/projects/coffee/vendor/spade-handlebars/package.json +15 -0
  42. data/spec/fixtures/projects/coffee/vendor/spade/lib/main.js +1 -0
  43. data/spec/fixtures/projects/coffee/{packages → vendor}/spade/package.json +0 -0
  44. data/spec/fixtures/projects/coffee/{packages → vendor}/spade/transport.js +0 -0
  45. data/spec/fixtures/projects/hello2/{packages → vendor}/a/lib/main.js +0 -0
  46. data/spec/fixtures/projects/hello2/{packages → vendor}/a/package.json +0 -0
  47. data/spec/fixtures/projects/hello2/{packages → vendor}/b/lib/main.js +0 -0
  48. data/spec/fixtures/projects/hello2/{packages → vendor}/b/package.json +0 -0
  49. data/spec/fixtures/projects/hello2/{packages → vendor}/c/lib/main.js +0 -0
  50. data/spec/fixtures/projects/hello2/{packages → vendor}/c/package.json +0 -0
  51. data/spec/fixtures/projects/hello_dev/{packages → vendor}/style_package/css/some_style.css +0 -0
  52. data/spec/fixtures/projects/hello_dev/{packages → vendor}/style_package/package.json +0 -0
  53. data/spec/fixtures/projects/hello_world/another/one.js +1 -0
  54. data/spec/fixtures/projects/hello_world/another/two.js +1 -0
  55. data/spec/fixtures/projects/hello_world/hello_world.json +6 -5
  56. data/spec/fixtures/projects/hello_world/lib2/something.js +1 -0
  57. data/spec/fixtures/projects/hello_world/{packages → vendor}/custom_package/assets/dummy.txt +0 -0
  58. data/spec/fixtures/projects/hello_world/{packages → vendor}/custom_package/css/sample_styles.css +0 -0
  59. data/spec/fixtures/projects/hello_world/{packages → vendor}/custom_package/custom_dir/basic-module.js +0 -0
  60. data/spec/fixtures/projects/hello_world/{packages → vendor}/custom_package/lib/main.js +0 -0
  61. data/spec/fixtures/projects/hello_world/{packages → vendor}/custom_package/package.json +1 -1
  62. data/spec/fixtures/projects/hello_world/vendor/prerelease_package/package.json +4 -0
  63. data/spec/fixtures/projects/init_app/new_project.json +3 -3
  64. data/spec/fixtures/projects/init_default/new_project.json +2 -2
  65. data/spec/fixtures/projects/minitest/minitest.json +1 -1
  66. data/spec/fixtures/projects/minitest/{packages → vendor}/uglyduck/lib/main.js +0 -0
  67. data/spec/fixtures/projects/minitest/{packages → vendor}/uglyduck/minifier/main.js +0 -0
  68. data/spec/fixtures/projects/minitest/{packages → vendor}/uglyduck/package.json +0 -0
  69. data/spec/fixtures/projects/minitrans/minitrans.json +1 -1
  70. data/spec/fixtures/projects/minitrans/{packages → vendor}/transport/lib/main.js +0 -0
  71. data/spec/fixtures/projects/minitrans/{packages → vendor}/transport/package.json +0 -0
  72. data/spec/fixtures/projects/minitrans/{packages → vendor}/transport/transports/wrapper.js +0 -0
  73. data/spec/fixtures/projects/minitrans/{packages → vendor}/uglyduck/lib/main.js +0 -0
  74. data/spec/fixtures/projects/minitrans/{packages → vendor}/uglyduck/minifier/main.js +0 -0
  75. data/spec/fixtures/projects/minitrans/{packages → vendor}/uglyduck/package.json +0 -0
  76. data/spec/fixtures/projects/transporter/{packages → vendor}/transport/lib/main.js +0 -0
  77. data/spec/fixtures/projects/transporter/{packages → vendor}/transport/package.json +0 -0
  78. data/spec/fixtures/projects/transporter/{packages → vendor}/transport/transports/wrapper.js +0 -0
  79. data/spec/package_pipeline_spec.rb +8 -5
  80. data/spec/package_spec.rb +31 -26
  81. data/spec/pipeline_spec.rb +72 -64
  82. data/spec/plugins/format_spec.rb +7 -7
  83. data/spec/project_spec.rb +6 -5
  84. data/spec/spec_helper.rb +5 -4
  85. data/spec/support/cli.rb +9 -7
  86. data/spec/support/env.rb +7 -4
  87. data/spec/support/path.rb +1 -0
  88. data/support/es5-shim.js +935 -0
  89. data/templates/init/project.json +2 -3
  90. metadata +112 -97
  91. data/lib/bpm/pipeline/transport_processor.rb +0 -34
  92. data/spec/fixtures/projects/coffee/packages/spade/lib/main.js +0 -1
  93. data/spec/fixtures/projects/hello_world/vendor/lib/something.js +0 -1
data/lib/bpm/server.rb CHANGED
@@ -4,20 +4,27 @@ require 'sprockets'
4
4
  module BPM
5
5
 
6
6
  class Server < Rack::Server
7
-
8
- def initialize(project, options=nil)
7
+
8
+ def initialize(project, options={})
9
+ options = default_options.merge(options)
9
10
  @project = project
10
- @mode = (options && options[:mode]) || :debug
11
+ @mode = options[:mode] || :debug
11
12
  super options
12
13
  end
13
-
14
+
14
15
  def self.start(project, options=nil)
15
16
  new(project, options).start
16
17
  end
17
-
18
+
19
+ def start
20
+ super
21
+ rescue Errno::EADDRINUSE
22
+ raise BPM::Error, "Port #{options[:Port]} is already in use. Please use --port to specify a different port."
23
+ end
24
+
18
25
  attr_reader :project
19
26
  attr_reader :mode
20
-
27
+
21
28
  def app
22
29
  cur_project = @project
23
30
  cur_mode = @mode
@@ -26,13 +33,11 @@ module BPM
26
33
  map '/assets' do
27
34
  run BPM::Pipeline.new cur_project, cur_mode, true
28
35
  end
29
-
36
+
30
37
  map '/' do
31
38
  run Rack::Directory.new cur_project.root_path
32
39
  end
33
-
34
40
  end.to_app
35
41
  end
36
-
37
42
  end
38
43
  end
data/lib/bpm/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module BPM
2
- VERSION = "1.0.0.beta.13"
2
+ VERSION = "1.0.0.rc.1"
3
3
  COMPAT_VERSION = '1.0.0'
4
4
  end
File without changes
data/man/bpm.1.ronn CHANGED
@@ -7,18 +7,120 @@ bpm(1) -- browser package manager
7
7
 
8
8
  ## DESCRIPTION
9
9
 
10
- ## WORKFLOW
10
+ bpm is a package manager for browser-based applications. It is based
11
+ loosely on npm (node package manager), but designed to handle all the
12
+ different types of assets and optimizations you will need for the web
13
+ including packaging and minifying JavaScript as well as handling CSS and
14
+ image assets.
11
15
 
12
- bpm init | bpm new - create the new project
13
- bpm add spade - adds the dependency, fetches, compiles.
14
- bpm remove spade - removes the dependency, compiles
16
+ You can use bpm both to manage the dependencies of an application you are
17
+ building and to publish libraries of code for others to use. This manual
18
+ page will explain to you how to use bpm both different ways.
15
19
 
16
- bpm fetch - fetches any dependencies locally
17
- bpm compile - rebuilds the project; uses any current dependencies
18
- bpm preview - allows you to preview the files. creates any needed files
20
+ ## GETTING STARTED (WITH AN EXISTING PROJECT)
19
21
 
22
+ The most common way to use bpm is to manage the dependencies of your
23
+ application. To configure bpm for an existing project, just cd into the project directory
24
+ and type:
20
25
 
21
- ## DISCUSSION
26
+ bpm init
27
+
28
+ This will setup a new project JSON file as well as create an empty set of
29
+ asset files in the `assets` directory of your project. Inside of that
30
+ directory you will find two key files: `bpm_libs.js` and `bpm_styles.css`.
31
+
32
+ These files will contain the JavaScript and CSS styles for all of your
33
+ dependencies, respectively. Make sure you modify any HTML files to reference
34
+ these two files so they load. Typically you will want both files to load
35
+ before other JavaScript or CSS files in your page.
36
+
37
+ As you add dependencies, additional assets may appear in this directory,
38
+ including images.
39
+
40
+ Now that you have setup your project, you can start adding dependencies. See
41
+ (ADDING DEPENDENCIES) below.
42
+
43
+ ## GETTING STARTED (WITH A NEW APP)
44
+
45
+ If you are starting a new project, you can also use bpm to create your new
46
+ project with:
47
+
48
+ bpm init [PROJECT_NAME]
49
+
50
+ This will create a new project with the name that you gave it based on the
51
+ HTML5 Boilerplate template.
52
+
53
+ Your new project will also contain an assets directory that contains
54
+ `bpm_libs.js` and `bpm_styles.css` files. These must be loaded in your HTML
55
+ file for your dependencies to load. The default index.html created by bpm
56
+ will already do this for you.
57
+
58
+ ## ADDING AND REMOVING DEPENDENCIES
59
+
60
+ Once you have configured your application, you can add and remove dependencies using the `bpm add` and `bpm remove` commands. For example, to add jquery to
61
+ your project just type:
62
+
63
+ bpm add jquery
64
+
65
+ This will fetch the jquery package and any dependencies (if they exist) and
66
+ then rebuild the files in the `assets` directory. Once the add is complete
67
+ bpm should display the new total file sizes of the files it built. This
68
+ size represents the size after minification (if there is any) and gzipped.
69
+
70
+ For more information on adding dependencies see the `bpm-add` manual.
71
+
72
+ You can also remove dependencies by using the `bpm remove` command. Just name
73
+ the package you want to remove and all the assets will be rebuilt for you.
74
+ For example:
75
+
76
+ bpm remove jquery
77
+
78
+ Would remove jquery from your project (if it was already added). Calling
79
+ bpm remove with the same package multiple times has no effect.
80
+
81
+ For more information on remove dependencies see the `bpm-remove` manual.
82
+
83
+ ## MANAGING YOUR APP ITSELF
84
+
85
+ In addition to handling dependencies, bpm can also be used to build your
86
+ actual app JavaScript and CSS. To do this, you just need to run:
87
+
88
+ bpm init --app
89
+
90
+ Note that when you create new projects with bpm, the app will already be
91
+ built.
92
+
93
+ The default configuration for this setup will build any JavaScript found in
94
+ a `lib` directory in the root of your project and any CSS found in a `css`
95
+ directory in the root of your project. You can change these settings by
96
+ modifying the project JSON.
97
+
98
+ ## PREVIEWING
99
+
100
+ Sometimes while hacking on your app - especially if you are using BPM to
101
+ build the app itself, you will want to see your changes in the browser
102
+ without having to constantly rebuild your app. To do this you can use the
103
+ `bpm preview` command.
104
+
105
+ Run this command from the root of your project and it will start a server on
106
+ port 4020 that will simply load the files found in your project. Any of the
107
+ files found in the assets folder, however, will be automatically rebuilt from
108
+ your installed packages on demand. They will also be built in debug mode
109
+ which means you will be able to see code uniminified, making things
110
+ far easier to debug.
111
+
112
+ As an example, if you created a new app using bpm and then used bpm preview,
113
+ you could just visit:
114
+
115
+ http://localhost:4020/index.html
116
+
117
+ To actually load the app in your browser.
118
+
119
+ ## REBUILDING
120
+
121
+ If you have modified your app and you are ready to release it, you may want
122
+ to do a new build in bpm to get the latest code. You can use the
123
+ `bpm rebuild` command for this.
22
124
 
23
125
  ## COPYRIGHT
24
126
 
@@ -26,6 +128,7 @@ bpm preview - allows you to preview the files. creates any needed files
26
128
 
27
129
  ## SEE ALSO
28
130
 
29
- bpm-add(1) bpm-remove(1)
131
+ bpm-add(1) bpm-remove(1) bpm-rebuild(1) bpm-preview(1)
132
+
30
133
 
31
134
 
data/spec/cli/add_spec.rb CHANGED
@@ -50,14 +50,14 @@ describe 'bpm add' do
50
50
  output.should include("Added package 'coffee' (1.0.1.pre)")
51
51
  output.should include("Added package 'jquery' (1.4.3)")
52
52
 
53
- has_dependency 'coffee', '1.0.1.pre', '>= 0-pre'
53
+ has_dependency 'coffee', '1.0.1.pre', '>= 0.pre'
54
54
  has_soft_dependency 'jquery', '1.4.3'
55
55
  end
56
56
 
57
57
  it "adds no packages when any are invalid" do
58
58
  bpm "add", "jquery", "fake", :track_stderr => true
59
59
 
60
- stderr.read.should == "Could not find eligible package for 'fake' (>= 0)\n"
60
+ stderr.read.should include("Could not find eligible package for 'fake' (>= 0)")
61
61
 
62
62
  no_dependency 'jquery'
63
63
  no_dependency 'fake'
@@ -66,7 +66,7 @@ describe 'bpm add' do
66
66
  it "fails when adding invalid package" do
67
67
  bpm "add", "fake", :track_stderr => true
68
68
 
69
- stderr.read.should == "Could not find eligible package for 'fake' (>= 0)\n"
69
+ stderr.read.should include("Could not find eligible package for 'fake' (>= 0)")
70
70
  no_dependency 'fake'
71
71
  end
72
72
 
@@ -95,7 +95,6 @@ describe 'bpm add' do
95
95
  wait
96
96
  has_dependency 'rake', '0.8.6', '0.8.6' # precond
97
97
 
98
- output = stdout.read
99
98
  bpm 'add', 'rake'
100
99
  wait
101
100
 
@@ -111,13 +110,13 @@ describe 'bpm add' do
111
110
  wait
112
111
  output = stdout.read
113
112
  output.should include("Added package 'bundler' (1.1.pre)")
114
- has_dependency 'bundler', '1.1.pre', '>= 0-pre'
113
+ has_dependency 'bundler', '1.1.pre', '>= 0.pre'
115
114
  end
116
115
 
117
116
  it "does not add the normal package when asking for a prerelease" do
118
117
  bpm "add", "rake", "--pre", :track_stderr => true
119
118
  wait
120
- stderr.read.should == "Could not find eligible package for 'rake' (>= 0-pre)\n"
119
+ stderr.read.should include("Could not find eligible package for 'rake' (>= 0.pre)")
121
120
  no_dependency 'rake'
122
121
  end
123
122
 
@@ -154,6 +153,16 @@ describe 'bpm add' do
154
153
  no_dependency 'custom_package'
155
154
  end
156
155
 
156
+ it "should add local prerelease package" do
157
+ no_dependency 'prerelease_package'
158
+
159
+ bpm "add", "prerelease_package", "--pre"
160
+ output = stdout.read
161
+
162
+ output.should include("Using local package 'prerelease_package'")
163
+ has_dependency 'prerelease_package', '1.0.0.pre', '>= 0.pre'
164
+ end
165
+
157
166
  it "should work with .bpkg file" do
158
167
  FileUtils.cp fixtures('gems', "custom_generator-1.0.bpkg"), '.'
159
168
  bpm "add", "custom_generator-1.0.bpkg" and wait
@@ -126,11 +126,11 @@ describe "bpm init on a non-existant directory" do
126
126
 
127
127
  files.each do |file|
128
128
  output.should =~ /create\s+#{file}$/
129
- home("bpm_test", *file.split('/')).should exist
129
+ home("BpmTest", *file.split('/')).should exist
130
130
  end
131
131
 
132
132
  generated_files.each do |file|
133
- home('bpm_test', *file.split('/')).should exist
133
+ home('BpmTest', *file.split('/')).should exist
134
134
  end
135
135
  end
136
136
 
@@ -140,7 +140,7 @@ describe "bpm init on a non-existant directory" do
140
140
  home("DifferentLocation").should exist
141
141
  home("DifferentLocation", "BpmTest.json").should exist
142
142
  home("DifferentLocation", "DifferentLocation.json").should_not exist
143
- home("bpm_test").should_not exist
143
+ home("BpmTest").should_not exist
144
144
  end
145
145
 
146
146
  end
@@ -166,20 +166,20 @@ describe "bpm init on a non-existant directory" do
166
166
 
167
167
  files.each do |file|
168
168
  output.should =~ /create\s+#{file}$/
169
- home("bpm_test", file).should exist
169
+ home("BpmTest", file).should exist
170
170
  end
171
171
  end
172
172
 
173
173
  it "should create custom app.js with explicit generator" do
174
174
  bpm 'init', 'BpmTest', '--package=custom_generator' and wait
175
175
 
176
- File.read(home("bpm_test", "app.js")).should == "require('BpmTest/main.js')\n"
176
+ File.read(home("BpmTest", "app.js")).should == "require('BpmTest/main.js')\n"
177
177
  end
178
178
 
179
179
  it "should create custom project.json without explicit generator" do
180
180
  bpm 'init', 'BpmTest', '--package=core-test' and wait
181
181
 
182
- File.read(home("bpm_test", "BpmTest.json")).should =~ /"core-test": "0.4.9"/
182
+ File.read(home("BpmTest", "BpmTest.json")).should =~ /"core-test": "0.4.9"/
183
183
  end
184
184
 
185
185
  end
@@ -196,7 +196,7 @@ describe "bpm init on a non-existant directory" do
196
196
  it "should add package as a dependency even if it doesn't have custom generator" do
197
197
  bpm 'init', 'BpmTest', '--package=jquery' and wait
198
198
 
199
- File.read(home("bpm_test", "BpmTest.json")).should =~ /"dependencies": {\n\s+"jquery": "1.4.3"\n\s+}/
199
+ File.read(home("BpmTest", "BpmTest.json")).should =~ /"dependencies": {\n\s+"jquery": "1.4.3"\n\s+}/
200
200
  end
201
201
 
202
202
  end
@@ -25,6 +25,16 @@ describe "bpm pack" do
25
25
  package.spec.version.should == LibGems::Version.new("0.4.9")
26
26
  package.spec.email.should == email
27
27
  end
28
+
29
+ it "should not complain about different directories" do
30
+ FileUtils.cp_r package_fixture("core-test"), "custom-path"
31
+ cd "custom-path"
32
+ bpm "pack"
33
+
34
+ exit_status.should be_success
35
+ stdout.read.should include("Successfully built package: core-test-0.4.9.bpkg")
36
+ end
37
+
28
38
  end
29
39
 
30
40
  describe "without logging in" do
@@ -99,11 +109,6 @@ describe "bpm pack" do
99
109
  exit_status.should be_success
100
110
  end
101
111
 
102
- it "implies the summary field" do
103
- package = LibGems::Format.from_file_by_path("backbone-0.5.1.bpkg")
104
- package.spec.summary.should == package.spec.description
105
- end
106
-
107
112
  it "gets name and version" do
108
113
  package = LibGems::Format.from_file_by_path("backbone-0.5.1.bpkg")
109
114
  package.spec.name.should == "backbone"
@@ -120,11 +125,11 @@ describe "bpm pack" do
120
125
  describe "package with plugins" do
121
126
  before do
122
127
  goto_home
123
- FileUtils.cp_r project_fixture('coffee', 'packages'), '.'
128
+ FileUtils.cp_r project_fixture('coffee', 'vendor'), '.'
124
129
  end
125
130
 
126
131
  it "should pack transports" do
127
- cd home('packages', 'spade')
132
+ cd home('vendor', 'spade')
128
133
  bpm "pack" and wait
129
134
  puts stdout.read
130
135
  exit_status.should be_success
@@ -137,4 +142,4 @@ describe "bpm pack" do
137
142
 
138
143
  end
139
144
 
140
-
145
+
@@ -0,0 +1,10 @@
1
+ require "spec_helper"
2
+
3
+ describe "bpm preview" do
4
+
5
+ it "should work"
6
+
7
+ it "should preserve json settings"
8
+ # i.e. spade:format
9
+
10
+ end
@@ -52,7 +52,7 @@ EOF
52
52
 
53
53
  def test_include(does_include, build_file, *source_file)
54
54
  contents_path = home('hello_dev', 'assets', build_file)
55
- expected_path = home('hello_dev', *source_file)
55
+ expected_path = home(*source_file)
56
56
 
57
57
  if does_include
58
58
  File.read(contents_path).should include(File.read(expected_path))
@@ -66,20 +66,20 @@ EOF
66
66
 
67
67
  js_reg = [
68
68
  # fetch regular dependency
69
- %w(.bpm packages spade lib main.js)
69
+ %w(.bpm gems spade-0.5.0 lib main.js)
70
70
  ]
71
71
 
72
72
  js_dev = [
73
73
  # fetched development dependency
74
- %w(.bpm packages uglify-js lib parse-js.js),
74
+ %w(.bpm gems uglify-js-1.0.4 lib parse-js.js),
75
75
 
76
76
  # required dependency of development dependency
77
- %w(.bpm packages optparse lib optparse.js)
77
+ %w(.bpm gems optparse-1.0.1 lib optparse.js)
78
78
  ]
79
79
 
80
80
  css_dev = [
81
81
  # css of a locally installed development dependency
82
- %w(packages style_package css some_style.css)
82
+ %w(hello_dev vendor style_package css some_style.css)
83
83
  ]
84
84
 
85
85
  if should_include
@@ -75,7 +75,7 @@ describe 'bpm remove' do
75
75
  output = stdout.read
76
76
 
77
77
  no_dependency 'custom_package'
78
- File.exists?(home('hello_world', 'packages', 'custom_package', 'package.json')).should be_true
78
+ File.exists?(home('hello_world', 'vendor', 'custom_package', 'package.json')).should be_true
79
79
  end
80
80
 
81
81
  it "should remove development dependencies"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name" : "backbone",
3
- "description" : "Give your JS App some Backbone with Models, Views, Collections, and Events.",
4
- "url" : "http://documentcloud.github.com/backbone/",
3
+ "summary" : "Give your JS App some Backbone with Models, Views, Collections, and Events.",
4
+ "homepage" : "http://documentcloud.github.com/backbone/",
5
5
  "keywords" : ["util", "functional", "server", "client", "browser"],
6
6
  "author" : "Jeremy Ashkenas <jeremy@documentcloud.org>",
7
7
  "contributors" : [],
@@ -39,7 +39,7 @@
39
39
 
40
40
  "bpm:build": {
41
41
  "bpm_styles.css": {
42
- "directories": ["resources"]
42
+ "files": ["resources"]
43
43
  },
44
44
 
45
45
  "core-test": {
@@ -3,14 +3,14 @@
3
3
  "bpm": "1.0.0",
4
4
 
5
5
  "dependencies": {
6
- "spade": "~> 1.0.0",
7
- "coffee-script": "~> 1.0.0",
8
- "handlebars": "~> 1.0.0"
6
+ "coffee-script": "~> 1.0.0",
7
+ "spade-handlebars": "~> 1.0.0",
8
+ "spade": "~> 1.0.0"
9
9
  },
10
10
 
11
11
  "bpm:build": {
12
12
  "bpm_libs.js": {
13
- "directories": ["lib", "templates"]
13
+ "files": ["lib", "templates"]
14
14
  }
15
15
  }
16
16
  }