rbook 0.2.1 → 0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README CHANGED
@@ -2,13 +2,13 @@ A collection of modules and classes for use in the book industry
2
2
 
3
3
  = Usage
4
4
 
5
- There are currently 5 key components in the library. Please refer to their
6
- respective documentation for information on usage.
5
+ Please refer to each components documentation for information on usage.
7
6
 
8
7
  - RBook::Bisac - Support for reading and writing BISAC files.
9
8
  - RBook::GBIP - Very rudimentary support for using the globalbooksinprint.com TCP API.
10
9
  - RBook::ISBN - Convenience methods for validating and converting ISBNs.
11
10
  - RBook::Onix - Support for reading and writing ONIX files.
11
+ - RBook::Pacstream - Support for reading and writing ONIX files.
12
12
  - RBook::TitlePage - A wrapper for the titlepage.com SOAP API.
13
13
  - RBook::WWW - Screen scraping library for publisher websites.
14
14
 
data/Rakefile CHANGED
@@ -5,7 +5,7 @@ require 'rake/testtask'
5
5
  require "rake/gempackagetask"
6
6
  require "rubygems"
7
7
 
8
- PKG_VERSION = "0.2.1"
8
+ PKG_VERSION = "0.3"
9
9
  PKG_NAME = "rbook"
10
10
  PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
11
11
  RUBYFORGE_PROJECT = 'rbook'
@@ -0,0 +1,13 @@
1
+ # assuming you have rbook installed via rubygems,
2
+ # in a regular script you should replace the following require
3
+ # line with these 2 lines:
4
+ # require 'rubygems'
5
+ # require 'rbook/pacstream'
6
+ require File.dirname(__FILE__) + '/../lib/rbook/pacstream'
7
+
8
+ counter = 0
9
+
10
+ RBook::Pacstream.get(:orders, :username => "myusername", :password => "mypass") do |order|
11
+ File.open("#{counter.to_s}.ord", "w") { |f| f.puts order }
12
+ counter += 1
13
+ end
@@ -0,0 +1,55 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__) + "/../")
2
+
3
+ require 'net/ftp'
4
+
5
+ module RBook
6
+
7
+ # Ruby class for sending and retrieving electronic orders
8
+ # via pacstream, a service run by the ECN GRoup
9
+ # (http://www.ecngroup.com.au/)
10
+ #
11
+ # = Basic Usage
12
+ #
13
+ # RBook::Pacstream.get(:orders, :username => "myusername", :password => "mypass") do |order|
14
+ # puts order
15
+ # end
16
+ class Pacstream
17
+
18
+ FILE_EXTENSIONS = { :orders => "ORD" }
19
+
20
+ # Iterate over each order waiting on the pacstream server, returning
21
+ # each file as a string
22
+ #
23
+ # RBook::Pacstream.get(:orders, :username => "myusername", :password => "mypass") do |order|
24
+ # puts order
25
+ # end
26
+ def self.get(type = :orders, *args, &block)
27
+ if args[0][:username].nil? && args[0][:password].nil?
28
+ raise ArgumentError, 'username and password must be specified'
29
+ end
30
+
31
+ unless FILE_EXTENSIONS.include?(type)
32
+ raise ArgumentError, 'unrecognised type'
33
+ end
34
+
35
+ server = args[0][:servername] || "pacstream.tedis.com.au"
36
+
37
+ begin
38
+ Net::FTP.open(server) do |ftp|
39
+ ftp.login(args[0][:username], args[0][:password])
40
+ ftp.chdir("outgoing/")
41
+ ftp.nlst.each do |file|
42
+ if file.match(/.*\.#{FILE_EXTENSIONS[type]}$/)
43
+ content = ""
44
+ ftp.gettextfile(file) {|line| content << line << "\n"}
45
+ yield content
46
+ end
47
+ end
48
+ end
49
+ rescue Net::FTPPermError
50
+ raise "Error loging onto pactream server"
51
+ end
52
+ end
53
+
54
+ end
55
+ end
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: rbook
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.2.1
7
- date: 2006-10-18 00:00:00 +10:00
6
+ version: "0.3"
7
+ date: 2006-10-25 00:00:00 +10:00
8
8
  summary: A collection of classes and modules for working with bibliographic data
9
9
  require_paths:
10
10
  - lib
@@ -33,6 +33,7 @@ files:
33
33
  - examples/onix
34
34
  - examples/titlepage.rb
35
35
  - examples/gbip.rb
36
+ - examples/pacstream.rb
36
37
  - examples/www/list.rb
37
38
  - examples/www/find_cover_from_amazon.rb
38
39
  - examples/www/find_url_from_rainbow.rb
@@ -50,6 +51,7 @@ files:
50
51
  - lib/rbook/isbn.rb
51
52
  - lib/rbook/bisac
52
53
  - lib/rbook/gbip
54
+ - lib/rbook/pacstream.rb
53
55
  - lib/rbook/gbip.rb
54
56
  - lib/rbook/www/wiley_us_scraper.rb
55
57
  - lib/rbook/www/hha_scraper.rb