bpm 1.0.0.beta.10 → 1.0.0.beta.11

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.
@@ -66,7 +66,7 @@ module BPM
66
66
  method_option :project, :type => :string, :default => nil, :aliases => ['-p'], :desc => 'Specify project location other than working directory'
67
67
  method_option :prerelease, :type => :boolean, :default => false, :aliases => ['--pre'], :desc => 'Install a prerelease version'
68
68
  method_option :development, :type => :boolean, :default => false, :aliases => ['--dev'], :desc => "Add as a development dependency"
69
- method_option :mode, :type => :string, :default => :production, :aliases => ['-m'], :desc => "Build mode for compile (default production)"
69
+ method_option :mode, :type => :string, :default => :production, :aliases => ['-m'], :desc => "Build mode for compile"
70
70
  def add(*package_names)
71
71
  # map to dependencies
72
72
  if package_names.empty?
@@ -100,7 +100,7 @@ module BPM
100
100
 
101
101
  desc "remove [PACKAGE]", "Remove one or more packages from a bpm project"
102
102
  method_option :project, :type => :string, :default => nil, :aliases => ['-p'], :desc => 'Specify project location other than working directory'
103
- method_option :mode, :type => :string, :default => :production, :aliases => ['-m'], :desc => "Build mode for compile (default production)"
103
+ method_option :mode, :type => :string, :default => :production, :aliases => ['-m'], :desc => "Build mode for compile"
104
104
  def remove(*package_names)
105
105
 
106
106
  # map to dependencies
@@ -119,7 +119,7 @@ module BPM
119
119
  end
120
120
 
121
121
  desc "preview", "Preview server that will autocompile assets as you request them. Useful for hacking"
122
- method_option :mode, :type => :string, :default => :debug, :aliases => ['-m'], :desc => 'Build mode for compile (default debug)'
122
+ method_option :mode, :type => :string, :default => :debug, :aliases => ['-m'], :desc => 'Build mode for compile'
123
123
  method_option :project, :type => :string, :default => nil, :aliases => ['-p'], :desc => 'Specify project location other than working directory'
124
124
  method_option :port, :type => :string, :default => '4020', :desc => "Port to host server on"
125
125
  def preview
@@ -129,7 +129,7 @@ module BPM
129
129
  end
130
130
 
131
131
  desc "rebuild", "Rebuilds bpm assets, does not update versions"
132
- method_option :mode, :type => :string, :default => :production, :aliases => ['-m'], :desc => 'Build mode for compile (default production)'
132
+ method_option :mode, :type => :string, :default => :production, :aliases => ['-m'], :desc => 'Build mode for compile'
133
133
  method_option :project, :type => :string, :default => nil, :aliases => ['-p'], :desc => 'Specify project location other than working directory'
134
134
  method_option :update, :type => :boolean, :default => false, :aliases => ['-u'], :desc => 'Updates dependencies to latest compatible version'
135
135
  def rebuild
@@ -176,7 +176,7 @@ module BPM
176
176
  end
177
177
  end
178
178
 
179
- desc "push", "Distribute your bpm package"
179
+ desc "push PACKAGE", "Distribute your bpm package"
180
180
  def push(package)
181
181
  remote = BPM::Remote.new
182
182
  if remote.logged_in?
@@ -236,8 +236,8 @@ module BPM
236
236
  desc "init [PATHS]", "Configure a project to use bpm for management"
237
237
  method_option :name, :type => :string, :default => nil, :desc => 'Specify a different name for the project'
238
238
  method_option :skip, :type => :boolean, :default => false, :desc => 'Skip any conflicting files'
239
- method_option :app, :type => :boolean, :default => false, :desc => 'Manage app as well as packages'
240
- method_option :package, :type => :string, :default => nil, :desc => 'Specify a package template to build from'
239
+ method_option :app, :type => :boolean, :default => false, :desc => 'Manage app files as well as packages. (Always true for new directories.)'
240
+ #method_option :package, :type => :string, :default => nil, :desc => 'Specify a package template to build from'
241
241
  def init(*paths)
242
242
  paths = [Dir.pwd] if paths.empty?
243
243
  paths.map!{|p| File.expand_path(p) }
@@ -259,7 +259,8 @@ module BPM
259
259
  if File.directory?(path)
260
260
  run_init(name, options[:app], path)
261
261
  else
262
- package = install_package(options[:package])
262
+ #package = install_package(options[:package])
263
+ package = nil
263
264
  template_path = package ? package.template_path(:project) : nil
264
265
  generator = get_generator(:project, package)
265
266
  success = generator.new(self, name, path, template_path, package).run
@@ -308,9 +309,9 @@ module BPM
308
309
  end
309
310
  end
310
311
 
311
- desc "debug [OPTION]", "Display various options for debugging"
312
- method_option :project, :type => :string, :default => nil, :aliases => ['-p'], :desc => 'Specify project location other than working directory'
313
- method_option :mode, :type => :string, :default => :debug, :aliases => ['-m'], :desc => 'Build mode (default debug)'
312
+ desc "debug [OPTION]", "Display various options for debugging.\n build - Shows all project build settings\n repair - Verify and repair project"
313
+ method_option :project, :type => :string, :default => nil, :aliases => ['-p'], :desc => 'Specify project location other than working directory'
314
+ method_option :mode, :type => :string, :default => :debug, :aliases => ['-m'], :desc => 'Build mode'
314
315
  def debug(option)
