summon 1.1.9 → 1.1.12

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.
@@ -0,0 +1,175 @@
1
+ module Summon
2
+ module Locale
3
+ module ZACN
4
+ TRANSLATIONS = {
5
+ "Afrikaans" => "南非语",
6
+ "Albanian" => "阿尔巴尼亚语",
7
+ "Album" => "专辑",
8
+ "Amharic" => "阿姆哈拉语",
9
+ "Arabic" => "阿拉伯语",
10
+ "Aragonese" => "阿拉贡语",
11
+ "Architectural Drawing" => "建筑图",
12
+ "Archival Material" => "档案材料",
13
+ "Armenian" => "亚美尼亚语",
14
+ "Art" => "艺术",
15
+ "Artifact" => "人工制品",
16
+ "Audio Recording" => "录音",
17
+ "Aymara" => "艾马拉语",
18
+ "Azerbaijani" => "阿塞拜疆语",
19
+ "Bambara" => "班拉族语",
20
+ "Basque" => "巴斯克语",
21
+ "Belarusian" => "白俄罗斯语",
22
+ "Bengali" => "孟加拉语",
23
+ "Blueprint" => "蓝图",
24
+ "Blueprints" => "蓝图",
25
+ "Book" => "书籍",
26
+ "Book Chapter" => "书籍章节",
27
+ "Book Review" => "书评",
28
+ "Bosnian" => "波斯尼亚语",
29
+ "Breton" => "布利多你语",
30
+ "Bulgarian" => "保加利亚语",
31
+ "Burmese" => "缅甸语",
32
+ "Catalan" => "加泰尼亚语",
33
+ "Catalog" => "目录",
34
+ "Ceremonial Object" => "纪念品",
35
+ "Chechen" => "车臣语",
36
+ "Chinese" => "中文",
37
+ "Church Slavic" => "教会斯拉夫语",
38
+ "Clothing" => "服装",
39
+ "Computer File" => "电脑文件",
40
+ "Conference Proceeding" => "会议录",
41
+ "ContentType" => "内容类型",
42
+ "Cree" => "克里语",
43
+ "Croatian" => "克罗尼亚语",
44
+ "Czech" => "捷克语",
45
+ "Danish" => "丹麦语",
46
+ "Dissertation" => "论文",
47
+ "Drawing" => "绘图",
48
+ "Dutch" => "荷兰语",
49
+ "English" => "英文",
50
+ "Equipment" => "设备",
51
+ "Esperanto" => "世界语",
52
+ "Estonian" => "爱沙尼亚语",
53
+ "Fijian" => "斐济语",
54
+ "Finnish" => "芬兰语",
55
+ "French" => "法语",
56
+ "Fulah" => "富拉语",
57
+ "Furnishing" => "陈设",
58
+ "Galician" => "加利尼亚语",
59
+ "Ganda" => "干达語",
60
+ "Georgian" => "乔治亚语",
61
+ "German" => "德语",
62
+ "Government Document" => "政府文献",
63
+ "Graphic Arts" => "形象艺术",
64
+ "Greek" => "希腊语",
65
+ "Haitian" => "海地语",
66
+ "Hebrew" => "希伯来语",
67
+ "Hindi" => "印地语",
68
+ "Houseware" => "家庭用品",
69
+ "Hungarian" => "匈牙利语",
70
+ "Icelandic" => "冰岛语",
71
+ "Image" => "图像",
72
+ "Implements" => "器具",
73
+ "Indonesian" => "印度尼西亚语",
74
+ "Inuktitut" => "伊努伊特语",
75
+ "Irish" => "伊努皮克语",
76
+ "IsScholarly" => "爱尔兰语",
77
+ "Italian" => "意大利语",
78
+ "Japanese" => "日语",
79
+ "Javanese" => "爪哇语",
80
+ "Journal" => "期刊",
81
+ "Journal Article" => "期刊文章",
82
+ "Kit" => "套件",
83
+ "Korean" => "韩语",
84
+ "Kurdish" => "库尔德语",
85
+ "Language" => "语言",
86
+ "Lao" => "老挝语",
87
+ "Latin" => "拉丁语",
88
+ "Latvian" => "拉脱维亚语",
89
+ "Library" => "图书馆馆藏分布",
90
+ "Lithuanian" => "立陶宛语",
91
+ "Macedonian" => "马其顿语",
92
+ "Malay" => "马来语",
93
+ "Maltese" => "马其他语",
94
+ "Manuscript" => "手稿",
95
+ "Maori" => "毛利语",
96
+ "Map" => "地图",
97
+ "Marathi" => "马拉地语",
98
+ "Microfilm" => "缩微胶卷",
99
+ "Microform" => "缩微材料",
100
+ "Model" => "模型",
101
+ "Mongolian" => "蒙古语",
102
+ "Music Recording" => "音乐录音",
103
+ "Music Score" => "乐谱",
104
+ "Musical Instrument" => "乐器",
105
+ "Navajo" => "纳瓦霍语",
106
+ "Ndonga" => "恩东加语",
107
+ "Nepali" => "尼泊尔语",
108
+ "Newsletter" => "简讯",
109
+ "Newspaper" => "报纸",
110
+ "Newspaper Article" => "报纸文章",
111
+ "Norwegian" => "挪威语",
112
+ "Ojibwa" => "奥积瓦语",
113
+ "Painting" => "绘画",
114
+ "Pali" => "巴利语",
115
+ "Pamphlet" => "小册子",
116
+ "Panjabi" => "旁遮普语",
117
+ "Paper" => "论文",
118
+ "Patent" => "专利",
119
+ "Persian" => "波斯语",
120
+ "Photograph" => "照片",
121
+ "Play" => "播放",
122
+ "Poem" => "诗歌",
123
+ "Polish" => "波兰语",
124
+ "Portuguese" => "葡萄牙语",
125
+ "Postcard" => "明信片",
126
+ "Poster" => "海报",
127
+ "Presentation" => "演示文稿",
128
+ "Publication" => "出版物",
129
+ "Publication Article" => "出版物文章",
130
+ "PublicationDate" => "出版日期",
131
+ "Pushto" => "普什国语",
132
+ "Quechua" => "盖丘亚语",
133
+ "Realia" => "教学用具",
134
+ "Report" => "报告",
135
+ "Romanian" => "罗马尼亚语",
136
+ "Russian" => "俄语",
137
+ "Sanskrit" => "梵语",
138
+ "Serbian" => "塞尔维亚语",
139
+ "Slovak" => "斯洛伐克语",
140
+ "Slovenian" => "斯洛文尼亚语",
141
+ "Spanish" => "西班牙语",
142
+ "Special Collection" => "特殊收藏",
143
+ "Spoken Word Recording" => "口语音乐唱片",
144
+ "Standard" => "标准",
145
+ "SubjectTerms" => "主题词",
146
+ "Sundanese" => "异他语",
147
+ "Swahili" => "斯瓦里语",
148
+ "Swedish" => "瑞典语",
149
+ "Tagalog" => "塔加拉族语",
150
+ "Tamil" => "泰米尔语",
151
+ "Telugu" => "泰卢固语",
152
+ "Thai" => "泰国语",
153
+ "Tibetan" => "藏语",
154
+ "Tool" => "工具",
155
+ "Trade Publication Article" => "商业出版物文章",
156
+ "Transcript" => "抄本",
157
+ "Tswana" => "茨瓦纳语",
158
+ "Turkish" => "土耳其语",
159
+ "Ukrainian" => "乌克兰语",
160
+ "Urdu" => "乌尔都语",
161
+ "Video Recording" => "视频记录",
162
+ "Vietnamese" => "越南语",
163
+ "Web Resource" => "网络资源",
164
+ "Welsh" => "威尔士语",
165
+ "Western Frisian" => "弗里西亚语",
166
+ "Wolof" => "沃洛夫语",
167
+ "Yiddish" => "依地语",
168
+ "Yoruba" => "约鲁巴语",
169
+ "Zulu" => "祖鲁语",
170
+ "eBook" => "电子书",
171
+ }
172
+ end
173
+ end
174
+ end
175
+
@@ -0,0 +1,175 @@
1
+ module Summon
2
+ module Locale
3
+ module ZHCN
4
+ TRANSLATIONS = {
5
+ "Afrikaans" => "南非語",
6
+ "Albanian" => "阿爾巴尼亞語",
7
+ "Album" => "專輯",
8
+ "Amharic" => "阿姆哈拉語",
9
+ "Arabic" => "阿拉伯語",
10
+ "Aragonese" => "阿拉貢語",
11
+ "Architectural Drawing" => "建築圖",
12
+ "Archival Material" => "檔案材料",
13
+ "Armenian" => "亞美尼亞語",
14
+ "Art" => "藝術",
15
+ "Artifact" => "人工製品",
16
+ "Audio Recording" => "錄音",
17
+ "Aymara" => "艾馬拉語",
18
+ "Azerbaijani" => "阿塞拜疆語",
19
+ "Bambara" => "班拉族語",
20
+ "Basque" => "巴斯克語",
21
+ "Belarusian" => "白俄羅斯語",
22
+ "Bengali" => "孟加拉語",
23
+ "Blueprint" => "藍圖",
24
+ "Blueprints" => "藍圖",
25
+ "Book" => "書籍",
26
+ "Book Chapter" => "書籍章節",
27
+ "Book Review" => "書評",
28
+ "Bosnian" => "波斯尼亞語",
29
+ "Breton" => "布里多尼語",
30
+ "Bulgarian" => "保加利亞語",
31
+ "Burmese" => "緬甸語",
32
+ "Catalan" => "加泰尼亞語",
33
+ "Catalog" => "目錄",
34
+ "Ceremonial Object" => "紀念品",
35
+ "Chechen" => "車臣語",
36
+ "Chinese" => "中文",
37
+ "Church Slavic" => "教會斯拉夫語",
38
+ "Clothing" => "服裝",
39
+ "Computer File" => "電腦檔案",
40
+ "Conference Proceeding" => "會議錄",
41
+ "ContentType" => "內容類型",
42
+ "Cree" => "克里語",
43
+ "Croatian" => "克羅尼亞語",
44
+ "Czech" => "捷克語",
45
+ "Danish" => "丹麥語",
46
+ "Dissertation" => "學術論文",
47
+ "Drawing" => "繪圖",
48
+ "Dutch" => "荷蘭語",
49
+ "English" => "英語",
50
+ "Equipment" => "設備",
51
+ "Esperanto" => "世界語",
52
+ "Estonian" => "愛沙尼亞語",
53
+ "Fijian" => "斐濟語",
54
+ "Finnish" => "芬蘭語",
55
+ "French" => "法語",
56
+ "Fulah" => "富拉語",
57
+ "Furnishing" => "陳設",
58
+ "Galician" => "加利西亞語",
59
+ "Ganda" => "干達語",
60
+ "Georgian" => "喬治亞語",
61
+ "German" => "德語",
62
+ "Government Document" => "政府文獻",
63
+ "Graphic Arts" => "形象藝術",
64
+ "Greek" => "希臘語",
65
+ "Haitian" => "海地語",
66
+ "Hebrew" => "希伯來語",
67
+ "Hindi" => "印地語",
68
+ "Houseware" => "家庭用品",
69
+ "Hungarian" => "匈牙利語",
70
+ "Icelandic" => "冰島語",
71
+ "Image" => "圖像",
72
+ "Implements" => "器具",
73
+ "Indonesian" => "印度尼西亞語",
74
+ "Inuktitut" => "伊努伊特語",
75
+ "Irish" => "伊努皮克語",
76
+ "IsScholarly" => "愛爾蘭語",
77
+ "Italian" => "意大利語",
78
+ "Japanese" => "日語",
79
+ "Javanese" => "爪哇語",
80
+ "Journal" => "期刊",
81
+ "Journal Article" => "期刊文章",
82
+ "Kit" => "套件",
83
+ "Korean" => "韓語",
84
+ "Kurdish" => "庫爾德語",
85
+ "Language" => "語言",
86
+ "Lao" => "老撾語",
87
+ "Latin" => "拉丁語",
88
+ "Latvian" => "拉脫維亞語",
89
+ "Library" => "圖書館館藏分佈",
90
+ "Lithuanian" => "立陶宛語",
91
+ "Macedonian" => "馬其頓語",
92
+ "Malay" => "馬來語",
93
+ "Maltese" => "馬其他語",
94
+ "Manuscript" => "手稿",
95
+ "Maori" => "毛利語",
96
+ "Map" => "地圖",
97
+ "Marathi" => "馬拉地語",
98
+ "Microfilm" => "縮微膠捲",
99
+ "Microform" => "縮微材料",
100
+ "Model" => "模型",
101
+ "Mongolian" => "蒙古語",
102
+ "Music Recording" => "音樂錄音",
103
+ "Music Score" => "樂譜",
104
+ "Musical Instrument" => "樂器",
105
+ "Navajo" => "納瓦霍語",
106
+ "Ndonga" => "恩東加語",
107
+ "Nepali" => "尼泊爾語",
108
+ "Newsletter" => "簡訊",
109
+ "Newspaper" => "報紙",
110
+ "Newspaper Article" => "報紙文章",
111
+ "Norwegian" => "挪威語",
112
+ "Ojibwa" => "奧積瓦語",
113
+ "Painting" => "繪畫",
114
+ "Pali" => "巴利語",
115
+ "Pamphlet" => "小冊子",
116
+ "Panjabi" => "旁遮普語",
117
+ "Paper" => "論文",
118
+ "Patent" => "專利",
119
+ "Persian" => "波斯語",
120
+ "Photograph" => "照片",
121
+ "Play" => "播放",
122
+ "Poem" => "詩歌",
123
+ "Polish" => "波蘭語",
124
+ "Portuguese" => "葡萄牙語",
125
+ "Postcard" => "明信片",
126
+ "Poster" => "海報",
127
+ "Presentation" => "演示文稿",
128
+ "Publication" => "出版物",
129
+ "Publication Article" => "出版物文章",
130
+ "PublicationDate" => "出版日期",
131
+ "Pushto" => "普什圖語",
132
+ "Quechua" => "蓋丘亞語",
133
+ "Realia" => "教學用具",
134
+ "Report" => "報告",
135
+ "Romanian" => "羅馬尼亞語",
136
+ "Russian" => "俄語",
137
+ "Sanskrit" => "梵語",
138
+ "Serbian" => "塞爾維亞語",
139
+ "Slovak" => "斯洛伐克語",
140
+ "Slovenian" => "斯洛文尼亞語",
141
+ "Spanish" => "西班牙語",
142
+ "Special Collection" => "專輯",
143
+ "Spoken Word Recording" => "口語音樂唱片",
144
+ "Standard" => "標準",
145
+ "SubjectTerms" => "主題詞",
146
+ "Sundanese" => "異他語",
147
+ "Swahili" => "斯瓦西里語",
148
+ "Swedish" => "瑞典語",
149
+ "Tagalog" => "塔加拉族語",
150
+ "Tamil" => "泰米爾語",
151
+ "Telugu" => "泰盧固語",
152
+ "Thai" => "泰國語",
153
+ "Tibetan" => "藏語",
154
+ "Tool" => "工具",
155
+ "Trade Publication Article" => "商業出版文章",
156
+ "Transcript" => "抄本",
157
+ "Tswana" => "茨瓦納語",
158
+ "Turkish" => "土耳其語",
159
+ "Ukrainian" => "烏克蘭語",
160
+ "Urdu" => "烏爾都語",
161
+ "Video Recording" => "錄影",
162
+ "Vietnamese" => "越南語",
163
+ "Web Resource" => "網路資源",
164
+ "Welsh" => "威爾士語",
165
+ "Western Frisian" => "弗里西亞語",
166
+ "Wolof" => "沃洛夫語",
167
+ "Yiddish" => "依地語",
168
+ "Yoruba" => "約魯巴語",
169
+ "Zulu" => "祖魯語",
170
+ "eBook" => "電子書",
171
+ }
172
+ end
173
+ end
174
+ end
175
+
data/lib/summon/schema.rb CHANGED
@@ -66,7 +66,7 @@ module Summon
66
66
  end
