umlaut 4.0.0.beta5 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- Mzk2MTBjNThjOTVjZDUyYWJhYTQ1NmU2NGM4ZTg3NzJmNjE2MjYwZg==
4
+ ODZiYTQzNWJjMzkwMDAyZjZhMTNiODlhYzhlMmFjOGIwNTc0ZTVjYw==
5
5
  data.tar.gz: !binary |-
6
- MDNkMThjODUzNmFlMTRkZTY0MTViMDkwNmYyNmY0NjNiMzliOTYwMg==
6
+ MDk2ODYwYTM1M2UwM2QzMDg4ZGNlNDQxNWIwNjQ0YjVjN2JhZDE3NA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NmY0MWNiMDlmMjU0YWZjMmM2MTM2ZGI4M2Y4NzdlNDU4MDdjNTRkYjY1OWU4
10
- Y2VlNmI0Zjg3MWJiM2M1ZDI3ZTM4NTc1NDMyNDc4NjM2MDA1YWJkMzhjOGRl
11
- YmFlMmZlYzQxMmMyOWE5YTQyMmZjZTEwNzc4Mzc0NTIwYTc4MjM=
9
+ NTlmOTFjNzA2ZDU2ZDYwZDQ3MTJjNTk4Y2YxM2U0MTk1NGI4OTE1ZDk2YzM3
10
+ MjcyYjlkNjA5NTViZWNlMGM4Njk5YTJkZGFkMDdkZmY2YzBiYzg5ZWE2YjVk
11
+ MzZhZDViMmRhZWQyZjQwOWM0YzMwYWFjMTRjYTQ3YWQ2ODZkMmI=
12
12
  data.tar.gz: !binary |-