315
316
  case option
316
317
  when 'build'
@@ -32,7 +32,7 @@ module BPM::CLI
32
32
  end
33
33
  end
34
34
 
35
- desc "remove [PACKAGE] [EMAIL]", "Allow another user to push new versions of your bpm package"
35
+ desc "remove [PACKAGE] [EMAIL]", "Remove user's permission to push new versions of your bpm package"
36
36
  def remove(package, email)
37
37
  remote = BPM::Remote.new
38
38
  if remote.logged_in?
@@ -24,19 +24,17 @@ module BPM
24
24
  "dependencies:development" => :hash,
25
25
  "bpm:build" => :hash,
26
26
  "bpm:formats" => :hash,
27
- "bpm:transport" => :string,
28
27
  "bpm:use:transport" => :string,
29
- "bpm:minifier" => :string,
30
28
  "bpm:provides" => :hash
31
29
  }
32
30
 
33
- PLUGIN_FIELDS = %w[bpm:minifier]
34
-
31
+ PLUGIN_TYPES = %w[minifier]
32
+
35
33
  # Fields that can be loaded straight into the gemspec
36
34
  SPEC_FIELDS = %w[name email]
37
35
 
38
36
  # Fields that should be bundled up into JSON in the gemspec
39
- METADATA_FIELDS = %w[keywords licenses engines main bin directories pipeline bpm:build bpm:formats bpm:transport]
37
+ METADATA_FIELDS = %w[keywords licenses engines main bin directories pipeline bpm:build bpm:formats]
40
38
 
41
39
  REQUIRED_FIELDS = %w[name author version]
42
40
 
@@ -150,8 +148,8 @@ module BPM
150
148
  hash['directories'] || hash['assets']
151
149
  end
152
150
 
153
- build_names += PLUGIN_FIELDS.map do |field_name|
154
- val = self.send(c2u(field_name))
151
+ build_names += PLUGIN_TYPES.map do |type|
152
+ val = bpm_provides[type]
155
153
  val = val && val =~ /^#{name}\// ? val[name.size+1..-1]+'.js' : nil
156
154
  val
157
155
  end
@@ -190,7 +188,7 @@ module BPM
190
188
  pkg.name == pkg_name
191
189
  end
192
190
  raise "Could not find dependency: #{pkg_name}" unless dep
193
- dep.bpm_transport
191
+ dep.provided_transport
194
192
  end.compact
195
193
  end
196
194
 
@@ -399,9 +397,12 @@ module BPM
399
397
  def used_transports(project)
400
398
  pkgs=project.map_to_packages used_dependencies(project)
401
399
  pkgs.map { |pkg| pkg.provided_transport }.compact.flatten
402
- end
403
-
404
-
400
+ end
401
+
402
+ def provided_minifier
403
+ bpm_provides['minifier']
404
+ end
405
+
405
406
  # TODO: Make better errors
406
407
  # TODO: This might not work well with conflicting versions
407
408
  def local_deps(search_path=nil)
@@ -39,7 +39,7 @@ module BPM
39
39
  raise MinifierNotFoundError.new(minifier_name)
40
40
  end
41
41
 
42
- minifier_plugin_name = pkg.bpm_minifier
42
+ minifier_plugin_name = pkg.provided_minifier
43
43
  if minifier_plugin_name.nil?
44
44
  raise MinifierNotFoundError.new(minifier_name)
45
45
  end
@@ -111,7 +111,6 @@ module BPM
111
111
  project = environment.project
112
112
  settings = project.build_settings(environment.mode)[asset_name]
113
113
  pkgs = settings.keys.map do |pkg_name|
114
- next if pkg_name == 'bpm:minifier'
115
114
  if pkg_name == project.name
116
115
  project
117
116
  else
@@ -483,7 +483,9 @@ module BPM
483
483
  # Name of minifier
484
484
 
485
485
  def minifier_name(asset_name)
486
- build_settings[asset_name] && build_settings[asset_name]['bpm:minifier']
486
+ build_settings[asset_name] &&
487
+ build_settings[asset_name]['bpm:provides'] &&
488
+ build_settings[asset_name]['bpm:provides']['minifier']
487
489
  end
488
490
 
489
491
  def load_json
@@ -754,11 +756,12 @@ module BPM
754
756
  end
755
757
 
756
758
  if opts['minifier']
759
+ ret[target_name]['bpm:provides'] ||= {}
757
760
  if opts['minifier'].is_a? String
758
- ret[target_name]['bpm:minifier'] = {}
759
- ret[target_name]['bpm:minifier'][opts['minifier']] = '>= 0'
761
+ ret[target_name]['bpm:provides']['minifier'] = {}
762
+ ret[target_name]['bpm:provides']['minifier'][opts['minifier']] = '>= 0'
760
763
  else
