bowerify 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ffb2ba24914043e90291810224693c702e9751c3
4
+ data.tar.gz: c848c2261ce2d631de3eacf3c04b82e871ae908c
5
+ SHA512:
6
+ metadata.gz: 52476e9da0221aa9c0c7fb8788a86f08d2be587f2a47a20f97fa31af15a54c2225a550b47a6864719cdcf321248606e57b83630250eed5316977c3f095358770
7
+ data.tar.gz: 06ca84e749dfad74a2e8d9cfc877c9368f20539c27e4b9a711b230b0e3676ee18e9f2802e389a8bb25fae0092487726304f51d7873bb50229773842db56b4d51
data/README.md ADDED
@@ -0,0 +1,35 @@
1
+ # Bowerify
2
+
3
+ A little gem that patches Sprockets in order for it to resolve
4
+ the [bower](http://bower.io) components relative assets paths
5
+ correclty.
6
+
7
+ Can be used with vanilla `bower` toolchain or in conjunction with
8
+ the [bower-rails](https://github.com/42dev/bower-rails) gem.
9
+
10
+ ## Usage
11
+
12
+ Add the gem to your `Gemfile`
13
+
14
+ ```ruby
15
+ gem 'bowerify'
16
+ ```
17
+
18
+ Breath normally.
19
+
20
+ ## Bower Components Location
21
+
22
+ This plugin assumes that you install your bower assets into the
23
+ `lib/assets/components` folder. if you need to change that, add
24
+ this to your `config/application.rb`
25
+
26
+ ```ruby
27
+ config.bower_components_path = Rails.root.join("path/to/your/components")
28
+ ```
29
+
30
+
31
+ ## Copyright & License
32
+
33
+ All code in this repository is released under the terms of the MIT license.
34
+
35
+ Copyrigth (C) 2014 Nikolay Nemshilov
data/bowerify.gemspec ADDED
@@ -0,0 +1,20 @@
1
+ # coding: utf-8
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require 'bowerify/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "bowerify"
7
+ spec.version = Bowerify::VERSION
8
+ spec.authors = ["Nikolay Nemshilov"]
9
+ spec.email = ["nemshilov@gmail.com"]
10
+ spec.description = "Bower components handler for sprockets"
11
+ spec.summary = "Bower components handler for sprockets and rails"
12
+ spec.license = "MIT"
13
+
14
+ spec.files = `git ls-files`.split($/)
15
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
16
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
+ spec.require_paths = ["lib"]
18
+
19
+ spec.add_dependency "sprockets"
20
+ end
data/lib/bowerify.rb ADDED
@@ -0,0 +1,7 @@
1
+ require "rails"
2
+ require "bowerify/railtie"
3
+ require "bowerify/assets_processor"
4
+
5
+ module Bowerify
6
+
7
+ end
@@ -0,0 +1,27 @@
1
+ class Bowerify::AssetsProcessor < Sprockets::Processor
2
+ CSS_URL_RE = /(url\(('|"|))((.+?)\.(gif|png|jpg|jpeg|ttf|svg|woff|eot))(.*?\2\))/
3
+
4
+ def evaluate(context, locals={})
5
+ if context.pathname.to_s.starts_with?(bower_components_path)
6
+ fix_assets_path data, context
7
+ else
8
+ data
9
+ end
10
+ end
11
+
12
+ def fix_assets_path(data, context)
13
+ data.gsub CSS_URL_RE do |*args|
14
+ s1, s2 = $1.dup, $6.dup
15
+
16
+ path = File.expand_path("#{context.pathname.dirname}/#{$3}")
17
+ path = path.gsub("#{bower_components_path}/", "")
18
+ path = context.asset_path(path)
19
+
20
+ "#{s1}#{path}#{s2}"
21
+ end
22
+ end
23
+
24
+ def bower_components_path
25
+ Rails.application.config.bower_components_path.to_s
26
+ end
27
+ end
@@ -0,0 +1,13 @@
1
+ module Bowerify
2
+ class Railtie < Rails::Railtie
3
+ railtie_name :bowerify
4
+
5
+ config.before_initialize do |app|
6
+ app.config.bower_components_path = Rails.root.join('lib', 'assets', 'components')
7
+ app.config.assets.paths << app.config.bower_components_path
8
+
9
+ app.assets.register_preprocessor 'text/css', Bowerify::AssetsProcessor
10
+ app.assets.register_preprocessor 'application/javascript', Bowerify::AssetsProcessor
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,3 @@
1
+ module Bowerify
2
+ VERSION = '1.0.0'
3
+ end
metadata ADDED
@@ -0,0 +1,64 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bowerify
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Nikolay Nemshilov
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-05-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: sprockets
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: Bower components handler for sprockets
28
+ email:
29
+ - nemshilov@gmail.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - README.md
35
+ - bowerify.gemspec
36
+ - lib/bowerify.rb
37
+ - lib/bowerify/assets_processor.rb
38
+ - lib/bowerify/railtie.rb
39
+ - lib/bowerify/version.rb
40
+ homepage:
41
+ licenses:
42
+ - MIT
43
+ metadata: {}
44
+ post_install_message:
45
+ rdoc_options: []
46
+ require_paths:
47
+ - lib
48
+ required_ruby_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ required_rubygems_version: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: '0'
58
+ requirements: []
59
+ rubyforge_project:
60
+ rubygems_version: 2.2.2
61
+ signing_key:
62
+ specification_version: 4
63
+ summary: Bower components handler for sprockets and rails
64
+ test_files: []