13
- YjdlMGIwMmU5YTlkMjFmNTgwY2RkOTZlYWZhYjg2ZWUxMjkwY2VlYWMyYzYy
14
- ZmI5NDVhOTIzNDJmYTRjMjAyMGJjNjRmNWNjMTc0ODEzN2U5NDdlMDJjYjg1
15
- NmEyZGYwNzQ2ZDIzYWQ2NWQ1ZjAxYzQzYTkxNTRkMGI2NGY4NTg=
13
+ ODRjOTg4MWY2NWIyNDYwMmU3MmU3ZWY2ZmE2MDg1ZDU4YzU1ZDJiMWU1YWVj
14
+ YmUxMjYwZTllMWZmNTc0NWI2MzJiN2Q2Nzk2MzcxODQxYjg5M2U3NTgyMzMz
15
+ NTllZGUxYTU5ZDQyMzI5NzY4ZGY4ZjY4YmMxMWM5YTY4OWE4YTM=
data/README.md CHANGED
@@ -6,8 +6,6 @@
6
6
  [![Coverage Status](https://coveralls.io/repos/team-umlaut/umlaut/badge.png?branch=master)](https://coveralls.io/r/team-umlaut/umlaut)
7
7
  <!--[![Security Status](http://rails-brakeman.com/team-umlaut/umlaut.png)](http://rails-brakeman.com/team-umlaut/umlaut)-->
8
8
 
9
- (Umlaut 4.0.0.beta1 is out, and this README refers to Umlaut 4.x, and we recommend starting with Umlaut 4.x even though it's only in beta. Install with `gem install umlaut --pre`)
10
-
11
9
  Umlaut is software for libraries (the kind with books).
12
10
 
13
11
  It could be described as a front-end layer on top of an existing OpenURL
@@ -46,11 +44,11 @@ The Rails/Umlaut super-concise expert summary is:
46
44
 
47
45
  * `$ gem install umlaut`
48
46
  * Then run the umlaut app generator: `$ umlaut my_new_app`
49
- ** That will make a new rails app
50
- ** without spring or turbolinks
51
- ** using mysql (sqlite3 does not work for umlaut)
52
- ** it will add the umlaut gem to your app
53
- ** and it will run umlaut's generator to add a couple more files to your app, equivalent of `$ rails generate umlaut:install`
47
+ * That will make a new rails app
48
+ * without spring or turbolinks
49
+ * using mysql (sqlite3 does not work for umlaut)
50
+ * it will add the umlaut gem to your app
51
+ * and it will run umlaut's generator to add a couple more files to your app, equivalent of `$ rails generate umlaut:install`
54
52
 
55
53
  * set up your db in config/databases.yml and run `rake db:migrate`
56
54
  * configuration in `./config/umlaut_services.yml` and `./app/controllers/umlaut_controller.rb`
@@ -7,7 +7,7 @@ module Umlaut::HtmlHeadHelper
7
7
  def render_opensearch_link
8
8
  tag("link", :rel => "search", :type => "application/opensearchdescription+xml",
9
9
  :title => umlaut_config.opensearch_short_name,
10
- :href => url_for(:controller=>'open_search', :only_path=>false))
10
+ :href => url_for(:controller=>'/open_search', :only_path=>false))
11
11
  end
12
12
 
13
13
  # used on non-js progress page, we need to refresh the page
@@ -1,4 +1,5 @@
1
1
  require 'i18n'
2
+ require 'truncate_to_db_limit'
2
3
 
3
4
  # Note: There are a few actual attributes stored as Columns in referent --
4
5
  # these were originally used for identifying a Referent identifying the
@@ -16,11 +17,12 @@ class Referent < ActiveRecord::Base
16
17
  has_many :referent_values
17
18
  has_many :permalinks
18
19
 
19
- # Make sure years get truncated to 4 chars
20
- def year=(y)
21
- super(y.slice(0,4))
22
- end
20
+ # We really should get rid of these 'mirror' attributes, but
21
+ # in the meantime truncate them.
22
+ include TruncateToDbLimit
23
+ truncate_to_db_limit :volume, :year, :issn, :isbn
23
24
 
25
+
24
26
  # Pass in :permalink => :force to force creation of a permalink, otherwise
25
27
  # no permalink is created by this method, one can be lazily created when
26
28
  # needed.
@@ -164,6 +164,7 @@ Generally only for fulltext. Right now only supplied by SFX.
164
164
  method can convenient.
165
165
 
166
166
  =end
167
+ require 'truncate_to_db_limit'
167
168
  class ServiceResponse < ActiveRecord::Base
168
169
  @@built_in_fields = [:display_text, :url, :notes, :response_key, :value_string, :value_alt_string, :value_text, :id]
169
170
  belongs_to :request
@@ -173,6 +174,9 @@ class ServiceResponse < ActiveRecord::Base
173
174
  # object.
174
175
  attr_accessor :http_request_params
175
176
 
177
+ include TruncateToDbLimit
178
+ truncate_to_db_limit :display_text
179
+
176
180
  # Constants for 'match_reliability' value.
177
181
  MatchExact = 'exact'
178
182
  MatchUnsure = 'unsure'
@@ -109,6 +109,7 @@ class Amazon < Service
109
109
 
110
110
  selected_aws_vals = {}
111
111
  if ( @make_aws_call )
112
+
112
113
  aws_response = make_aws_request( isbn )
113
114
 
114
115
  return request.dispatched(self, true) if aws_response.blank?
@@ -189,7 +190,8 @@ class Amazon < Service
189
190
  err = (aws.at("ItemLookupErrorResponse")) if err.blank?
190
191
 
191
192
  unless (err.blank?)
192
- if (err.at('Code').text == 'AWS.InvalidParameterValue')
193
+ if ((err.at('Code').text == 'AWS.InvalidParameterValue') ||
194
+ (err.at('Code').text == 'AWS.ECommerceService.ItemNotAccessible'))
193
195
  # Indicates an ISBN that Amazon doesn't know about, or that
194
196
  # was mal-formed. We can't tell the difference, so either
195
197
  # way let's silently ignore.
@@ -306,9 +308,9 @@ class Amazon < Service
306
308
  look_inside = false
307
309
 
308
310
  # Check for search_inside or look_inside if we're configured
309
- # to supply highlighted_link or search_inside, that's what we
311
+ # to supply "excerpts" or search_inside, that's what we
310
312
  # need it for.
311
- if ( @service_types.include?("highlighted_link") ||
313
+ if ( @service_types.include?("excerpts") ||
312
314
  @service_types.include?("search_inside"))
313
315
 
314
316
 
@@ -127,8 +127,7 @@ class HathiTrust < Service
127
127
  def get_bibkey_parameters(rft)
128
128
  # filter out special chars that ought not to be in there anyway,
129
129
  # and that HathiTrust barfs on.
130
- isbn = get_identifier(:urn, "isbn", rft)
131
- isbn = isbn.gsub(/[\-\[\]]/, '') unless isbn.blank?
130
+ isbn = get_isbn(rft)
132
131
 
133
132
  oclcnum = get_identifier(:info, "oclcnum", rft)
134
133
  oclcnum = oclcnum.gsub(/[\-\[\]]/, '') unless oclcnum.blank?
@@ -139,7 +139,8 @@ class Scopus2 < Service
139
139
  code = error.at_xpath("./status/statusCode")
140
140
  message = error.at_xpath("./status/statusText")
141
141
  end
142
- e = StandardError.new("Scopus returned error: #{code}: #{message}: scopus query: #{url}")
142
+
143
+ e = StandardError.new("Scopus returned error HTTP status #{response.code}: #{code}: #{message}: scopus query: #{url}")
143
144
  return request.dispatched(self, DispatchedService::FailedFatal, e)
144
145
  end
145
146
 
data/bin/umlaut CHANGED
@@ -43,15 +43,19 @@ def run
43
43
 
44
44
  puts "#{command}\n\n"
45
45
 
46
- system command
46
+ success = system command
47
47
 
48
- post_install_message!
48
+ if success
49
+ post_install_message!
50
+ else
51
+ puts "\nError installing Umlaut app.\n\n"
52
+ end
49
53
  end
50
54
 
51
55
  def command_line(options)
52
56
  umlaut_template_path = File.expand_path(File.dirname(__FILE__) + '/../lib/generators/umlaut_app_template.rb')
53
57
 
54
- return "rails _#{options.rails_version}_ new -d mysql --skip-spring #{options.app_path} -m #{umlaut_template_path}"
58
+ return "rails _#{options.rails_version}_ new #{options.app_path} -d mysql --skip-spring -m #{umlaut_template_path}"
55
59
  end
56
60
 
57
61
  def parse_options!
@@ -96,7 +96,13 @@ module Umlaut
96
96
 
97
97
  def asset_hooks
98
98
  guarded(:asset_hooks) do
99
- generate("umlaut:asset_hooks")
99
+ # generate tries to invoke rails from the command line, at which point
100
+ # it will complain about not yet having a db defined.
101
+ #generate("umlaut:asset_hooks")
102
+
103
+ # try like so instead which seems to work, and is faster too.
104
+ log :generate, "umlaut:asset_hooks"
105
+ Rails::Generators.invoke("umlaut:asset_hooks")
100
106
  end
101
107
  end
102
108
 
@@ -105,6 +111,16 @@ module Umlaut
105
111
  copy_file("app/controllers/umlaut_controller.rb")
106
112
  end
107
113
  end
114
+
115
+ def config_colorize_logging
116
+ guarded(:config_colorize_logging) do
117
+ application(nil, env: "production") do
118
+ "# Umlaut generated this, because Umlaut does some colorized\n" +
119
+ " # logging, and Rails really ought to default to false in production.\n" +
120
+ " config.colorize_logging = false\n"
121
+ end
122
+ end
123
+ end
108
124
 
109
125
  def post_install_message
110
126
  say("\n Umlaut installed, now:", :yellow)
@@ -0,0 +1,51 @@
1
+ # An ActiveRecord extension that will let you automatically truncate
2
+ # certain attributes to the maximum length allowed by the DB.
3
+ #
4
+ # require 'truncate_to_db_limit'
5
+ # class Something < ActiveRecord::Base
6
+ # include TruncateToDbLimit
7
+ # truncate_to_db_limit :short_attr, :short_attr2
8
+ # #...
9
+ #
10
+ # Truncation is done in a before_validate hook, so won't happen until
11
+ # you try to save.
12
+ #
13
+ module TruncateToDbLimit
14
+ extend ActiveSupport::Concern
15
+
16
+ included do
17
+ class_attribute :'_truncate_to_db_limit_attributes', instance_accessor: false
18
+ before_validation :do_truncate_to_db_limit!
19
+
20
+
21
+ def self.truncate_to_db_limit(*attribute_names)
22
+ self._truncate_to_db_limit_attributes = attribute_names
23
+ end
24
+ end
25
+
26
+
27
+
28
+
29
+ def do_truncate_to_db_limit!
30
+
31
+
32
+ self.class._truncate_to_db_limit_attributes.each do |attribute_name|
33
+
34
+ ar_attr = self.class.columns_hash[attribute_name.to_s]
35
+
36
+ unless ar_attr
37
+ raise ArgumentError.new("truncate_to_db_limit #{attribute_name}: No such attribute")
38
+ end
39
+
40
+ limit = ar_attr.limit
41
+
42
+ unless limit && limit.to_i != 0
43
+ raise ArgumentError.new("truncate_to_db_limit #{attribute_name}: Limit not known")
44
+ end
45
+
46
+ normalized = send(attribute_name).try {|v| v.slice(0, limit)}
47
+ send("#{attribute_name}=", normalized)
48
+ end
49
+ end
50
+
51
+ end
@@ -1,8 +1,8 @@
1
1
  module Umlaut
2
- VERSION = "4.0.0.beta5"
2
+ VERSION = "4.0.0"
3
3
 
4
4
  # This is used in Umlaut's .gemspec for generating the gem,
5
5
  # and is also used in the umlaut app generator to make sure
6
6
  # we're generating with a compatible Rails version.
7
- RAILS_COMPAT_SPEC = [">= 3.2.12", "<= 4.2.0.beta1"]
7
+ RAILS_COMPAT_SPEC = [">= 3.2.12", "< 4.2.0"]
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: umlaut
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.beta5
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Rochkind, et al
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-30 00:00:00.000000000 Z
11
+ date: 2014-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -17,9 +17,9 @@ dependencies:
17
17
  - - ! '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: 3.2.12
20
- - - <=
20
+ - - <
21
21
  - !ruby/object:Gem::Version
22
- version: 4.2.0.beta1
22
+ version: 4.2.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -27,9 +27,9 @@ dependencies:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: 3.2.12
30
- - - <=
30
+ - - <
31
31
  - !ruby/object:Gem::Version
32
- version: 4.2.0.beta1
32
+ version: 4.2.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: jquery-rails
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -506,6 +506,7 @@ files:
506
506
  - lib/tasks/umlaut_asset_compile.rake
507
507
  - lib/tasks/umlaut_migrate_permalinks.rake
508
508
  - lib/term_color.rb
509
+ - lib/truncate_to_db_limit.rb
509
510
  - lib/umlaut.rb
510
511
  - lib/umlaut/routes.rb
511
512
  - lib/umlaut/version.rb
@@ -523,9 +524,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
523
524
  version: '0'
524
525
  required_rubygems_version: !ruby/object:Gem::Requirement
525
526
  requirements:
526
- - - ! '>'
527
+ - - ! '>='
527
528
  - !ruby/object:Gem::Version
528
- version: 1.3.1
529
+ version: '0'
529
530
  requirements: []
530
531
  rubyforge_project:
531
532
  rubygems_version: 2.4.1