bpm 1.0.0.rc.2 → 1.0.0.rc.3

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.
data/bpm.gemspec CHANGED
@@ -23,6 +23,8 @@ Gem::Specification.new do |s|
23
23
  s.add_dependency "thor", "~> 0.14.3"
24
24
  s.add_dependency "execjs", "~> 1.2.4"
25
25
  s.add_dependency "sprockets", "~> 2.0.0"
26
+ s.add_dependency "eventmachine", "~> 1.0.0.beta.4" # There are issues with 0.12.10 and thin
27
+ s.add_dependency "thin", "~> 1.2"
26
28
 
27
29
  s.add_development_dependency "rspec"
28
30
  s.add_development_dependency "rack", "~> 1.3.2"
data/lib/bpm.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  Encoding.default_external = 'UTF-8'
2
2
 
3
+ require 'bpm/railtie' if defined?(Rails)
4
+
3
5
  module BPM
4
6
  BPM_DIR = ".bpm"
5
7
  TEMPLATES_DIR = File.expand_path("../../templates", __FILE__)
@@ -12,6 +14,7 @@ module BPM
12
14
  autoload :Remote, 'bpm/remote'
13
15
  autoload :Repository, 'bpm/repository'
14
16
  autoload :Project, 'bpm/project'
17
+ autoload :Rack, 'bpm/rack'
15
18
  autoload :Server, 'bpm/server'
16
19
  autoload :Pipeline, 'bpm/pipeline'
17
20
  autoload :DirectiveProcessor, 'bpm/pipeline/directive_processor'
data/lib/bpm/package.rb CHANGED
@@ -401,19 +401,13 @@ module BPM
401
401
  # TODO: Make better errors
402
402
  # TODO: This might not work well with conflicting versions
403
403
  def local_deps(search_paths=nil)
404
- # Using the packages directory is deprecated
405
- packages_path = File.join(root_path, "packages")
406
- search_paths ||= [File.join(root_path, "vendor"), packages_path]
404
+ search_paths ||= [File.join(root_path, "vendor"), File.join(root_path, "packages")]
407
405
 
408
406
  dependencies.inject([]) do |list, (name, version)|
409
407
  packages = search_paths.map{|p| Package.new(File.join(p, name)) }.select{|p| p.has_json? }
410
408
 
411
409
  raise "Can't find package #{name} required in #{self.name}" if packages.empty?
412
410
 
