1
0
Fork 0

Disable barista, xml parse refactor

This commit is contained in:
Gregory Eremin 2011-09-22 16:04:59 +04:00
parent c076efe860
commit 7a3444d103
5 changed files with 106 additions and 93 deletions

View File

@ -10,7 +10,7 @@ gem 'sass'
gem 'coffee-script'
gem 'therubyracer', :require => false
gem 'barista'
# gem 'barista'
gem 'awesome_print', :require => 'ap'
gem 'delayed_job'

View File

@ -39,8 +39,6 @@ GEM
multi_json (~> 1.0)
arel (2.2.1)
awesome_print (0.4.0)
barista (1.2.1)
coffee-script (~> 2.2)
bcrypt-ruby (3.0.1)
bitmask_attributes (0.2.2)
activerecord (~> 3.0)
@ -121,7 +119,6 @@ PLATFORMS
DEPENDENCIES
awesome_print
barista
bitmask_attributes
coffee-script
delayed_job

View File

@ -1,64 +1,64 @@
# Configure barista.
Barista.configure do |c|
# Change the root to use app/scripts
# c.root = Rails.root.join("app", "coffeescripts")
# Change the output root, causing Barista to compile into public/coffeescripts
# c.output_root = Rails.root.join("public", "assets", "coffee")
#
# Disable auto compile, use generated file directly:
# c.auto_compile = false
# Add a new framework:
# c.register :tests, :root => Rails.root.join('test', 'coffeescript'), :output_prefix => 'test'
# Disable wrapping in a closure:
c.bare = true
# ... or ...
# c.bare!
# Change the output root for a framework:
# c.change_output_prefix! 'framework-name', 'output-prefix'
# or for all frameworks...
# c.each_framework do |framework|
# c.change_output_prefix! framework, "vendor/#{framework.name}"
# end
# or, prefix the path for the app files:
# c.change_output_prefix! :default, 'my-app-name'
# or, change the directory the framework goes into full stop:
# c.change_output_prefix! :tests, Rails.root.join('spec', 'javascripts')
# or, hook into the compilation:
# c.before_compilation { |path| puts "Barista: Compiling #{path}" }
# c.on_compilation { |path| puts "Barista: Successfully compiled #{path}" }
# c.on_compilation_error { |path, output| puts "Barista: Compilation of #{path} failed with:\n#{output}" }
# c.on_compilation_with_warning { |path, output| puts "Barista: Compilation of #{path} had a warning:\n#{output}" }
# Turn off preambles and exceptions on failure:
# c.verbose = false
# Or, make sure it is always on
# c.verbose!
# If you want to use a custom JS file, you can as well
# e.g. vendoring CoffeeScript in your application:
# c.js_path = Rails.root.join('public', 'javascripts', 'coffee-script.js')
# Make helpers and the HAML filter output coffee-script instead of the compiled JS.
# Used in combination with the coffeescript_interpreter_js helper in Rails.
# c.embedded_interpreter = true
c.add_preamble = false
end
# # Configure barista.
# Barista.configure do |c|
#
# # Change the root to use app/scripts
# # c.root = Rails.root.join("app", "coffeescripts")
#
# # Change the output root, causing Barista to compile into public/coffeescripts
# # c.output_root = Rails.root.join("public", "assets", "coffee")
# #
# # Disable auto compile, use generated file directly:
# # c.auto_compile = false
#
# # Add a new framework:
#
# # c.register :tests, :root => Rails.root.join('test', 'coffeescript'), :output_prefix => 'test'
#
# # Disable wrapping in a closure:
# c.bare = true
# # ... or ...
# # c.bare!
#
# # Change the output root for a framework:
#
# # c.change_output_prefix! 'framework-name', 'output-prefix'
#
# # or for all frameworks...
#
# # c.each_framework do |framework|
# # c.change_output_prefix! framework, "vendor/#{framework.name}"
# # end
#
# # or, prefix the path for the app files:
#
# # c.change_output_prefix! :default, 'my-app-name'
#
# # or, change the directory the framework goes into full stop:
#
# # c.change_output_prefix! :tests, Rails.root.join('spec', 'javascripts')
#
# # or, hook into the compilation:
#
# # c.before_compilation { |path| puts "Barista: Compiling #{path}" }
# # c.on_compilation { |path| puts "Barista: Successfully compiled #{path}" }
# # c.on_compilation_error { |path, output| puts "Barista: Compilation of #{path} failed with:\n#{output}" }
# # c.on_compilation_with_warning { |path, output| puts "Barista: Compilation of #{path} had a warning:\n#{output}" }
#
# # Turn off preambles and exceptions on failure:
#
# # c.verbose = false
#
# # Or, make sure it is always on
# # c.verbose!
#
# # If you want to use a custom JS file, you can as well
# # e.g. vendoring CoffeeScript in your application:
# # c.js_path = Rails.root.join('public', 'javascripts', 'coffee-script.js')
#
# # Make helpers and the HAML filter output coffee-script instead of the compiled JS.
# # Used in combination with the coffeescript_interpreter_js helper in Rails.
# # c.embedded_interpreter = true
#
# c.add_preamble = false
#
# end

View File

@ -1,34 +1,41 @@
class Discogs
def self.artists
File.open('tmp/data/discogs_artists.xml') do |file|
self.get_nodes('tmp/data/discogs_artists.xml', 'artist') do
artist = Artist.new(
:name => (node.css('name').first.text),
:pic_url => (node.css('images > image[type="primary"]').first.attr('uri') unless node.css('images > image[type="primary"]').empty?),
:status => 1
)
artist.save
node.css('namevariations > name, aliases > name').each do |v|
ArtistAlias.new(
:artist_id => artist.id,
:name => v.text
).save
end
end
end
def self.releases
self.get_nodes('tmp/data/discogs_releases_test.xml', 'release') do |node|
r = {
:pic => (node.css('images > image[type="primary"]').first.attr('uri') unless node.css('images > image[type="primary"]').empty?)
}
ap r
end
end
private
def self.get_nodes filename, nodename, &block
File.open(filename) do |file|
Nokogiri::XML::Reader.from_io(file).each do |node|
if node.name == 'artist' and node.node_type == Nokogiri::XML::Reader::TYPE_ELEMENT
self.process_artist Nokogiri::XML(node.outer_xml).root
if node.name == nodename and node.node_type == Nokogiri::XML::Reader::TYPE_ELEMENT
yield(Nokogiri::XML(node.outer_xml).root)
end
end
end
end
def self.process_artist node
artist = Artist.new(
:name => (node.css('name').first.text),
:pic_url => (node.css('images > image[type="primary"]').first.attr('uri') unless node.css('images > image[type="primary"]').empty?),
:status => 1
)
artist.save
node.css('namevariations > name, aliases > name').each do |v|
ArtistAlias.new(
:artist_id => artist.id,
:name => v.text
).save
end
end
def self.releases
end
def self.process_release
end
end

View File

@ -0,0 +1,9 @@
require "discogs"
namespace :discogs do
namespace :import do
desc 'Import discogs releases xml'
task :releases => :environment do
Discogs.releases
end
end
end