67
67
 
68
68
  def locale
69
- @service.locale
69
+ @service.locale.gsub(/-/, "")
70
70
  end
71
71
 
72
72
  def translate(value)
@@ -101,15 +101,36 @@ module Summon
101
101
  end
102
102
 
103
103
  def camelize(str)
104
- str.gsub /(\w)_(\w)/ do
104
+ str.gsub /(\w)_(\w)/ do
105
105
  "#{$1}#{$2.upcase}"
106
106
  end
107
107
  end
108
+
109
+ def pascalize(str)
110
+ str.gsub(/(_|^)(\w)/) {$2.upcase}
111
+ end
108
112
 
109
113
  def transform(service, raw)
110
114
  if @transform
111
- ctor = proc do |s,h|
112
- ::Summon.const_get(@transform).new(s,h)
115
+ case @transform
116
+ when Class
117
+ ctor = proc do |s,h|
118
+ @transform.new(s, h)
119
+ end
120
+
121
+ when Array
122
+ obj = ::Summon
123
+ @transform.each do |ns|
124
+ obj = obj.const_get(pascalize(ns.to_s))
125
+ end
126
+ ctor = proc do |s, h|
127
+ obj.new(s, h)
128
+ end
129
+
130
+ else
131
+ ctor = proc do |s,h|
132
+ ::Summon.const_get(@transform).new(s,h)
133
+ end
113
134
  end
