blacklight 5.0.0.pre3 → 5.0.0.pre4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +9 -16
  3. data/Gemfile +4 -0
  4. data/README.md +15 -1
  5. data/VERSION +1 -1
  6. data/app/assets/stylesheets/blacklight/_bookmark.css.scss +1 -1
  7. data/app/assets/stylesheets/blacklight/_catalog.css.scss +2 -12
  8. data/app/assets/stylesheets/blacklight/_facets.css.scss +1 -1
  9. data/app/assets/stylesheets/blacklight/_header.css.scss +1 -0
  10. data/app/assets/stylesheets/blacklight/_modal.css.scss +4 -2
  11. data/app/assets/stylesheets/blacklight/blacklight_defaults.css.scss +0 -5
  12. data/app/controllers/bookmarks_controller.rb +4 -0
  13. data/app/helpers/blacklight/blacklight_helper_behavior.rb +26 -187
  14. data/app/helpers/blacklight/catalog_helper_behavior.rb +20 -8
  15. data/app/helpers/blacklight/facets_helper_behavior.rb +0 -83
  16. data/app/helpers/blacklight/hash_as_hidden_fields_helper_behavior.rb +1 -1
  17. data/app/helpers/blacklight/url_helper_behavior.rb +201 -0
  18. data/app/helpers/blacklight_url_helper.rb +3 -0
  19. data/app/views/bookmarks/_tools.html.erb +4 -7
  20. data/app/views/catalog/_citation.html.erb +1 -1
  21. data/app/views/catalog/_did_you_mean.html.erb +1 -1
  22. data/app/views/catalog/_document.html.erb +1 -1
  23. data/app/views/catalog/_search_form.html.erb +1 -1
  24. data/app/views/catalog/_show_more_like_this.html.erb +1 -1
  25. data/app/views/catalog/_view_type_group.html.erb +4 -4
  26. data/app/views/catalog/email.html.erb +2 -2
  27. data/app/views/catalog/facet.html.erb +1 -1
  28. data/app/views/catalog/show.html.erb +1 -1
  29. data/app/views/catalog/sms.html.erb +1 -1
  30. data/blacklight.gemspec +2 -2
  31. data/config/jetty.yml +4 -1
  32. data/config/locales/blacklight.en.yml +3 -0
  33. data/config/locales/blacklight.fr.yml +3 -0
  34. data/{lib/generators/blacklight/templates/migrations/create_searches.rb → db/migrate/20140202020201_create_searches.rb} +2 -0
  35. data/{lib/generators/blacklight/templates/migrations/create_bookmarks.rb → db/migrate/20140202020202_create_bookmarks.rb} +1 -2
  36. data/gemfiles/rails3.gemfile +2 -0
  37. data/gemfiles/rails4.gemfile +2 -0
  38. data/lib/blacklight.rb +1 -40
  39. data/lib/blacklight/base.rb +3 -9
  40. data/lib/blacklight/catalog.rb +3 -16
  41. data/lib/blacklight/catalog/search_context.rb +8 -1
  42. data/lib/blacklight/configurable.rb +1 -2
  43. data/lib/blacklight/configuration.rb +13 -3
  44. data/lib/blacklight/configuration/view_config.rb +71 -0
  45. data/lib/blacklight/engine.rb +1 -0
  46. data/lib/blacklight/routes.rb +0 -1
  47. data/lib/blacklight/solr/document.rb +0 -4
  48. data/lib/blacklight/solr_helper.rb +8 -2
  49. data/lib/blacklight/user.rb +1 -16
  50. data/lib/blacklight/utils.rb +72 -1
  51. data/lib/generators/blacklight/install_generator.rb +92 -0
  52. data/lib/generators/blacklight/models_generator.rb +1 -25
  53. data/lib/generators/blacklight/templates/catalog_controller.rb +28 -32
  54. data/spec/helpers/blacklight_helper_spec.rb +24 -417
  55. data/spec/helpers/catalog_helper_spec.rb +13 -13
  56. data/spec/helpers/facets_helper_spec.rb +0 -127
  57. data/spec/helpers/hash_as_hidden_fields_spec.rb +1 -1
  58. data/spec/helpers/url_helper_spec.rb +360 -0
  59. data/spec/lib/blacklight/configuration_spec.rb +2 -3
  60. data/spec/lib/blacklight/solr_helper_spec.rb +11 -17
  61. data/spec/lib/blacklight/user_spec.rb +0 -41
  62. data/spec/lib/blacklight_spec.rb +0 -22
  63. data/spec/lib/utils_spec.rb +35 -4
  64. data/spec/spec_helper.rb +4 -3
  65. data/spec/test_app_templates/lib/generators/test_app_generator.rb +2 -2
  66. data/spec/views/catalog/_constraints.html.erb_spec.rb +4 -2
  67. data/spec/views/catalog/_index_default.erb_spec.rb +1 -1
  68. data/spec/views/catalog/_paginate_compact.html.erb_spec.rb +1 -5
  69. data/spec/views/catalog/_show_default.erb_spec.rb +1 -1
  70. data/spec/views/catalog/_view_type_group.html.erb_spec.rb +11 -3
  71. data/tasks/blacklight.rake +1 -5
  72. metadata +14 -16
  73. data/.gitmodules +0 -0
  74. data/app/views/catalog/endnote.endnote.erb +0 -1
  75. data/app/views/catalog/show.endnote.erb +0 -1
  76. data/lib/generators/blacklight/blacklight_generator.rb +0 -97
  77. data/lib/generators/blacklight/templates/migrations/add_user_types_to_bookmarks_searches.rb +0 -16
  78. data/lib/generators/blacklight/templates/migrations/remove_editable_fields_from_bookmarks.rb +0 -12
  79. data/lib/railties/all_tests.rake +0 -39
  80. data/lib/railties/blacklight_rspec.rake +0 -128
