npm2gem 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +15 -0
- data/.rspec +2 -0
- data/.rubocop.yml +241 -0
- data/.ruby-version +1 -0
- data/.travis.yml +4 -0
- data/CODE_OF_CONDUCT.md +111 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +102 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/exe/npm2gem +8 -0
- data/lib/npm2gem/cli.rb +56 -0
- data/lib/npm2gem/config.rb +21 -0
- data/lib/npm2gem/exception.rb +4 -0
- data/lib/npm2gem/file_copier.rb +65 -0
- data/lib/npm2gem/gem_version_updater.rb +42 -0
- data/lib/npm2gem/npm_install.rb +36 -0
- data/lib/npm2gem/version.rb +3 -0
- data/lib/npm2gem/version_updaters/base_file_updater.rb +29 -0
- data/lib/npm2gem/version_updaters/gemspec_updater.rb +12 -0
- data/lib/npm2gem/version_updaters/version_file_updater.rb +18 -0
- data/lib/npm2gem.rb +5 -0
- data/npm2gem.gemspec +31 -0
- data/spec/cli_spec.rb +22 -0
- data/spec/config_spec.rb +40 -0
- data/spec/dummy/Gemfile +4 -0
- data/spec/dummy/README.md +7 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/dummy.gemspec +31 -0
- data/spec/dummy/lib/dummy/version.rb +3 -0
- data/spec/dummy/lib/dummy.rb +8 -0
- data/spec/dummy/node_modules/bootstrap/CHANGELOG.md +5 -0
- data/spec/dummy/node_modules/bootstrap/Gruntfile.js +533 -0
- data/spec/dummy/node_modules/bootstrap/LICENSE +21 -0
- data/spec/dummy/node_modules/bootstrap/README.md +139 -0
- data/spec/dummy/node_modules/bootstrap/dist/css/bootstrap-theme.css +587 -0
- data/spec/dummy/node_modules/bootstrap/dist/css/bootstrap-theme.css.map +1 -0
- data/spec/dummy/node_modules/bootstrap/dist/css/bootstrap-theme.min.css +6 -0
- data/spec/dummy/node_modules/bootstrap/dist/css/bootstrap-theme.min.css.map +1 -0
- data/spec/dummy/node_modules/bootstrap/dist/css/bootstrap.css +6760 -0
- data/spec/dummy/node_modules/bootstrap/dist/css/bootstrap.css.map +1 -0
- data/spec/dummy/node_modules/bootstrap/dist/css/bootstrap.min.css +6 -0
- data/spec/dummy/node_modules/bootstrap/dist/css/bootstrap.min.css.map +1 -0
- data/spec/dummy/node_modules/bootstrap/dist/fonts/glyphicons-halflings-regular.eot +0 -0
- data/spec/dummy/node_modules/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +288 -0
- data/spec/dummy/node_modules/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/spec/dummy/node_modules/bootstrap/dist/fonts/glyphicons-halflings-regular.woff +0 -0
- data/spec/dummy/node_modules/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 +0 -0
- data/spec/dummy/node_modules/bootstrap/dist/js/bootstrap.js +2363 -0
- data/spec/dummy/node_modules/bootstrap/dist/js/bootstrap.min.js +7 -0
- data/spec/dummy/node_modules/bootstrap/dist/js/npm.js +13 -0
- data/spec/dummy/node_modules/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
- data/spec/dummy/node_modules/bootstrap/fonts/glyphicons-halflings-regular.svg +288 -0
- data/spec/dummy/node_modules/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/spec/dummy/node_modules/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
- data/spec/dummy/node_modules/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
- data/spec/dummy/node_modules/bootstrap/grunt/bs-commonjs-generator.js +30 -0
- data/spec/dummy/node_modules/bootstrap/grunt/bs-glyphicons-data-generator.js +42 -0
- data/spec/dummy/node_modules/bootstrap/grunt/bs-lessdoc-parser.js +237 -0
- data/spec/dummy/node_modules/bootstrap/grunt/bs-raw-files-generator.js +44 -0
- data/spec/dummy/node_modules/bootstrap/grunt/configBridge.json +46 -0
- data/spec/dummy/node_modules/bootstrap/grunt/sauce_browsers.yml +82 -0
- data/spec/dummy/node_modules/bootstrap/js/affix.js +162 -0
- data/spec/dummy/node_modules/bootstrap/js/alert.js +94 -0
- data/spec/dummy/node_modules/bootstrap/js/button.js +120 -0
- data/spec/dummy/node_modules/bootstrap/js/carousel.js +237 -0
- data/spec/dummy/node_modules/bootstrap/js/collapse.js +211 -0
- data/spec/dummy/node_modules/bootstrap/js/dropdown.js +165 -0
- data/spec/dummy/node_modules/bootstrap/js/modal.js +337 -0
- data/spec/dummy/node_modules/bootstrap/js/popover.js +108 -0
- data/spec/dummy/node_modules/bootstrap/js/scrollspy.js +172 -0
- data/spec/dummy/node_modules/bootstrap/js/tab.js +155 -0
- data/spec/dummy/node_modules/bootstrap/js/tooltip.js +514 -0
- data/spec/dummy/node_modules/bootstrap/js/transition.js +59 -0
- data/spec/dummy/node_modules/bootstrap/less/alerts.less +73 -0
- data/spec/dummy/node_modules/bootstrap/less/badges.less +66 -0
- data/spec/dummy/node_modules/bootstrap/less/bootstrap.less +56 -0
- data/spec/dummy/node_modules/bootstrap/less/breadcrumbs.less +26 -0
- data/spec/dummy/node_modules/bootstrap/less/button-groups.less +244 -0
- data/spec/dummy/node_modules/bootstrap/less/buttons.less +166 -0
- data/spec/dummy/node_modules/bootstrap/less/carousel.less +270 -0
- data/spec/dummy/node_modules/bootstrap/less/close.less +34 -0
- data/spec/dummy/node_modules/bootstrap/less/code.less +69 -0
- data/spec/dummy/node_modules/bootstrap/less/component-animations.less +33 -0
- data/spec/dummy/node_modules/bootstrap/less/dropdowns.less +216 -0
- data/spec/dummy/node_modules/bootstrap/less/forms.less +613 -0
- data/spec/dummy/node_modules/bootstrap/less/glyphicons.less +305 -0
- data/spec/dummy/node_modules/bootstrap/less/grid.less +84 -0
- data/spec/dummy/node_modules/bootstrap/less/input-groups.less +171 -0
- data/spec/dummy/node_modules/bootstrap/less/jumbotron.less +54 -0
- data/spec/dummy/node_modules/bootstrap/less/labels.less +64 -0
- data/spec/dummy/node_modules/bootstrap/less/list-group.less +130 -0
- data/spec/dummy/node_modules/bootstrap/less/media.less +66 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/alerts.less +14 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/background-variant.less +9 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/border-radius.less +18 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/buttons.less +65 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/center-block.less +7 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/clearfix.less +22 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/forms.less +85 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/gradients.less +59 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/grid-framework.less +91 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/grid.less +122 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/hide-text.less +21 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/image.less +33 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/labels.less +12 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/list-group.less +30 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/nav-divider.less +10 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/nav-vertical-align.less +9 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/opacity.less +8 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/pagination.less +24 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/panels.less +24 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/progress-bar.less +10 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/reset-filter.less +8 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/reset-text.less +18 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/resize.less +6 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/responsive-visibility.less +15 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/size.less +10 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/tab-focus.less +9 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/table-row.less +28 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/text-emphasis.less +9 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/text-overflow.less +8 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins/vendor-prefixes.less +227 -0
- data/spec/dummy/node_modules/bootstrap/less/mixins.less +40 -0
- data/spec/dummy/node_modules/bootstrap/less/modals.less +150 -0
- data/spec/dummy/node_modules/bootstrap/less/navbar.less +660 -0
- data/spec/dummy/node_modules/bootstrap/less/navs.less +242 -0
- data/spec/dummy/node_modules/bootstrap/less/normalize.less +424 -0
- data/spec/dummy/node_modules/bootstrap/less/pager.less +54 -0
- data/spec/dummy/node_modules/bootstrap/less/pagination.less +89 -0
- data/spec/dummy/node_modules/bootstrap/less/panels.less +271 -0
- data/spec/dummy/node_modules/bootstrap/less/popovers.less +131 -0
- data/spec/dummy/node_modules/bootstrap/less/print.less +101 -0
- data/spec/dummy/node_modules/bootstrap/less/progress-bars.less +87 -0
- data/spec/dummy/node_modules/bootstrap/less/responsive-embed.less +35 -0
- data/spec/dummy/node_modules/bootstrap/less/responsive-utilities.less +194 -0
- data/spec/dummy/node_modules/bootstrap/less/scaffolding.less +161 -0
- data/spec/dummy/node_modules/bootstrap/less/tables.less +234 -0
- data/spec/dummy/node_modules/bootstrap/less/theme.less +291 -0
- data/spec/dummy/node_modules/bootstrap/less/thumbnails.less +36 -0
- data/spec/dummy/node_modules/bootstrap/less/tooltip.less +101 -0
- data/spec/dummy/node_modules/bootstrap/less/type.less +302 -0
- data/spec/dummy/node_modules/bootstrap/less/utilities.less +55 -0
- data/spec/dummy/node_modules/bootstrap/less/variables.less +869 -0
- data/spec/dummy/node_modules/bootstrap/less/wells.less +29 -0
- data/spec/dummy/node_modules/bootstrap/package.json +138 -0
- data/spec/dummy/vendor/assets/javascripts/bootstrap.js +2363 -0
- data/spec/dummy/vendor/assets/stylesheets/bootstrap-theme.css +587 -0
- data/spec/dummy/vendor/assets/stylesheets/bootstrap.css +6760 -0
- data/spec/file_copier_spec.rb +45 -0
- data/spec/gem_version_updater_spec.rb +45 -0
- data/spec/npm2gem_spec.rb +7 -0
- data/spec/npm_install_spec.rb +22 -0
- data/spec/spec_helper.rb +26 -0
- metadata +403 -0
@@ -0,0 +1,65 @@
|
|
1
|
+
require "fileutils"
|
2
|
+
|
3
|
+
module NPM2Gem
|
4
|
+
class FileCopier
|
5
|
+
def initialize(from_base, to_base)
|
6
|
+
@from_base = from_base
|
7
|
+
@to_base = to_base
|
8
|
+
end
|
9
|
+
|
10
|
+
def copy(input_paths)
|
11
|
+
input_paths.each do |input_path|
|
12
|
+
# TODO: replace with polymorphism, for the love of god
|
13
|
+
if input_path.is_a?(Hash)
|
14
|
+
copy_to_subfolder(input_path)
|
15
|
+
else
|
16
|
+
copy_single(input_path)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def copy_to_subfolder(input_hash)
|
24
|
+
input_hash.each do |subfolder, input_paths|
|
25
|
+
input_paths.each do |input_path|
|
26
|
+
copy_single(input_path, subfolder)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def copy_single(input_path, subfolder = "")
|
32
|
+
Dir.glob(from_path(input_path)).each do |from_path|
|
33
|
+
file_type_directory = file_type_directory(from_path)
|
34
|
+
FileUtils.mkdir_p(to_path(file_type_directory, subfolder))
|
35
|
+
|
36
|
+
FileUtils.cp(
|
37
|
+
from_path,
|
38
|
+
to_path(file_type_directory, subfolder)
|
39
|
+
)
|
40
|
+
puts "Copied #{from_path} \t"
|
41
|
+
puts " to #{to_path(input_path, subfolder)}"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def from_path(input_path)
|
46
|
+
File.join(@from_base, input_path)
|
47
|
+
end
|
48
|
+
|
49
|
+
def to_path(file_type_directory, subfolder = "", file_name = "")
|
50
|
+
File.join(@to_base, file_type_directory, subfolder, file_name)
|
51
|
+
end
|
52
|
+
|
53
|
+
def file_type_directory(file_name)
|
54
|
+
if file_name.include?("css")
|
55
|
+
"stylesheets"
|
56
|
+
elsif file_name.include?("js")
|
57
|
+
"javascripts"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def file_name(input_path)
|
62
|
+
input_path.split("/").last
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require "npm2gem/version_updaters/version_file_updater"
|
2
|
+
require "npm2gem/version_updaters/gemspec_updater"
|
3
|
+
|
4
|
+
module NPM2Gem
|
5
|
+
class GemVersionUpdater
|
6
|
+
def initialize
|
7
|
+
@gemspec_file_name = Dir["*.gemspec"].first
|
8
|
+
end
|
9
|
+
|
10
|
+
def run(new_version)
|
11
|
+
if gemspec_version =~ /VERSION/
|
12
|
+
VersionFileUpdater.new(file_path).run(new_version)
|
13
|
+
else
|
14
|
+
GemspecUpdater.new(file_path, gemspec_version).run(new_version)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def file_path
|
21
|
+
if gemspec_version =~ /VERSION/
|
22
|
+
Dir["**/version.rb"].first
|
23
|
+
else
|
24
|
+
@gemspec_file_name
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def gemspec_version
|
29
|
+
unless gemspec_version_line.empty?
|
30
|
+
gemspec_version_line.match(
|
31
|
+
/=\s*(.*VERSION.*)\s*|["'](.*)["']/
|
32
|
+
).captures.compact.first
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def gemspec_version_line
|
37
|
+
File.readlines(@gemspec_file_name).detect do |line|
|
38
|
+
line =~ /\.version/
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require "json"
|
2
|
+
|
3
|
+
module NPM2Gem
|
4
|
+
class NPMInstall
|
5
|
+
def initialize(package_name)
|
6
|
+
create_node_modules_directory
|
7
|
+
|
8
|
+
unless system("npm install #{package_name}")
|
9
|
+
raise NPM2Gem::Exception, "Couldn't install..."
|
10
|
+
end
|
11
|
+
|
12
|
+
@package_name = package_name
|
13
|
+
end
|
14
|
+
|
15
|
+
def path
|
16
|
+
File.join("node_modules", @package_name)
|
17
|
+
end
|
18
|
+
|
19
|
+
def package_version
|
20
|
+
parse_json_file("package.json")["version"]
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
# If npm cannot create a `node_modules` folder,
|
26
|
+
# it will fallback to installing globally.
|
27
|
+
# We don't want that.
|
28
|
+
def create_node_modules_directory
|
29
|
+
Dir.mkdir("node_modules") unless Dir.exist?("node_modules")
|
30
|
+
end
|
31
|
+
|
32
|
+
def parse_json_file(json_file_name)
|
33
|
+
JSON.parse(File.read(File.join(path, json_file_name)))
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module NPM2Gem
|
2
|
+
class BaseFileUpdater
|
3
|
+
def initialize(file_name, current_version)
|
4
|
+
@file_name = file_name
|
5
|
+
@current_version = current_version
|
6
|
+
@file_contents = File.read(@file_name)
|
7
|
+
end
|
8
|
+
|
9
|
+
def run(new_version)
|
10
|
+
write_new_version_file(new_version)
|
11
|
+
new_version
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def write_new_version_file(new_version)
|
17
|
+
File.open(@file_name, "w") do |file|
|
18
|
+
file.write(new_file_contents(new_version))
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def new_file_contents(new_version)
|
23
|
+
@file_contents.gsub(
|
24
|
+
@current_version,
|
25
|
+
new_version
|
26
|
+
)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require "npm2gem/version_updaters/base_file_updater"
|
2
|
+
|
3
|
+
module NPM2Gem
|
4
|
+
class VersionFileUpdater < BaseFileUpdater
|
5
|
+
def initialize(file_path)
|
6
|
+
super(
|
7
|
+
file_path,
|
8
|
+
old_version(file_path)
|
9
|
+
)
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def old_version(file_path)
|
15
|
+
File.read(file_path).match(/VERSION\s*=\s*"(.*)"/).captures.first
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/npm2gem.rb
ADDED
data/npm2gem.gemspec
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require "npm2gem/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "npm2gem"
|
8
|
+
spec.version = NPM2Gem::VERSION
|
9
|
+
spec.authors = ["Sean Collins"]
|
10
|
+
spec.email = ["sean@cllns.com"]
|
11
|
+
|
12
|
+
spec.summary = "A tool to help mainain Asset gems for Ruby on Rails"
|
13
|
+
spec.homepage = "https://github.com/cllns/npm2gem"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split("\n").reject do |f|
|
17
|
+
f.match(%r{^(test|spec|features)/})
|
18
|
+
end
|
19
|
+
spec.bindir = "exe"
|
20
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
|
+
spec.require_paths = ["lib"]
|
22
|
+
|
23
|
+
spec.test_files = Dir["spec/**/*"]
|
24
|
+
|
25
|
+
spec.add_dependency "highline", "~> 1.7"
|
26
|
+
|
27
|
+
spec.add_development_dependency "bundler", "~> 1.10"
|
28
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
29
|
+
spec.add_development_dependency "rspec", "~> 3.3"
|
30
|
+
spec.add_development_dependency "simplecov", "~> 0.10"
|
31
|
+
end
|
data/spec/cli_spec.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe NPM2Gem::CLI do
|
4
|
+
before(:each) do
|
5
|
+
@cli = NPM2Gem::CLI.new
|
6
|
+
allow(@cli).to receive(:want_to_upgrade?) { true }
|
7
|
+
@cli.run
|
8
|
+
end
|
9
|
+
|
10
|
+
it "downloads javascript file" do
|
11
|
+
expect(File).to exist("vendor/assets/javascripts/bootstrap.js")
|
12
|
+
end
|
13
|
+
|
14
|
+
it "downloads stylesheet files" do
|
15
|
+
expect(File).to exist("vendor/assets/stylesheets/bootstrap.css")
|
16
|
+
expect(File).to exist("vendor/assets/stylesheets/bootstrap-theme.css")
|
17
|
+
end
|
18
|
+
|
19
|
+
it "outputs new version" do
|
20
|
+
expect { @cli.run }.to output(/\d\.\d\.\d/).to_stdout
|
21
|
+
end
|
22
|
+
end
|
data/spec/config_spec.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe NPM2Gem::Config do
|
4
|
+
before(:all) do
|
5
|
+
FileUtils.mkdir("tmp")
|
6
|
+
Dir.chdir("tmp")
|
7
|
+
File.open(".npm2gem.yml", "w") do |file|
|
8
|
+
file.puts("bootstrap:")
|
9
|
+
file.puts(" - dist/css/bootstrap.css")
|
10
|
+
file.puts(" - dist/js/bootstrap.js")
|
11
|
+
file.puts(" - theme:")
|
12
|
+
file.puts(" - dist/css/bootstrap-theme.css")
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
after(:all) do
|
17
|
+
Dir.chdir("..")
|
18
|
+
FileUtils.rm_rf("tmp")
|
19
|
+
end
|
20
|
+
|
21
|
+
subject do
|
22
|
+
NPM2Gem::Config.new
|
23
|
+
end
|
24
|
+
|
25
|
+
it "returns package name" do
|
26
|
+
expect(subject.package_name).to eq("bootstrap")
|
27
|
+
end
|
28
|
+
|
29
|
+
it "returns contents of package to copy, including a hash" do
|
30
|
+
expect(subject.files_to_copy).to eq([
|
31
|
+
"dist/css/bootstrap.css",
|
32
|
+
"dist/js/bootstrap.js",
|
33
|
+
{
|
34
|
+
"theme" => [
|
35
|
+
"dist/css/bootstrap-theme.css"
|
36
|
+
]
|
37
|
+
}
|
38
|
+
])
|
39
|
+
end
|
40
|
+
end
|
data/spec/dummy/Gemfile
ADDED
data/spec/dummy/Rakefile
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require "dummy/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "dummy"
|
8
|
+
spec.version = Dummy::VERSION
|
9
|
+
spec.authors = ["Sean Collins"]
|
10
|
+
spec.email = ["sean@cllns.com"]
|
11
|
+
|
12
|
+
spec.summary = " A Dummy Gem for testing the 'bower2gem' gem"
|
13
|
+
spec.license = "MIT"
|
14
|
+
|
15
|
+
# Since this is a gem just for testing, we don't want to push it to
|
16
|
+
# rubygems.org
|
17
|
+
spec.metadata["allowed_push_host"] = nil
|
18
|
+
|
19
|
+
spec.files = `git ls-files`.split("\n").reject do |f|
|
20
|
+
f.match(%r{^(test|spec|features)/})
|
21
|
+
end
|
22
|
+
spec.bindir = "exe"
|
23
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
24
|
+
spec.require_paths = ["lib"]
|
25
|
+
|
26
|
+
spec.add_dependency "railties", "~> 4.0"
|
27
|
+
|
28
|
+
spec.add_development_dependency "bundler", "~> 1.10"
|
29
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
30
|
+
spec.add_development_dependency "rspec", "~> 3.3.0"
|
31
|
+
end
|
@@ -0,0 +1,5 @@
|
|
1
|
+
Bootstrap uses [GitHub's Releases feature](https://github.com/blog/1547-release-your-software) for its changelogs.
|
2
|
+
|
3
|
+
See [the Releases section of our GitHub project](https://github.com/twbs/bootstrap/releases) for changelogs for each release version of Bootstrap.
|
4
|
+
|
5
|
+
Release announcement posts on [the official Bootstrap blog](http://blog.getbootstrap.com) contain summaries of the most noteworthy changes made in each release.
|