114
135
  raw.kind_of?(Array) ? raw.map {|a| [service, a]}.map(&ctor) : ctor.call(service, raw)
115
136
  end
@@ -12,6 +12,7 @@ class Summon::Document < Summon::Schema
12
12
  attr :publishers, :json_name => "Publisher"
13
13
  attr :volume
14
14
  attr :issue
15
+ attr :edition
15
16
  attr :start_page
16
17
  attr :end_page
17
18
  attr :page_count
@@ -55,6 +56,9 @@ class Summon::Document < Summon::Schema
55
56
  attr :thumbnail_medium, :json_name => "thumbnail_m"
56
57
  attr :thumbnail_large, :json_name => "thumbnail_l"
57
58
  attr :availability_id
59
+ attr :dbid, :json_name => "DBID", :single => false
60
+
61
+ attr :lib_guide_tab, :json_name => "LibGuideTab_xml", :single => false
58
62
 
59
63
  def isbn
60
64
  @isbns.first
@@ -96,16 +100,28 @@ class Summon::Document < Summon::Schema
96
100
  translate(@content_type)
97
101
  end
98
102
 
103
+ def lib_guide_tabs
104
+ @lib_guide_tab.map {|n| Summon::LibGuideTab.new(n["name"], n["uri"])}
105
+ end
106
+
99
107
  def from_library?
