Domanda

Ho un prolungamento Buildr che sto imballaggio come un gioiello. Ho una collezione di script che voglio aggiungere a un pacchetto. Attualmente, ho questi script memorizzati come un grande blocco di testo che sto scrivendo in un file. Io preferirei avere i singoli file che posso copiare direttamente o lettura / scrittura di nuovo fuori. Vorrei questi file da confezionare nella gemma. Non ho un problema loro confezionamento in (solo loro bastone nel file system prima rake install), ma io non riesco a capire come accedervi. C'è una gemma Risorse tipo fascio cosa?

È stato utile?

Soluzione

Ci sono fondamentalmente due modi,

1) È possibile caricare le risorse relative a un file Ruby in vostro gioiello con __FILE__:

def path_to_resources
  File.join(File.dirname(File.expand_path(__FILE__)), '../path/to/resources')
end

2) È possibile aggiungere i percorsi arbitrari dal Gem alla variabile $LOAD_PATH e poi a piedi il $LOAD_PATH per trovare le risorse, per es.,

Gem::Specification.new do |spec|
  spec.name = 'the-name-of-your-gem'
  spec.version ='0.0.1'

  # this is important - it specifies which files to include in the gem.
  spec.files  = Dir.glob("lib/**/*") + %w{History.txt Manifest.txt} +
                Dir.glob("path/to/resources/**/*")

  # If you have resources in other directories than 'lib'
  spec.require_paths << 'path/to/resources'

  # optional, but useful to your users
  spec.summary = "A more longwinded description of your gem"
  spec.author = 'Your Name'
  spec.email = 'you@yourdomain.com'
  spec.homepage = 'http://www.yourpage.com'

  # you did document with RDoc, right?
  spec.has_rdoc = true

  # if you have any dependencies on other gems, list them thusly
  spec.add_dependency('hpricot')
  spec.add_dependency('log4r', '>= 1.0.5')
end

e poi,

$LOAD_PATH.each { |dir|  ... look for resources relative to dir ... }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top