View build_an_iterator_1.rb
# A simpler example: create an object which takes
# in a file name and allows you to iterate over
# only the comments (lines that start with '#')
#
# Obviously, it'd be pretty easy to do this inline, but it's just an
# example. One could also imagine it returning every set of
# contiguous comment lines as a single comment, or even being smart enough to
# do C-style /* ... */ comments and extract those.
#
# The point is that you've got that all hidden in a class, and the user
View taghosts
#!/usr/bin/env ruby
require 'optparse'
ACTIVE_SERVERS = '/l/local/active-servers'
def alltags
alltags = []
File.open(ACTIVE_SERVERS).each do |line|
tokens = line.split(/\s+/)
View marc_html.rb
# encoding: UTF-8
require 'slim'
require 'marc'
# Get a record somehow. Here, I just nab the marc-in-json from the HT catalog and use that.
require 'json'
require 'open-uri'
rec = MARC::Record.new_from_hash(JSON.parse(open('http://catalog.hathitrust.org/Record/100113248.json').read))
View emtest.rb
require 'traject'
include Traject::Macros::Marc21
r = MARC::Record.new
r << MARC::ControlField.new('001', '12345')
r << MARC::DataField.new('245', ' ', ' ', ['a', 'My Title'])
context = Traject::Indexer::Context.new
View include.rb
module A
def hello
puts "Hello from A"
end
def goodbye
puts "Goodbye from A"
end
end
class B
View each_rescue.rb
class A
include Enumerable
def each
(1..10).each do |i|
raise RuntimeError.new("SIX") if i == 6
yield i
end
end
end
View marc-threadedreader.rb
require 'concurrent'
require 'thread'
require 'marc'
class MARC::ThreadedReader < MARC::Reader
include Enumerable
include Concurrent::Async
def initialize(file, options={})
super
View threaded_read.rb
require 'concurrent'
require 'thread'
require 'json'
require 'stringio'
require 'marc'
require 'benchmark'
# OK. Try to read in a line, and then have another thread transform it, and expose
# via #each.
View index.rb
require 'library_stdnums'
require 'traject/macros/marc21_semantics'
extend Traject::Macros::Marc21Semantics
require 'traject/macros/marc_format_classifier'
extend Traject::Macros::MarcFormats
require 'traject/solr_json_writer'
require 'traject/marc_reader'
View gist:7b8e60587e71c2009ced
require 'benchmark'
require 'benchmark/ips'
require 'marc'
require 'marc/fastxmlwriter'
record = MARC::Reader.new('test/one.dat').first
puts RUBY_DESCRIPTION