summon 1.1.14 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +7 -0
- data/{History.txt → Changelog.md} +53 -20
- data/Gemfile +3 -0
- data/Gemfile.lock +28 -0
- data/{README.rdoc → README.md} +21 -21
- data/Rakefile +5 -22
- data/lib/summon.rb +2 -8
- data/lib/summon/cli.rb +2 -0
- data/lib/summon/schema.rb +0 -9
- data/lib/summon/schema/document.rb +15 -15
- data/lib/summon/schema/facet.rb +0 -11
- data/lib/summon/schema/range.rb +1 -5
- data/lib/summon/service.rb +1 -2
- data/lib/summon/version.rb +4 -0
- data/spec/spec_helper.rb +2 -2
- data/spec/summon/schema/document_spec.rb +1 -0
- data/spec/summon/schema/facet_spec.rb +1 -21
- data/spec/summon/schema/lib_guide_tab_spec.rb +142 -0
- data/spec/summon/schema_spec.rb +0 -40
- data/spec/summon/service_spec.rb +0 -13
- data/spec/summon_spec.rb +1 -4
- data/spike.rb +0 -0
- data/summon.gemspec +14 -28
- metadata +61 -58
- data/Manifest.txt +0 -70
- data/PostInstall.txt +0 -5
- data/lib/summon/locales/dadk.rb +0 -175
- data/lib/summon/locales/dede.rb +0 -178
- data/lib/summon/locales/en.rb +0 -180
- data/lib/summon/locales/eses.rb +0 -175
- data/lib/summon/locales/fifi.rb +0 -175
- data/lib/summon/locales/fr.rb +0 -9
- data/lib/summon/locales/frfr.rb +0 -175
- data/lib/summon/locales/isis.rb +0 -175
- data/lib/summon/locales/itit.rb +0 -175
- data/lib/summon/locales/jp.rb +0 -176
- data/lib/summon/locales/nlnl.rb +0 -175
- data/lib/summon/locales/nono.rb +0 -175
- data/lib/summon/locales/ptpt.rb +0 -175
- data/lib/summon/locales/svse.rb +0 -175
- data/lib/summon/locales/zacn.rb +0 -175
- data/lib/summon/locales/zhcn.rb +0 -175
data/.gitignore
ADDED
@@ -1,65 +1,98 @@
|
|
1
|
-
|
1
|
+
### 1.2.0 2011-04-09
|
2
|
+
|
3
|
+
* removed translations
|
4
|
+
* modernize the gemming process
|
5
|
+
* support for spotlighting
|
6
|
+
* Copyright field in document is now multi-value
|
7
|
+
|
8
|
+
### 1.1.17 2011-01-28
|
9
|
+
* 1 minor enhancement
|
10
|
+
* copyright field is multi-value (document schema)
|
11
|
+
|
12
|
+
### 1.1.16 2011-01-27
|
13
|
+
* 8 minor enhancements
|
14
|
+
* document schema changes
|
15
|
+
* renamed dissertation_advisor => dissertation_advisors
|
16
|
+
* renamed dissertation_category => dissertation_categories
|
17
|
+
* renamed dissertation_degree => dissertation_degrees
|
18
|
+
* renamed dissertation_degree_date => dissertation_degrees_dates
|
19
|
+
* renamed dissertation_school = dissertation_schools
|
20
|
+
* removed dissertation_degree_date_decade
|
21
|
+
* removed dissertation_degree_date_century
|
22
|
+
* removed dissertation_degree_date_year
|
23
|
+
|
24
|
+
### 1.1.15 2011-01-26
|
25
|
+
* 1 major enhancement
|
26
|
+
* added spotlight_children to document schema
|
27
|
+
* 6 minor enhancements
|
28
|
+
* added meeting_name to document schema
|
29
|
+
* added deweys to document schema
|
30
|
+
* added eisbns to document schema
|
31
|
+
* added eissns to document schema
|
32
|
+
* added copyright to document schema
|
33
|
+
|
34
|
+
### 1.1.14 2010-10-20
|
2
35
|
* 1 minor enhancement
|
3
36
|
* German translation updates
|
4
37
|
|
5
|
-
|
38
|
+
### 1.1.13 2010-10-20
|
6
39
|
* 1 minor enhancement
|
7
40
|
* fix service cloning
|
8
41
|
|
9
|
-
|
42
|
+
### 1.1.12 2010-10-19
|
10
43
|
* 1 minor enhancement
|
11
44
|
* added lib_guide_tabs to document schema
|
12
45
|
|
13
|
-
|
46
|
+
### 1.1.11 2010-09-03
|
14
47
|
* 1 minor enhancement
|
15
48
|
* added dbid field accessor to the document schema
|
16
49
|
|
17
|
-
|
50
|
+
### 1.1.10 2010-05-06
|
18
51
|
* 4 minor enhancements
|
19
52
|
* updated "en" and "xx" locales
|
20
53
|
* Added additional translation stubs
|
21
54
|
* Added full on translations
|
22
55
|
# Added Edition to document schema
|
23
56
|
|
24
|
-
|
57
|
+
### 1.1.9 2010-05-03
|
25
58
|
* 2 minor enhancement
|
26
|
-
* fix japanese translation for Publication Date
|
59
|
+
* fix japanese translation for Publication Date
|
27
60
|
* Added publication_place to document schema
|
28
61
|
|
29
|
-
|
62
|
+
### 1.1.8 2010-03-08
|
30
63
|
* 1 minor enhancements
|
31
64
|
* added from_library? to see if a document is from the library catalog
|
32
65
|
|
33
|
-
|
66
|
+
### 1.1.7 2010-02-18
|
34
67
|
* 1 minor enhancement
|
35
68
|
* allow locale to be specified as either a string or a symbol
|
36
|
-
|
37
|
-
|
69
|
+
|
70
|
+
### 1.1.6 2010-01-14
|
38
71
|
* 1 minor enhancement
|
39
72
|
* tweak database recommendation lists to make it support multiple recommendations
|
40
|
-
|
41
|
-
|
73
|
+
|
74
|
+
### 1.1.5 2010-01-13
|
42
75
|
* 1 major enhancement
|
43
76
|
* add support for database recomendation lists
|
44
|
-
|
45
|
-
|
77
|
+
|
78
|
+
### 1.1.4 2010-01-12
|
46
79
|
* 4 minor enhancements:
|
47
80
|
* add ISICitedReferencesCount for documents on which they're available
|
48
81
|
* add ISICitedReferencesURI for document on which available
|
49
82
|
* add command line option for setting s.role API parameter
|
50
83
|
* map Document::URI field
|
51
|
-
|
52
|
-
|
84
|
+
|
85
|
+
### 1.1.3 2010-01-11
|
53
86
|
* 2 major enhancements:
|
54
87
|
* support for passing locale to summon gem
|
55
88
|
* add japanese language translations
|
56
89
|
|
57
|
-
|
90
|
+
### 1.1.1 2009-12-11
|
58
91
|
* 2 minor enhancements:
|
59
92
|
* add support to handle government document classification number (GovDocClassNum)
|
60
93
|
* map error.code into error object to allow for finer grained error messages
|
61
94
|
|
62
|
-
|
95
|
+
### 1.1.0 2009-11-10
|
63
96
|
* 2 major enhancements:
|
64
97
|
* add support for Thumbnails in the thumbnail_small, thumbnail_medium, and thumbnail_large fields
|
65
98
|
* add availability service for querying physical catalogue records.
|
@@ -71,7 +104,7 @@
|
|
71
104
|
* empty parameter was causing a NameError on the return trip
|
72
105
|
* added range? predicate to range facets so that they can be identified as ranges
|
73
106
|
|
74
|
-
|
107
|
+
### 1.0.0 2009-09-28
|
75
108
|
|
76
109
|
* 1 major enhancement:
|
77
110
|
* Initial Release
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
summon (1.2.0)
|
5
|
+
json (>= 1.2.0)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: http://rubygems.org/
|
9
|
+
specs:
|
10
|
+
diff-lcs (1.1.2)
|
11
|
+
json (1.4.6)
|
12
|
+
rake (0.8.7)
|
13
|
+
rspec (2.4.0)
|
14
|
+
rspec-core (~> 2.4.0)
|
15
|
+
rspec-expectations (~> 2.4.0)
|
16
|
+
rspec-mocks (~> 2.4.0)
|
17
|
+
rspec-core (2.4.0)
|
18
|
+
rspec-expectations (2.4.0)
|
19
|
+
diff-lcs (~> 1.1.2)
|
20
|
+
rspec-mocks (2.4.0)
|
21
|
+
|
22
|
+
PLATFORMS
|
23
|
+
ruby
|
24
|
+
|
25
|
+
DEPENDENCIES
|
26
|
+
rake
|
27
|
+
rspec (>= 2.0.0)
|
28
|
+
summon!
|
data/{README.rdoc → README.md}
RENAMED
@@ -1,34 +1,34 @@
|
|
1
|
-
|
1
|
+
# summon
|
2
2
|
|
3
3
|
* http://summon.rubyforge.org
|
4
4
|
* http://www.serialssolutions.com/summon
|
5
5
|
* http://api.summon.serialssolutions.com
|
6
6
|
|
7
|
-
|
7
|
+
## DESCRIPTION:
|
8
8
|
|
9
9
|
Ruby language bindings for Serials Solutions Summon Unified Discovery Service
|
10
10
|
|
11
|
-
|
11
|
+
## FEATURES/PROBLEMS:
|
12
12
|
|
13
13
|
* perform searches using the Summon public API from within ruby.
|
14
14
|
|
15
|
-
|
15
|
+
## SYNOPSIS:
|
16
16
|
|
17
|
-
|
17
|
+
### From the Command Line
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
#lots of results.
|
29
|
-
summon "Will Shakespeare" --s.cmd="addFacetValueFilters(ContentType, Book) setPageSize(100)"
|
19
|
+
#help
|
20
|
+
summon --help
|
21
|
+
|
22
|
+
#simple text query
|
23
|
+
summon "Will Shakespeare"
|
24
|
+
|
25
|
+
#books only please!
|
26
|
+
summon "Will Shakespeare" --s.cmd="addFacetValueFilters(ContentType, Book)"
|
30
27
|
|
31
|
-
|
28
|
+
#lots of results.
|
29
|
+
summon "Will Shakespeare" --s.cmd="addFacetValueFilters(ContentType, Book) setPageSize(100)"
|
30
|
+
|
31
|
+
### Inside Code
|
32
32
|
|
33
33
|
require 'summon'
|
34
34
|
@service = Summon::Service.new(:access_id => 'myaccessid', :secret_key => 'mysecretkey')
|
@@ -43,15 +43,15 @@ Ruby language bindings for Serials Solutions Summon Unified Discovery Service
|
|
43
43
|
#search using commands
|
44
44
|
search = @service.search("s.cmd" => "addTextQuery(Elephants) addFacetValueFilters(ContentType,Book)")
|
45
45
|
|
46
|
-
|
46
|
+
## REQUIREMENTS:
|
47
47
|
|
48
48
|
* ruby >= 1.8.6
|
49
49
|
|
50
|
-
|
50
|
+
## INSTALL:
|
51
51
|
|
52
|
-
|
52
|
+
sudo gem install summon
|
53
53
|
|
54
|
-
|
54
|
+
## LICENSE:
|
55
55
|
|
56
56
|
(The MIT License)
|
57
57
|
|
data/Rakefile
CHANGED
@@ -1,25 +1,8 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
require 'hoe'
|
4
|
-
require 'fileutils'
|
5
|
-
require './lib/summon'
|
1
|
+
require 'bundler/setup'
|
2
|
+
Bundler::GemHelper.install_tasks
|
6
3
|
|
7
|
-
Hoe.plugin :newgem
|
8
4
|
|
9
|
-
|
10
|
-
# Run 'rake -T' to see list of generated tasks (from gem root directory)
|
11
|
-
$hoe = Hoe.spec 'summon' do
|
12
|
-
self.developer 'Charles Lowell', 'cowboyd@thefrontside.net'
|
13
|
-
self.post_install_message = File.read('PostInstall.txt')
|
14
|
-
self.rubyforge_name = self.name
|
15
|
-
self.extra_deps = [
|
16
|
-
['json','>= 1.2.0']
|
17
|
-
]
|
18
|
-
self.extra_dev_deps = [
|
19
|
-
['rspec', '>= 1.2.9']
|
20
|
-
]
|
21
|
-
self.version = Summon::VERSION
|
22
|
-
end
|
5
|
+
require 'rspec/core/rake_task'
|
23
6
|
|
24
|
-
|
25
|
-
|
7
|
+
RSpec::Core::RakeTask.new(:spec)
|
8
|
+
task :default => :spec
|
data/lib/summon.rb
CHANGED
@@ -6,14 +6,8 @@ require 'cgi'
|
|
6
6
|
require 'json'
|
7
7
|
|
8
8
|
module Summon
|
9
|
-
VERSION = "1.1.14"
|
10
|
-
DEFAULT_LOCALE = 'en'
|
11
|
-
|
12
|
-
locale_dir = File.dirname(__FILE__) + '/summon/locales'
|
13
|
-
Dir["#{locale_dir}/*.rb"].each { |file|
|
14
|
-
require file
|
15
|
-
}
|
16
9
|
|
10
|
+
require 'summon/version'
|
17
11
|
require 'summon/log'
|
18
12
|
require 'summon/service'
|
19
13
|
require 'summon/transport'
|
@@ -29,7 +23,7 @@ module Summon
|
|
29
23
|
require 'summon/schema/citation'
|
30
24
|
require 'summon/schema/error'
|
31
25
|
require 'summon/schema/recommendation_list'
|
32
|
-
|
26
|
+
|
33
27
|
def self.escape(value)
|
34
28
|
value.gsub(/(,|\(|\)|\{|\}|\$|\:)/, '\\\\\1').gsub("\\", '\\')
|
35
29
|
end
|
data/lib/summon/cli.rb
CHANGED
@@ -20,6 +20,7 @@ module Summon
|
|
20
20
|
"s.fvf" => [],
|
21
21
|
"s.fvgf" => [],
|
22
22
|
"s.rff" => [],
|
23
|
+
"s.sl" => [],
|
23
24
|
"s.hs" => "*",
|
24
25
|
"s.he" => "*",
|
25
26
|
"s.role" => "none"
|
@@ -47,6 +48,7 @@ module Summon
|
|
47
48
|
opts.on("--s.fvgf=FIELD,MODE,VALUES", "Facet Value Group Filter: advanced functionality. see official api docs. e.g. 'SubjectTerms,or,northern+america,u.s.,canada'")
|
48
49
|
opts.on("--s.rff=<facetField>, <minValue>:<maxValue>[:<inclusive>][, <minValue>:<maxValue>[:<inclusive>]]*", "Range Facet Field: e.g. PublicationDate,1971:1980,1981:1990,1991:2000,2001:2010") {|rff| params["s.rff"] << rff}
|
49
50
|
opts.on("--s.rf=<fieldName>, <minValue>:<maxValue>[:<inclusive>]", "Range Filter: filter the result list to values lying within the range. e.g. PublicationDate,1971:1980")
|
51
|
+
opts.on("--s.sl=<fieldName>,<value>,<min>,<max>") { |sl| params["s.sl"] << sl }
|
50
52
|
opts.on("--s.hl=BOOLEAN", "Highlight: turn highlighting on or off: e.g. --s.hl=false") {|hl| params["s.hl"] = hl}
|
51
53
|
opts.on("--s.hs=DELIMITER", String, "Highlight Start: demarcate the beginning of a term hit. default is *") {|d| params["s.hs"] = d}
|
52
54
|
opts.on("--s.he=DELIMITER", String, "Highlight End: demarcate the beginning of a term hit. default is *") {|d| params["s.he"] = d}
|
data/lib/summon/schema.rb
CHANGED
@@ -65,15 +65,6 @@ module Summon
|
|
65
65
|
end.to_json(*a)
|
66
66
|
end
|
67
67
|
|
68
|
-
def locale
|
69
|
-
@service.locale.gsub(/-/, "")
|
70
|
-
end
|
71
|
-
|
72
|
-
def translate(value)
|
73
|
-
default = Summon::Locale.const_get(Summon::DEFAULT_LOCALE.upcase)
|
74
|
-
translator = Summon::Locale.const_defined?(locale.upcase) ? Summon::Locale.const_get(locale.upcase) : default
|
75
|
-
translator::TRANSLATIONS[value] ? translator::TRANSLATIONS[value] : default::TRANSLATIONS[value] ? default::TRANSLATIONS[value] : value
|
76
|
-
end
|
77
68
|
end
|
78
69
|
|
79
70
|
class Attr
|
@@ -18,27 +18,29 @@ class Summon::Document < Summon::Schema
|
|
18
18
|
attr :page_count
|
19
19
|
attr :publication_date, :json_name => "PublicationDate_xml", :transform => :Date
|
20
20
|
attr :publication_place
|
21
|
-
|
21
|
+
attr :meeting_name, :single => false
|
22
|
+
|
22
23
|
attr :isi_cited_references_count, :json_name => "ISICitedReferencesCount"
|
23
24
|
attr :isi_cited_references_uri, :json_name => "ISICitedReferencesURI"
|
24
25
|
|
25
|
-
attr :
|
26
|
-
attr :
|
27
|
-
attr :
|
28
|
-
attr :
|
29
|
-
attr :
|
30
|
-
attr :dissertation_degree_date_century
|
31
|
-
attr :dissertation_degree_date_year
|
32
|
-
attr :dissertation_school
|
26
|
+
attr :dissertation_advisors, :json_name => "DissertationAdvisor"
|
27
|
+
attr :dissertation_categories, :json_name => "DissertationCategory"
|
28
|
+
attr :dissertation_degrees, :json_name => "DissertationDegree"
|
29
|
+
attr :dissertation_degrees_dates, :json_name => "DissertationDegreeDate"
|
30
|
+
attr :dissertation_schools, :json_name => "DissertationSchool"
|
33
31
|
|
34
32
|
attr :library
|
35
33
|
attr :call_numbers, :json_name => "LCCallNum"
|
34
|
+
attr :deweys, :json_name => "DEWEY"
|
36
35
|
attr :doi, :json_name => "DOI"
|
37
36
|
attr :isbns, :json_name => "ISBN"
|
38
37
|
attr :issns, :json_name => "ISSN"
|
38
|
+
attr :eisbns, :json_name => "EISBN"
|
39
|
+
attr :eissns, :json_name => "EISSN"
|
39
40
|
attr :patent_number
|
40
41
|
attr :gov_doc_class_nums, :json_name => "GovDocClassNum"
|
41
42
|
|
43
|
+
attr :copyright, :single => false
|
42
44
|
|
43
45
|
attr :subject_terms
|
44
46
|
attr :genres, :json_name => "Genre"
|
@@ -59,6 +61,8 @@ class Summon::Document < Summon::Schema
|
|
59
61
|
attr :dbid, :json_name => "DBID", :single => false
|
60
62
|
|
61
63
|
attr :lib_guide_tab, :json_name => "LibGuideTab_xml", :single => false
|
64
|
+
|
65
|
+
attr :spotlight_children, :single => false, :transform => :Document
|
62
66
|
|
63
67
|
def isbn
|
64
68
|
@isbns.first
|
@@ -96,10 +100,6 @@ class Summon::Document < Summon::Schema
|
|
96
100
|
"Title: #{title}"
|
97
101
|
end
|
98
102
|
|
99
|
-
def local_content_type
|
100
|
-
translate(@content_type)
|
101
|
-
end
|
102
|
-
|
103
103
|
def lib_guide_tabs
|
104
104
|
@lib_guide_tab.map {|n| Summon::LibGuideTab.new(n["name"], n["uri"])}
|
105
105
|
end
|
@@ -107,7 +107,7 @@ class Summon::Document < Summon::Schema
|
|
107
107
|
def from_library?
|
108
108
|
@availability_id != nil
|
109
109
|
end
|
110
|
-
|
110
|
+
|
111
111
|
end
|
112
112
|
|
113
113
|
class Summon::Author < Struct.new(:name)
|
@@ -124,4 +124,4 @@ class Summon::LibGuideTab < Struct.new(:name, :uri)
|
|
124
124
|
def uri(*args)
|
125
125
|
super()
|
126
126
|
end
|
127
|
-
end
|
127
|
+
end
|
data/lib/summon/schema/facet.rb
CHANGED
@@ -22,9 +22,6 @@ class Summon::Facet < Summon::Schema
|
|
22
22
|
@counts.empty?
|
23
23
|
end
|
24
24
|
|
25
|
-
def local_name
|
26
|
-
translate(@display_name)
|
27
|
-
end
|
28
25
|
end
|
29
26
|
|
30
27
|
class Summon::FacetCount < Summon::Schema
|
@@ -37,14 +34,6 @@ class Summon::FacetCount < Summon::Schema
|
|
37
34
|
attr :apply_negated_command
|
38
35
|
attr :remove_command
|
39
36
|
|
40
|
-
def local_value
|
41
|
-
translate(@value)
|
42
|
-
end
|
43
|
-
|
44
|
-
def escaped_local_value
|
45
|
-
Summon.escape(@local_value)
|
46
|
-
end
|
47
|
-
|
48
37
|
def escaped_value
|
49
38
|
Summon.escape(@value)
|
50
39
|
end
|
data/lib/summon/schema/range.rb
CHANGED
@@ -17,10 +17,6 @@ class Summon::RangeFacet < Summon::Schema
|
|
17
17
|
false
|
18
18
|
end
|
19
19
|
|
20
|
-
def local_name
|
21
|
-
translate(@display_name)
|
22
|
-
end
|
23
|
-
|
24
20
|
# #COMPATIBILITY
|
25
21
|
#
|
26
22
|
# alias_method :name, :display_name
|
@@ -57,4 +53,4 @@ class Summon::RangeCount < Summon::Schema
|
|
57
53
|
def excluded?
|
58
54
|
false
|
59
55
|
end
|
60
|
-
end
|
56
|
+
end
|