413
- if packages.any?{|p| p.root_path =~ /^#{Regexp.escape(packages_path)}\// }
414
- BPM.deprecation_warning "Use the vendor directory instead of the packages directory for #{root_path}"
415
- end
416
-
417
411
  packages.each{|p| p.load_json }
418
412
 
419
413
  unless satisfied_by?(version, package.version)
data/lib/bpm/pipeline.rb CHANGED
@@ -154,6 +154,12 @@ module BPM
154
154
  asset
155
155
  end
156
156
 
157
+ # Index is for caching, but it causes us problem,
158
+ # we don't need the caching
159
+ def index
160
+ self
161
+ end
162
+
157
163
  protected
158
164
 
159
165
  def build_magic_paths
@@ -118,7 +118,7 @@ module BPM
118
118
 
119
119
  hash = environment.cache_hash("#{pathname}:minify", id) do
120
120
  data = minify_body hash['source']
121
- { 'length' => Rack::Utils.bytesize(data),
121
+ { 'length' => ::Rack::Utils.bytesize(data),
122
122
  'digest' => environment.digest.update(data).hexdigest,
123
123
  'source' => data }
124
124
  end
@@ -73,7 +73,12 @@ module BPM
73
73
  rescue Sprockets::FileNotFound => e
74
74
  raise Sprockets::FileNotFound, "#{e.message} in package '#{package_name}'"
75
75
  end
76
-
76
+
77
+ # Index is for caching, but it causes us problem,
78
+ # we don't need the caching
79
+ def index
80
+ self
81
+ end
77
82
 
78
83
  end
79
84
  end
data/lib/bpm/rack.rb ADDED
@@ -0,0 +1,20 @@
1
+ module BPM
2
+ class Rack
3
+ def initialize(app, project, opts={})
4
+ mode = opts[:mode] || :debug
5
+
6
+ @app = app
7
+ @prefix = File.join('/', opts[:url_prefix] || '', 'assets')
8
+ @pipeline = BPM::Pipeline.new(project, mode, true)
9
+ end
10
+
11
+ def call(env)
12
+ if env['PATH_INFO'] =~ /^#{@prefix}\/(.+)$/
13
+ env['PATH_INFO'] = $1
14
+ @pipeline.call(env)
15
+ else
16
+ @app.call(env)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,17 @@
1
+ module BPM
2
+ class Railtie < Rails::Railtie
3
+ railtie_name :bpm_rails
4
+
5
+ config.preview_bpm_app = false
6
+ config.bpm_app_dir = 'app'
7
+
8
+ initializer "bpm_rails.insert_bpm_pipeline" do |app|
9
+ if app.config.preview_bpm_app
10
+ path = app.config.bpm_app_dir
11
+ full_path = File.join(app.paths['public'].first, app.config.bpm_app_dir)
12
+ project = BPM::Project.new(full_path)
13
+ app.config.middleware.insert_before 'ActionDispatch::Static', 'BPM::Rack', project, :mode => :debug, :url_prefix => path
14
+ end
15
+ end
16
+ end
17
+ end
data/lib/bpm/server.rb CHANGED
@@ -1,12 +1,14 @@
1
1
  require 'rack'
2
2
  require 'sprockets'
3
+ require 'thin'
3
4
 
4
5
  module BPM
5
6
 
6
- class Server < Rack::Server
7
+ class Server < ::Rack::Server
7
8
 
8
9
  def initialize(project, options={})
9
10
  options = default_options.merge(options)
11
+ options[:server] ||= 'thin'
10
12
  @project = project
11
13
  @mode = options[:mode] || :debug
12
14
  super options
@@ -29,14 +31,9 @@ module BPM
29
31
  cur_project = @project
30
32
  cur_mode = @mode
31
33
 
32
- @app ||= Rack::Builder.new do
33
- map '/assets' do
34
- run BPM::Pipeline.new cur_project, cur_mode, true
35
- end
36
-
37
- map '/' do
38
- run Rack::Directory.new cur_project.root_path
39
- end
34
+ @app ||= ::Rack::Builder.new do
35
+ use BPM::Rack, cur_project, :mode => cur_mode
36
+ run ::Rack::Directory.new cur_project.root_path
40
37
  end.to_app
41
38
  end
42
39
  end
data/lib/bpm/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module BPM
2
- VERSION = "1.0.0.rc.2"
2
+ VERSION = "1.0.0.rc.3"
3
3
  COMPAT_VERSION = '1.0.0'
4
4
  end
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.rc.2
4
+ version: 1.0.0.rc.3
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-09-14 00:00:00.000000000Z
13
+ date: 2011-09-15 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: libgems
17
- requirement: &70191052678920 !ruby/object:Gem::Requirement
17
+ requirement: &70174351642100 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 0.1.3
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70191052678920
25
+ version_requirements: *70174351642100
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: gemcutter
28
- requirement: &70191052677960 !ruby/object:Gem::Requirement
28
+ requirement: &70174351641560 !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: *70191052677960
36
+ version_requirements: *70174351641560
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: highline
39
- requirement: &70191052672680 !ruby/object:Gem::Requirement
39
+ requirement: &70174351641000 !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: *70191052672680
47
+ version_requirements: *70174351641000
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: json_pure
50
- requirement: &70191052671720 !ruby/object:Gem::Requirement
50
+ requirement: &70174351640500 !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: *70191052671720
58
+ version_requirements: *70174351640500
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: thor
61
- requirement: &70191052670660 !ruby/object:Gem::Requirement
61
+ requirement: &70174351639980 !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: *70191052670660
69
+ version_requirements: *70174351639980
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: execjs
72
- requirement: &70191052669580 !ruby/object:Gem::Requirement
72
+ requirement: &70174351639500 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ~>
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: 1.2.4
78
78
  type: :runtime
79
79
  prerelease: false
80
- version_requirements: *70191052669580
80
+ version_requirements: *70174351639500
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: sprockets
83
- requirement: &70191052668620 !ruby/object:Gem::Requirement
83
+ requirement: &70174351639020 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ~>
@@ -88,10 +88,32 @@ dependencies:
88
88
  version: 2.0.0
89
89
  type: :runtime
90
90
  prerelease: false
91
- version_requirements: *70191052668620
91
+ version_requirements: *70174351639020
92
+ - !ruby/object:Gem::Dependency
93
+ name: eventmachine
94
+ requirement: &70174351638520 !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ~>
98
+ - !ruby/object:Gem::Version
99
+ version: 1.0.0.beta.4
100
+ type: :runtime
101
+ prerelease: false
102
+ version_requirements: *70174351638520
103
+ - !ruby/object:Gem::Dependency
104
+ name: thin
105
+ requirement: &70174351638040 !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: '1.2'
111
+ type: :runtime
112
+ prerelease: false
113
+ version_requirements: *70174351638040
92
114
  - !ruby/object:Gem::Dependency
93
115
  name: rspec
94
- requirement: &70191052667680 !ruby/object:Gem::Requirement
116
+ requirement: &70174351637660 !ruby/object:Gem::Requirement
95
117
  none: false
96
118
  requirements:
97
119
  - - ! '>='
@@ -99,10 +121,10 @@ dependencies:
99
121
  version: '0'
100
122
  type: :development
101
123
  prerelease: false
102
- version_requirements: *70191052667680
124
+ version_requirements: *70174351637660
103
125
  - !ruby/object:Gem::Dependency
104
126
  name: rack
105
- requirement: &70191052666080 !ruby/object:Gem::Requirement
127
+ requirement: &70174351637080 !ruby/object:Gem::Requirement
106
128
  none: false
107
129
  requirements:
108
130
  - - ~>
@@ -110,7 +132,7 @@ dependencies:
110
132
  version: 1.3.2
111
133
  type: :development
112
134
  prerelease: false
113
- version_requirements: *70191052666080
135
+ version_requirements: *70174351637080
114
136
  description: Browser Package Manager
115
137
  email:
116
138
  - charles@sproutcore.com
@@ -156,6 +178,8 @@ files:
156
178
  - lib/bpm/pipeline/source_url_processor.rb
157
179
  - lib/bpm/project.rb
158
180
  - lib/bpm/project_generator.rb
181
+ - lib/bpm/rack.rb
182
+ - lib/bpm/railtie.rb
159
183
  - lib/bpm/remote.rb
160
184
  - lib/bpm/repository.rb
161
185
  - lib/bpm/server.rb