1
在一些教程的帮助下,我做了第一个简单的宝石,它将Sass/CSS文件添加到应用程序的assets/stylesheets目录。Rails:制作你自己的宝石
这很尴尬,但问题是我不知道如何在应用程序中运行我的宝石。
gemspec:
# coding: utf-8
lib = File.expand_path('../lib', __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'example/version'
Gem::Specification.new do |spec|
spec.name = "Example"
spec.version = Example::VERSION
spec.authors = ["***"]
spec.email = ["***"]
spec.description = %q{Provide CSS styles}
spec.summary = %q{Provide CSS styles}
spec.homepage = ""
spec.license = "MIT"
spec.files = `git ls-files`.split($/)
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
spec.require_paths = ["lib"]
spec.add_development_dependency "bundler", "~> 1.3"
spec.add_development_dependency "rake"
spec.add_development_dependency "redcarpet", "~> 1.17"
spec.add_development_dependency "yard", "~> 0.7.5"
end
example.rb:
require "example/version"
module Example
def self.install
original_dir = Dir["/lib/example/*.css.scss"]
original_dir.each do |f|
name = File.basename('main', '.css.scss')
destination_dir = "/app/assets/stylesheets/#{name}"
FileUtils.cp(main, destination_folder)
end
end
end
Rake文件:
require "bundler/gem_tasks"
require 'yard'
YARD::Rake::YardocTask.new
我认为我应该写一些rake任务,但我不是很确定我该怎么做。
谢谢!
为什么你不知道吗?将gem的链接添加到项目的使用gem的** Gemfile **中,如下所示:gem'youe_gem_name',:path =>'/ path/to/your/gem/root'。然后从其他项目文件夹发出'bundle install'。如果它是一个rails应用程序,只需运行rails。并从rails配置中调用'Example.install'。 –
当然,我将它添加到Gemfile中。但正如你可以在'example.rb'看到的,我的gem正在将'main.css.scss'添加到'app/assets/stylesheets'。我安装了宝石,但不知道如何使它工作 –
我看到了两个不一致:你评估destination_dir,但是然后使用destination_folder,然后你枚举f,但是不要使用它。 –