761
- ret[target_name]['bpm:minifier'] = opts['minifier']
764
+ ret[target_name]['bpm:provides']['minifier'] = opts['minifier']
762
765
  end
763
766
  end
764
767
 
@@ -1,4 +1,4 @@
1
1
  module BPM
2
- VERSION = "1.0.0.beta.10"
2
+ VERSION = "1.0.0.beta.11"
3
3
  COMPAT_VERSION = '1.0.0'
4
4
  end
@@ -118,7 +118,7 @@ describe "bpm init on a non-existant directory" do
118
118
  bpm 'init', 'BpmTest'
119
119
 
120
120
 
121
- files = %w(LICENSE README.md index.html app/main.js BpmTest.json)
121
+ files = %w(LICENSE README.md index.html lib/main.js BpmTest.json)
122
122
  generated_files = %w(assets/bpm_libs.js assets/bpm_styles.css)
123
123
 
124
124
  # output without coloration
@@ -145,6 +145,7 @@ describe "bpm init on a non-existant directory" do
145
145
 
146
146
  end
147
147
 
148
+ =begin
148
149
  describe "package templates" do
149
150
 
150
151
  describe "with custom generator" do
@@ -201,5 +202,6 @@ describe "bpm init on a non-existant directory" do
201
202
  end
202
203
 
203
204
  end
205
+ =end
204
206
 
205
207
  end
@@ -15,7 +15,9 @@
15
15
 
16
16
  "homepage": "http://github.com/getbpm/UglifyJS",
17
17
 
18
- "bpm:minifier": "uglify-js/plugins/minifier",
18
+ "bpm:provides": {
19
+ "minifier": "uglify-js/plugins/minifier"
20
+ },
19
21
 
20
22
  "directories": {
21
23
  "lib": "lib",
@@ -15,7 +15,8 @@
15
15
 
16
16
  "dependencies": {
17
17
  },
18
-
19
- "bpm:minifier": "uglyduck/minifier/main"
20
-
18
+
19
+ "bpm:provides": {
20
+ "minifier": "uglyduck/minifier/main"
21
+ }
21
22
  }
@@ -15,7 +15,8 @@
15
15
 
16
16
  "dependencies": {
17
17
  },
18
-
19
- "bpm:minifier": "uglyduck/minifier/main"
20
-
18
+
19
+ "bpm:provides": {
20
+ "minifier": "uglyduck/minifier/main"
21
+ }
21
22
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bpm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta.10
4
+ version: 1.0.0.beta.11
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-08-03 00:00:00.000000000Z
13
+ date: 2011-08-04 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: libgems
17
- requirement: &2153010600 !ruby/object:Gem::Requirement
17
+ requirement: &2151996900 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 0.0.5
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2153010600
25
+ version_requirements: *2151996900
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: gemcutter
28
- requirement: &2153009800 !ruby/object:Gem::Requirement
28
+ requirement: &2152165560 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 0.6.1
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *2153009800
36
+ version_requirements: *2152165560
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: highline
39
- requirement: &2153009080 !ruby/object:Gem::Requirement
39
+ requirement: &2156015900 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 1.6.1
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *2153009080
47
+ version_requirements: *2156015900
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: json_pure
50
- requirement: &2153008380 !ruby/object:Gem::Requirement
50
+ requirement: &2156555820 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ~>
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: 1.4.6
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *2153008380
58
+ version_requirements: *2156555820
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: thor
61
- requirement: &2153007560 !ruby/object:Gem::Requirement
61
+ requirement: &2157061380 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ~>
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: 0.14.3
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *2153007560
69
+ version_requirements: *2157061380
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: therubyracer
72
- requirement: &2153006600 !ruby/object:Gem::Requirement
72
+ requirement: &2157268420 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ~>
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: 0.9.3beta1
78
78
  type: :runtime
79
79
  prerelease: false
80
- version_requirements: *2153006600
80
+ version_requirements: *2157268420
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: sprockets
83
- requirement: &2153005700 !ruby/object:Gem::Requirement
83
+ requirement: &2157683060 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ~>
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: 2.0.0.beta.12
89
89
  type: :runtime
90
90
  prerelease: false
91
- version_requirements: *2153005700
91
+ version_requirements: *2157683060
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: rspec
94
- requirement: &2153004800 !ruby/object:Gem::Requirement
94
+ requirement: &2158161380 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ! '>='
@@ -99,10 +99,10 @@ dependencies:
99
99
  version: '0'
100
100
  type: :development
101
101
  prerelease: false
102
- version_requirements: *2153004800
102
+ version_requirements: *2158161380
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: rack
105
- requirement: &2153003580 !ruby/object:Gem::Requirement
105
+ requirement: &2158272440 !ruby/object:Gem::Requirement
106
106
  none: false
107
107
  requirements:
108
108
  - - ~>
@@ -110,7 +110,7 @@ dependencies:
110
110
  version: 1.2.1
111
111
  type: :development
112
112
  prerelease: false
113
- version_requirements: *2153003580
113
+ version_requirements: *2158272440
114
114
  description: Browser Package Manager
115
115
  email:
116
116
  - charles@sproutcore.com