data/.gitmodules DELETED
File without changes
@@ -1 +0,0 @@
1
- <%= render_endnote_texts(@documents) %>
@@ -1 +0,0 @@
1
- <%= render_endnote_text(@document) %>
@@ -1,97 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
- require 'rails/generators'
3
-
4
- class BlacklightGenerator < Rails::Generators::Base
5
-
6
- source_root File.expand_path('../templates', __FILE__)
7
-
8
- argument :model_name, :type => :string , :default => "user"
9
- class_option :devise , :type => :boolean, :default => false, :aliases => "-d", :desc => "Use Devise as authentication logic."
10
- class_option :marc , :type => :boolean, :default => false, :aliases => "-m", :desc => "Generate MARC-based demo ."
11
-
12
- desc """
13
- This generator makes the following changes to your application:
14
- 1. Generates blacklight:models
15
- 2. Creates a number of public assets, including images, stylesheets, and javascript
16
- 3. Injects behavior into your user application_controller.rb
17
- 4. Adds example configurations for dealing with MARC-like data
18
- 5. Adds Blacklight routes to your ./config/routes.rb
19
-
20
-
21
- Thank you for Installing Blacklight.
22
- """
23
-
24
- def bundle_install
25
- Bundler.with_clean_env do
26
- run "bundle install"
27
- end
28
- end
29
-
30
- # Copy all files in templates/public/ directory to public/
31
- # Call external generator in AssetsGenerator, so we can
32
- # leave that callable seperately too.
33
- def copy_public_assets
34
- generate "blacklight:assets"
35
- end
36
-
37
- def generate_blacklight_models
38
-
39
- generator_args = []
40
- if options[:devise]
41
- generator_args << "--devise #{options[:devise]}"
42
- end
43
-
44
- generate 'blacklight:models', generator_args.join(" ")
45
- end
46
-
47
- # Add Blacklight to the application controller
48
- def inject_blacklight_controller_behavior
49
- # prepend_file("app/controllers/application_controller.rb", "require 'blacklight/controller'\n\n")
50
- inject_into_class "app/controllers/application_controller.rb", "ApplicationController" do
51
- " # Adds a few additional behaviors into the application controller \n " +
52
- " include Blacklight::Controller\n" +
53
- " # Please be sure to impelement current_user and user_session. Blacklight depends on \n" +
54
- " # these methods in order to perform user specific actions. \n\n" +
55
- " layout 'blacklight'\n\n"
56
- end
57
- end
58
-
59
- # Generate blacklight catalog controller
60
- def create_blacklight_catalog
61
- copy_file "catalog_controller.rb", "app/controllers/catalog_controller.rb"
62
- end
63
-
64
- def generate_blacklight_marc_demo
65
- if options[:marc]
66
- gem "blacklight_marc"
67
-
68
- Bundler.with_clean_env do
69
- run "bundle install"
70
- end
71
-
72
- generate 'blacklight_marc:marc'
73
- end
74
- end
75
-
76
- def inject_blacklight_routes
77
- # These will end up in routes.rb file in reverse order
78
- # we add em, since each is added at the top of file.
79
- # we want "root" to be FIRST for optimal url generation.
80
- route('blacklight_for :catalog')
81
- route('root :to => "catalog#index"')
82
- end
83
-
84
- def add_sass_configuration
85
-
86
- insert_into_file "config/application.rb", :after => "config.assets.enabled = true" do <<EOF
87
-
88
- # Default SASS Configuration, check out https://github.com/rails/sass-rails for details
89
- config.assets.compress = !Rails.env.development?
90
-
91
- EOF
92
- end
93
-
94
- end
95
-
96
- end
97
-
@@ -1,16 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
- class AddUserTypesToBookmarksSearches < ActiveRecord::Migration
3
- def self.up
4
- add_column :searches, :user_type, :string
5
- add_column :bookmarks, :user_type, :string
6
- Search.reset_column_information
7
- Bookmark.reset_column_information
8
- Search.update_all("user_type = '<%=model_name%>'")
9
- Bookmark.update_all("user_type = '<%=model_name%>'")
10
- end
11
-
12
- def self.down
13
- remove_column :searches, :user_type
14
- remove_column :bookmarks, :user_type
15
- end
16
- end
@@ -1,12 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
- class RemoveEditableFieldsFromBookmarks < ActiveRecord::Migration
3
- def self.up
4
- remove_column :bookmarks, :notes
5
- remove_column :bookmarks, :url
6
- end
7
-
8
- def self.down
9
- add_column :bookmarks, :notes, :text
10
- add_column :bookmarks, :url, :string
11
- end
12
- end
@@ -1,39 +0,0 @@
1
- namespace :blacklight do
2
- begin
3
- require 'rspec/core'
4
- require 'rspec/core/rake_task'
5
-
6
- desc "Run Blacklight rspec, with test solr"
7
- task :all_tests => :hudson
8
-
9
- desc "Run Blacklight rspec, with test solr"
10
- task :hudson do
11
- Rails.env = 'test' unless ENV['RAILS_ENV']
12
-
13
- error = Jettywrapper.wrap(Jettywrapper.load_config) do
14
- Rake::Task["blacklight:spec"].invoke
15
- end
16
-
17
- raise "test failures: #{error}" if error
18
- end
19
-
20
- namespace :all_tests do
21
- task :rcov do
22
- desc "Run Blacklight rspec tests with rcov"
23
-
24
- rm "blacklight-coverage.data" if File.exist?("blacklight-coverage.data")
25
- Rails.env = 'test' unless ENV['RAILS_ENV']
26
- error = Jettywrapper.wrap(Jettywrapper.load_config) do
27
- Rake::Task["blacklight:spec:rcov"].invoke
28
- end
29
- raise "test failures: #{error}" if error
30
- end
31
- end
32
-
33
- rescue LoadError
34
- desc "Not available! (rspec not avail)"
35
- task :all_tests do
36
- abort 'Not available. Rspec needs to be installed to run blacklight:all_tests'
37
- end
38
- end
39
- end
@@ -1,128 +0,0 @@
1
- # Blacklight customization of the Rake tasks that come with rspec-2, to run
2
- # specs located in alternate location (inside BL plugin), and to provide
3
- # rake tasks for jetty/solr wrapping.
4
- #
5
- # Same tasks as in ordinary rspec, but prefixed with blacklight:.
6
- #
7
- # rspec2 keeps it's rake tasks inside it's own code, it doesn't generate them.
8
- # We had to copy them from there and modify, may have to be done again
9
- # if rspec2 changes a lot, but this code looks relatively cleanish.
10
- begin
11
- require 'rspec/core'
12
- require 'rspec/core/rake_task'
13
- if default = Rake.application.instance_variable_get('@tasks')['default']
14
- default.prerequisites.delete('test')
15
- end
16
-
17
- spec_prereq = Rails.configuration.generators.options[:rails][:orm] == :active_record ? "db:test:prepare" : :noop
18
- task :noop do; end
19
- #task :default => :spec
20
-
21
- blacklight_spec = File.expand_path("./test_support/spec", Blacklight.root)
22
-
23
- # Set env variable to tell our spec/spec_helper.rb where we really are,
24
- # so it doesn't have to guess with relative path, which will be wrong
25
- # since we allow spec_dir to be in a remote location. spec_helper.rb
26
- # needs it before Rails.root is defined there, even though we can
27
- # oddly get it here, i dunno.
28
- ENV['RAILS_ROOT'] = Rails.root.to_s
29
-
30
- namespace :blacklight do
31
-
32
- desc "Run all specs in spec directory (excluding plugin specs)"
33
- RSpec::Core::RakeTask.new(:spec => spec_prereq) do |t|
34
- # the user might not have run rspec generator because they don't
35
- # actually need it, but without an ./.rspec they won't get color,
36
- # let's insist.
37
- t.rspec_opts = "--colour"
38
-
39
- # pattern directory name defaults to ./**/*_spec.rb, but has a more concise command line echo
40
- t.pattern = "#{blacklight_spec}"
41
- end
42
-
43
- # Don't understand what this does or how to make it use our remote stats_directory
44
- #task :stats => "spec:statsetup"
45
-
46
- namespace :spec do
47
- [:requests, :models, :controllers, :views, :helpers, :mailers, :lib, :routing].each do |sub|
48
- desc "Run the code examples in spec/#{sub}"
49
- RSpec::Core::RakeTask.new(sub => spec_prereq) do |t|
50
- # the user might not have run rspec generator because they don't
51
- # actually need it, but without an ./.rspec they won't get color,
52
- # let's insist.
53
- t.rspec_opts = "--colour"
54
-
55
- # pattern directory name defaults to ./**/*_spec.rb, but has a more concise command line echo
56
- t.pattern = "#{blacklight_spec}/#{sub}"
57
-
58
- ruby_engine = defined?(RUBY_ENGINE) ? RUBY_ENGINE : "ruby"
59
- if ENV['COVERAGE'] and RUBY_VERSION =~ /^1.8/ and ruby_engine != "jruby"
60
- t.rcov = true
61
- t.rcov_opts = %w{--rails -I../../app -I../../lib --exclude osx\/objc,gems\/,spec\/,features\/ --aggregate blacklight-coverage.data}
62
- t.rcov_opts << %[-o "../../coverage/rcov"]
63
- end
64
- end
65
- end
66
-
67
- desc "Run all specs with rcov"
68
- RSpec::Core::RakeTask.new(:rcov => spec_prereq) do |t|
69
- t.rcov = true
70
- # pattern directory name defaults to ./**/*_spec.rb, but has a more concise command line echo
71
- t.pattern = File.join(blacklight_spec, "/**/*_spec.rb")
72
- t.rspec_opts = "--colour"
73
- t.rcov_opts = '-o "../../coverage/rcov" --exclude /gems/,/Library/,/usr/,lib/tasks,.bundle,config,/lib/rspec/,/lib/rspec-'
74
- end
75
-
76
- # Blacklight. Solr wrapper. for now just for blacklight:spec, plan to
77
- # provide it for all variants eventually.
78
- # if you would like to see solr startup messages on STDERR
79
- # when starting solr test server during functional tests use:
80
- #
81
- # rake SOLR_CONSOLE=true
82
- desc "blacklight:solr with jetty/solr launch"
83
- task :with_solr do
84
- require 'jettywrapper'
85
- # wrap tests with a test-specific Solr server
86
- # Need to look up where the test jetty is located
87
- # from solr.yml, we don't hardcode it anymore.
88
-
89
- Rails.env = 'test' unless ENV['RAILS_ENV']
90
- error = Jettywrapper.wrap(Jettywrapper.load_config) do
91
- Rake::Task["blacklight:spec"].invoke
92
- end
93
- raise "test failures: #{error}" if error
94
- end
95
-
96
-
97
- # Don't understand what this does or how to make it use our remote stats_directory.
98
- # task :statsetup do
99
- # require 'rails/code_statistics'
100
- # ::STATS_DIRECTORIES << %w(Model\ specs spec/models) if File.exist?('spec/models')
101
- # ::STATS_DIRECTORIES << %w(View\ specs spec/views) if File.exist?('spec/views')
102
- # ::STATS_DIRECTORIES << %w(Controller\ specs spec/controllers) if File.exist?('spec/controllers')
103
- # ::STATS_DIRECTORIES << %w(Helper\ specs spec/helpers) if File.exist?('spec/helpers')
104
- # ::STATS_DIRECTORIES << %w(Library\ specs spec/lib) if File.exist?('spec/lib')
105
- # ::STATS_DIRECTORIES << %w(Mailer\ specs spec/mailers) if File.exist?('spec/mailers')
106
- # ::STATS_DIRECTORIES << %w(Routing\ specs spec/routing) if File.exist?('spec/routing')
107
- # ::STATS_DIRECTORIES << %w(Request\ specs spec/requests) if File.exist?('spec/requests')
108
- # ::CodeStatistics::TEST_TYPES << "Model specs" if File.exist?('spec/models')
109
- # ::CodeStatistics::TEST_TYPES << "View specs" if File.exist?('spec/views')
110
- # ::CodeStatistics::TEST_TYPES << "Controller specs" if File.exist?('spec/controllers')
111
- # ::CodeStatistics::TEST_TYPES << "Helper specs" if File.exist?('spec/helpers')
112
- # ::CodeStatistics::TEST_TYPES << "Library specs" if File.exist?('spec/lib')
113
- # ::CodeStatistics::TEST_TYPES << "Mailer specs" if File.exist?('spec/mailers')
114
- # ::CodeStatistics::TEST_TYPES << "Routing specs" if File.exist?('spec/routing')
115
- # ::CodeStatistics::TEST_TYPES << "Request specs" if File.exist?('spec/requests')
116
- # end
117
- end
118
- end
119
- rescue LoadError
120
- # This rescue pattern stolen from cucumber; rspec didn't need it before since
121
- # tasks only lived in rspec gem itself, but for Blacklight since we're copying
122
- # these tasks into BL, we use the rescue so you can still run BL (without
123
- # these tasks) even if you don't have rspec installed.
124
- desc 'rspec rake tasks not available (rspec not installed)'
125
- task :spec do
126
- abort 'Rspec rake tasks not available. Be sure to install rspec gems. '
127
- end
128
- end