100
108
  @availability_id != nil
101
109
  end
102
110
 
103
111
  end
104
112
 
105
-
106
113
  class Summon::Author < Struct.new(:name)
107
114
  def name(*args)
108
115
  super()
109
116
  end
110
117
  end
111
118
 
119
+ class Summon::LibGuideTab < Struct.new(:name, :uri)
120
+ def name(*args)
121
+ super()
122
+ end
123
+
124
+ def uri(*args)
125
+ super()
126
+ end
127
+ end
@@ -11,13 +11,14 @@ module Summon
11
11
  @client_key = options[:client_key]
12
12
  @locale = (options[:locale] || Summon::DEFAULT_LOCALE).to_s
13
13
  @log = Log.new(options[:log])
14
- @transport = options[:transport] || Summon::Transport::Http.new(:url => @url, :access_id => @access_id, :secret_key => @secret_key, :client_key => @client_key, :session_id => options[:session_id], :log => @log)
14
+ @benchmark = options[:benchmark] || Pass.new
15
+ @transport = options[:transport] || Summon::Transport::Http.new(:url => @url, :access_id => @access_id, :secret_key => @secret_key, :client_key => @client_key, :session_id => options[:session_id], :log => @log, :benchmark => @benchmark)
15
16
  end
16
17
 
17
18
  def version
18
19
  connect("/version") {|result| result["version"] }
19
- end
20
-
20
+ end
21
+
21
22
  def search(params = {})
22
23
  connect("/search", params) do |result|
23
24
  Summon::Search.new(self,result)
@@ -27,17 +28,23 @@ module Summon
27
28
  def modify_search(original_search, command)
28
29
  search original_search.query.to_hash.merge("s.cmd" => command)
29
30
  end
30
-
31
+
31
32
  #clone a service with overridden options
32
33
  def [](options)
33
- self.class.new({:url => @url, :access_id => @access_id, :secret_key => @secret_key, :client_key => @client_key, :log => @log.impl}.merge(options))
34
+ self.class.new({:url => @url, :access_id => @access_id, :secret_key => @secret_key, :client_key => @client_key, :log => @log.impl}.merge(options), :benchmark => @benchmark)
34
35
  end
35
36
 
36
37
  private
37
-
38
+
38
39
  def connect(path, params = {})
39
40
  yield @transport.get(path, params)
40
41
  end
42
+
43
+ class Pass
44
+ def report(*args)
45
+ yield
46
+ end
47
+ end
41
48
  end
42
49
  end
43
50