mods_display 0.3.3 → 0.3.4

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.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +16 -0
  3. data/.rubocop_todo.yml +60 -0
  4. data/.travis.yml +2 -2
  5. data/Rakefile +10 -2
  6. data/lib/mods_display.rb +42 -42
  7. data/lib/mods_display/configuration.rb +69 -67
  8. data/lib/mods_display/configuration/access_condition.rb +17 -13
  9. data/lib/mods_display/configuration/base.rb +27 -24
  10. data/lib/mods_display/configuration/format.rb +8 -4
  11. data/lib/mods_display/configuration/genre.rb +8 -4
  12. data/lib/mods_display/configuration/imprint.rb +12 -7
  13. data/lib/mods_display/configuration/name.rb +8 -4
  14. data/lib/mods_display/configuration/note.rb +8 -4
  15. data/lib/mods_display/configuration/related_item.rb +8 -4
  16. data/lib/mods_display/configuration/subject.rb +11 -9
  17. data/lib/mods_display/configuration/title.rb +8 -4
  18. data/lib/mods_display/controller_extension.rb +24 -24
  19. data/lib/mods_display/country_codes.rb +385 -384
  20. data/lib/mods_display/fields/abstract.rb +7 -6
  21. data/lib/mods_display/fields/access_condition.rb +55 -55
  22. data/lib/mods_display/fields/audience.rb +7 -6
  23. data/lib/mods_display/fields/cartographics.rb +15 -14
  24. data/lib/mods_display/fields/collection.rb +32 -17
  25. data/lib/mods_display/fields/contact.rb +15 -13
  26. data/lib/mods_display/fields/contents.rb +7 -6
  27. data/lib/mods_display/fields/description.rb +21 -21
  28. data/lib/mods_display/fields/field.rb +164 -109
  29. data/lib/mods_display/fields/format.rb +36 -33
  30. data/lib/mods_display/fields/genre.rb +12 -11
  31. data/lib/mods_display/fields/identifier.rb +34 -34
  32. data/lib/mods_display/fields/imprint.rb +258 -214
  33. data/lib/mods_display/fields/language.rb +18 -16
  34. data/lib/mods_display/fields/location.rb +27 -26
  35. data/lib/mods_display/fields/name.rb +113 -118
  36. data/lib/mods_display/fields/note.rb +33 -34
  37. data/lib/mods_display/fields/related_item.rb +64 -66
  38. data/lib/mods_display/fields/resource_type.rb +13 -11
  39. data/lib/mods_display/fields/sub_title.rb +6 -4
  40. data/lib/mods_display/fields/subject.rb +92 -90
  41. data/lib/mods_display/fields/title.rb +54 -49
  42. data/lib/mods_display/fields/values.rb +7 -8
  43. data/lib/mods_display/html.rb +117 -96
  44. data/lib/mods_display/model_extension.rb +17 -16
  45. data/lib/mods_display/relator_codes.rb +269 -267
  46. data/lib/mods_display/version.rb +1 -1
  47. data/mods_display.gemspec +13 -12
  48. data/spec/configuration/access_condition_spec.rb +5 -5
  49. data/spec/configuration/base_spec.rb +24 -24
  50. data/spec/fields/abstract_spec.rb +24 -14
  51. data/spec/fields/access_condition_spec.rb +80 -55
  52. data/spec/fields/audience_spec.rb +15 -12
  53. data/spec/fields/cartographics_spec.rb +17 -18
  54. data/spec/fields/collection_spec.rb +65 -19
  55. data/spec/fields/contact_spec.rb +11 -9
  56. data/spec/fields/contents_spec.rb +15 -12
  57. data/spec/fields/description_spec.rb +40 -22
  58. data/spec/fields/format_spec.rb +28 -18
  59. data/spec/fields/genre_spec.rb +18 -16
  60. data/spec/fields/identifier_spec.rb +46 -34
  61. data/spec/fields/imprint_spec.rb +151 -125
  62. data/spec/fields/language_spec.rb +36 -20
  63. data/spec/fields/location_spec.rb +43 -27
  64. data/spec/fields/name_spec.rb +92 -92
  65. data/spec/fields/note_spec.rb +53 -40
  66. data/spec/fields/related_item_spec.rb +42 -40
  67. data/spec/fields/resource_type_spec.rb +20 -14
  68. data/spec/fields/sub_title_spec.rb +11 -9
  69. data/spec/fields/subject_spec.rb +61 -56
  70. data/spec/fields/title_spec.rb +53 -40
  71. data/spec/fixtures/access_condition_fixtures.rb +50 -0
  72. data/spec/fixtures/cartographics_fixtures.rb +1 -1
  73. data/spec/fixtures/imprint_fixtures.rb +49 -1
  74. data/spec/fixtures/name_fixtures.rb +195 -2
  75. data/spec/fixtures/related_item_fixtures.rb +107 -0
  76. data/spec/fixtures/subjects_fixtures.rb +15 -2
  77. data/spec/fixtures/title_fixtures.rb +101 -0
  78. data/spec/integration/configuration_spec.rb +23 -20
  79. data/spec/integration/html_spec.rb +40 -29
  80. data/spec/integration/installation_spec.rb +14 -14
  81. data/spec/spec_helper.rb +5 -8
  82. metadata +25 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 696af737773d1dc801bfd3d700ebb694cc831f52
4
- data.tar.gz: a884d43c1640681aa477cf3f7de28159b7de68f5
3
+ metadata.gz: bde2a7d4b0e1265aa8e7c8995c208dcbe2aae03a
4
+ data.tar.gz: e74a4364e4dd51b66f69c24a0a62258d4c053a4b
5
5
  SHA512:
6
- metadata.gz: 647c86e5eebc05550a32e3f4cc258eb3e9c9eb0c106ec0a5a7c40c84792942a490f52006c53663f54ed0c3fdea7919a58c748c5468d97e24d88bed352e6785b8
7
- data.tar.gz: 532ce43cc00f02d1ae6202bc5e1d2d8afa315d674f0baa7e09b867c58e10998f02bd1da6b682a9524acc7f95d9d461aeae9b2c57ef40f9ef46e05631cf3834b7
6
+ metadata.gz: f781baf89a8b7b455df415f3df0a3f5db0deca36e41f6e3dd31e5a7c2f288306936a6c062da0d11d0ea7b3b5037316786ff922f9f8b96eb153c1b417bcab91b3
7
+ data.tar.gz: 96fe552b5de3c62eb0629108a297209b946164b05b5f71676c7a2deb16c7669b0f29f52bb9e33a552e7d5c95b9ded860474a93ce0add2e7cb5bffd74ac87c9d7
data/.rubocop.yml ADDED
@@ -0,0 +1,16 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ AllCops:
4
+ Exclude:
5
+ - '*.gemspec'
6
+ - 'bin/**/*'
7
+ - 'db/**/*'
8
+ - 'spec/fixtures/**/*'
9
+ - 'vendor/**/*'
10
+
11
+ Metrics/LineLength:
12
+ Max: 120
13
+
14
+ Style/StringLiterals:
15
+ Enabled: true
16
+ EnforcedStyle: single_quotes
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,60 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2015-11-06 16:51:15 -0800 using RuboCop version 0.34.2.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 2
10
+ Lint/NestedMethodDefinition:
11
+ Exclude:
12
+ - 'lib/mods_display/controller_extension.rb'
13
+ - 'lib/mods_display/model_extension.rb'
14
+
15
+ # Offense count: 29
16
+ Metrics/AbcSize:
17
+ Max: 55
18
+
19
+ # Offense count: 5
20
+ # Configuration parameters: CountComments.
21
+ Metrics/ClassLength:
22
+ Max: 263
23
+
24
+ # Offense count: 12
25
+ Metrics/CyclomaticComplexity:
26
+ Max: 11
27
+
28
+ # Offense count: 30
29
+ # Configuration parameters: CountComments.
30
+ Metrics/MethodLength:
31
+ Max: 378
32
+
33
+ # Offense count: 2
34
+ # Configuration parameters: CountComments.
35
+ Metrics/ModuleLength:
36
+ Max: 380
37
+
38
+ # Offense count: 12
39
+ Metrics/PerceivedComplexity:
40
+ Max: 15
41
+
42
+ # Offense count: 42
43
+ # Configuration parameters: Exclude.
44
+ Style/Documentation:
45
+ Enabled: false
46
+
47
+ # Offense count: 8
48
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
49
+ Style/MethodName:
50
+ Enabled: false
51
+
52
+ # Offense count: 1
53
+ Style/MultilineBlockChain:
54
+ Exclude:
55
+ - 'lib/mods_display/fields/imprint.rb'
56
+
57
+ # Offense count: 8
58
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
59
+ Style/VariableName:
60
+ Enabled: false
data/.travis.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  notifications:
2
2
  email: false
3
3
  rvm:
4
- - 2.1.0
5
- - 2.0.0
4
+ - 2.2.3
5
+ - 2.1.7
6
6
  - 1.9.3
data/Rakefile CHANGED
@@ -1,5 +1,13 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
2
2
  require 'rspec/core/rake_task'
3
+ require 'rubocop/rake_task'
3
4
 
5
+ RuboCop::RakeTask.new
4
6
  RSpec::Core::RakeTask.new(:spec)
5
- task :default => :spec
7
+
8
+ task :ci do
9
+ Rake::Task['rubocop'].invoke
10
+ Rake::Task['spec'].invoke
11
+ end
12
+
13
+ task default: :ci
data/lib/mods_display.rb CHANGED
@@ -1,48 +1,48 @@
1
- require "mods_display/version"
2
- require "mods_display/controller_extension"
3
- require "mods_display/html"
4
- require "mods_display/model_extension"
5
- require "mods_display/country_codes"
6
- require "mods_display/relator_codes"
7
- require "mods_display/configuration"
8
- require "mods_display/configuration/base"
9
- require "mods_display/configuration/access_condition"
10
- require "mods_display/configuration/imprint"
11
- require "mods_display/configuration/format"
12
- require "mods_display/configuration/genre"
13
- require "mods_display/configuration/name"
14
- require "mods_display/configuration/note"
15
- require "mods_display/configuration/related_item"
16
- require "mods_display/configuration/subject"
17
- require "mods_display/configuration/title"
18
- require "mods_display/fields/field"
19
- require "mods_display/fields/abstract"
20
- require "mods_display/fields/access_condition"
21
- require "mods_display/fields/audience"
22
- require "mods_display/fields/collection"
23
- require "mods_display/fields/contact"
24
- require "mods_display/fields/contents"
25
- require "mods_display/fields/cartographics"
26
- require "mods_display/fields/description"
27
- require "mods_display/fields/format"
28
- require "mods_display/fields/genre"
29
- require "mods_display/fields/identifier"
30
- require "mods_display/fields/imprint"
31
- require "mods_display/fields/language"
32
- require "mods_display/fields/location"
33
- require "mods_display/fields/name"
34
- require "mods_display/fields/note"
35
- require "mods_display/fields/related_item"
36
- require "mods_display/fields/resource_type"
37
- require "mods_display/fields/subject"
38
- require "mods_display/fields/sub_title"
39
- require "mods_display/fields/title"
40
- require "mods_display/fields/values"
1
+ require 'mods_display/version'
2
+ require 'mods_display/controller_extension'
3
+ require 'mods_display/html'
4
+ require 'mods_display/model_extension'
5
+ require 'mods_display/country_codes'
6
+ require 'mods_display/relator_codes'
7
+ require 'mods_display/configuration'
8
+ require 'mods_display/configuration/base'
9
+ require 'mods_display/configuration/access_condition'
10
+ require 'mods_display/configuration/imprint'
11
+ require 'mods_display/configuration/format'
12
+ require 'mods_display/configuration/genre'
13
+ require 'mods_display/configuration/name'
14
+ require 'mods_display/configuration/note'
15
+ require 'mods_display/configuration/related_item'
16
+ require 'mods_display/configuration/subject'
17
+ require 'mods_display/configuration/title'
18
+ require 'mods_display/fields/field'
19
+ require 'mods_display/fields/abstract'
20
+ require 'mods_display/fields/access_condition'
21
+ require 'mods_display/fields/audience'
22
+ require 'mods_display/fields/collection'
23
+ require 'mods_display/fields/contact'
24
+ require 'mods_display/fields/contents'
25
+ require 'mods_display/fields/cartographics'
26
+ require 'mods_display/fields/description'
27
+ require 'mods_display/fields/format'
28
+ require 'mods_display/fields/genre'
29
+ require 'mods_display/fields/identifier'
30
+ require 'mods_display/fields/imprint'
31
+ require 'mods_display/fields/language'
32
+ require 'mods_display/fields/location'
33
+ require 'mods_display/fields/name'
34
+ require 'mods_display/fields/note'
35
+ require 'mods_display/fields/related_item'
36
+ require 'mods_display/fields/resource_type'
37
+ require 'mods_display/fields/subject'
38
+ require 'mods_display/fields/sub_title'
39
+ require 'mods_display/fields/title'
40
+ require 'mods_display/fields/values'
41
41
 
42
42
  require 'stanford-mods'
43
43
 
44
- require "i18n"
45
- require "i18n/backend/fallbacks"
44
+ require 'i18n'
45
+ require 'i18n/backend/fallbacks'
46
46
  I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)
47
47
  I18n.load_path += Dir["#{File.expand_path('../..', __FILE__)}/config/locales/*.yml"]
48
48
  I18n.backend.load_translations
@@ -1,91 +1,93 @@
1
1
  # We can probably do something smarter here using const_get to assign
2
2
  # special coniguration classes then fall back on the base config class
3
- class ModsDisplay::Configuration
4
- def initialize &config
5
- instance_eval &config
6
- end
3
+ module ModsDisplay
4
+ class Configuration
5
+ def initialize(&config)
6
+ instance_eval(&config)
7
+ end
7
8
 
8
- def title &title
9
- @title ||= ModsDisplay::Configuration::Title.new(&title || Proc.new{})
10
- end
9
+ def title(&title)
10
+ @title ||= ModsDisplay::Configuration::Title.new(&title || proc {})
11
+ end
11
12
 
12
- def sub_title &sub_title
13
- @sub_title ||= ModsDisplay::Configuration::Title.new(&sub_title || Proc.new{})
14
- end
13
+ def sub_title(&sub_title)
14
+ @sub_title ||= ModsDisplay::Configuration::Title.new(&sub_title || proc {})
15
+ end
15
16
 
16
- def name &name
17
- @name ||= ModsDisplay::Configuration::Name.new(&name || Proc.new{})
18
- end
17
+ def name(&name)
18
+ @name ||= ModsDisplay::Configuration::Name.new(&name || proc {})
19
+ end
19
20
 
20
- def resource_type &resource_type
21
- @type_of_resource ||= ModsDisplay::Configuration::Base.new(&resource_type || Proc.new{})
22
- end
21
+ def resource_type(&resource_type)
22
+ @type_of_resource ||= ModsDisplay::Configuration::Base.new(&resource_type || proc {})
23
+ end
23
24
 
24
- def genre &genre
25
- @genre ||= ModsDisplay::Configuration::Genre.new(&genre || Proc.new{})
26
- end
25
+ def genre(&genre)
26
+ @genre ||= ModsDisplay::Configuration::Genre.new(&genre || proc {})
27
+ end
27
28
 
28
- def format &format
29
- @format ||= ModsDisplay::Configuration::Format.new(&format || Proc.new{})
30
- end
29
+ def format(&format)
30
+ @format ||= ModsDisplay::Configuration::Format.new(&format || proc {})
31
+ end
31
32
 
32
- def imprint &imprint
33
- @imprint ||= ModsDisplay::Configuration::Imprint.new(&imprint || Proc.new{})
34
- end
33
+ def imprint(&imprint)
34
+ @imprint ||= ModsDisplay::Configuration::Imprint.new(&imprint || proc {})
35
+ end
35
36
 
36
- def language &language
37
- @language ||= ModsDisplay::Configuration::Base.new(&language || Proc.new{})
38
- end
37
+ def language(&language)
38
+ @language ||= ModsDisplay::Configuration::Base.new(&language || proc {})
39
+ end
39
40
 
40
- def description &description
41
- @description ||= ModsDisplay::Configuration::Base.new(&description || Proc.new{})
42
- end
41
+ def description(&description)
42
+ @description ||= ModsDisplay::Configuration::Base.new(&description || proc {})
43
+ end
43
44
 
44
- def cartographics &cartographics
45
- @cartographics ||= ModsDisplay::Configuration::Base.new(&cartographics || Proc.new{})
46
- end
45
+ def cartographics(&cartographics)
46
+ @cartographics ||= ModsDisplay::Configuration::Base.new(&cartographics || proc {})
47
+ end
47
48
 
48
- def abstract &abstract
49
- @abstract ||= ModsDisplay::Configuration::Base.new(&abstract || Proc.new{})
50
- end
49
+ def abstract(&abstract)
50
+ @abstract ||= ModsDisplay::Configuration::Base.new(&abstract || proc {})
51
+ end
51
52
 
52
- def contents &contents
53
- @contents ||= ModsDisplay::Configuration::Base.new(&contents || Proc.new{})
54
- end
53
+ def contents(&contents)
54
+ @contents ||= ModsDisplay::Configuration::Base.new(&contents || proc {})
55
+ end
55
56
 
56
- def audience &audience
57
- @audience ||= ModsDisplay::Configuration::Base.new(&audience || Proc.new{})
58
- end
57
+ def audience(&audience)
58
+ @audience ||= ModsDisplay::Configuration::Base.new(&audience || proc {})
59
+ end
59
60
 
60
- def note &note
61
- @note ||= ModsDisplay::Configuration::Note.new(&note || Proc.new{})
62
- end
61
+ def note(&note)
62
+ @note ||= ModsDisplay::Configuration::Note.new(&note || proc {})
63
+ end
63
64
 
64
- def contact &contact
65
- @contact ||= ModsDisplay::Configuration::Base.new(&contact || Proc.new{})
66
- end
65
+ def contact(&contact)
66
+ @contact ||= ModsDisplay::Configuration::Base.new(&contact || proc {})
67
+ end
67
68
 
68
- def collection &collection
69
- @collection ||= ModsDisplay::Configuration::Base.new(&collection || Proc.new{})
70
- end
69
+ def collection(&collection)
70
+ @collection ||= ModsDisplay::Configuration::Base.new(&collection || proc {})
71
+ end
71
72
 
72
- def related_item &related_item
73
- @related_item ||= ModsDisplay::Configuration::RelatedItem.new(&related_item || Proc.new{})
74
- end
73
+ def related_item(&related_item)
74
+ @related_item ||= ModsDisplay::Configuration::RelatedItem.new(&related_item || proc {})
75
+ end
75
76
 
76
- def subject &subject
77
- @subject ||= ModsDisplay::Configuration::Subject.new(&subject || Proc.new{})
78
- end
77
+ def subject(&subject)
78
+ @subject ||= ModsDisplay::Configuration::Subject.new(&subject || proc {})
79
+ end
79
80
 
80
- def identifier &identifier
81
- @identifier ||= ModsDisplay::Configuration::Base.new(&identifier || Proc.new{})
82
- end
81
+ def identifier(&identifier)
82
+ @identifier ||= ModsDisplay::Configuration::Base.new(&identifier || proc {})
83
+ end
83
84
 
84
- def location &location
85
- @location ||= ModsDisplay::Configuration::Base.new(&location || Proc.new{})
86
- end
85
+ def location(&location)
86
+ @location ||= ModsDisplay::Configuration::Base.new(&location || proc {})
87
+ end
87
88
 
88
- def access_condition &access_condition
89
- @access_condition ||= ModsDisplay::Configuration::AccessCondition.new(&access_condition || Proc.new{})
89
+ def access_condition(&access_condition)
90
+ @access_condition ||= ModsDisplay::Configuration::AccessCondition.new(&access_condition || proc {})
91
+ end
90
92
  end
91
- end
93
+ end
@@ -1,17 +1,21 @@
1
- class ModsDisplay::Configuration::AccessCondition < ModsDisplay::Configuration::Base
2
- def delimiter delimiter="<br/>"
3
- @delimiter ||= delimiter
4
- end
1
+ module ModsDisplay
2
+ class Configuration
3
+ class AccessCondition < Base
4
+ def delimiter(delimiter = '<br/>')
5
+ @delimiter ||= delimiter
6
+ end
5
7
 
6
- def ignore?
7
- @ignore.nil? ? true : @ignore
8
- end
8
+ def ignore?
9
+ @ignore.nil? ? true : @ignore
10
+ end
9
11
 
10
- def display!
11
- @ignore = false
12
- end
12
+ def display!
13
+ @ignore = false
14
+ end
13
15
 
14
- def cc_license_version cc_license_version="3.0"
15
- @cc_license_version ||= cc_license_version
16
+ def cc_license_version(cc_license_version = '3.0')
17
+ @cc_license_version ||= cc_license_version
18
+ end
19
+ end
16
20
  end
17
- end
21
+ end
@@ -1,31 +1,34 @@
1
- class ModsDisplay::Configuration::Base
2
- def initialize &config
3
- instance_eval &config if block_given?
4
- end
1
+ module ModsDisplay
2
+ class Configuration
3
+ class Base
4
+ def initialize(&config)
5
+ instance_eval(&config) if block_given?
6
+ end
5
7
 
6
- def label_class label_class=""
7
- @label_class ||= label_class
8
- end
8
+ def label_class(label_class = '')
9
+ @label_class ||= label_class
10
+ end
9
11
 
10
- def value_class value_class=""
11
- @value_class ||= value_class
12
- end
12
+ def value_class(value_class = '')
13
+ @value_class ||= value_class
14
+ end
13
15
 
14
- def delimiter delimiter=", "
15
- @delimiter ||= delimiter
16
- end
16
+ def delimiter(delimiter = ', ')
17
+ @delimiter ||= delimiter
18
+ end
17
19
 
18
- def link method_name="", args={}
19
- return @link if method_name == ""
20
- @link ||= [method_name, args]
21
- end
20
+ def link(method_name = '', args = {})
21
+ return @link if method_name == ''
22
+ @link ||= [method_name, args]
23
+ end
22
24
 
23
- def ignore!
24
- @ignore = true
25
- end
25
+ def ignore!
26
+ @ignore = true
27
+ end
26
28
 
27
- def ignore?
28
- @ignore || false
29
+ def ignore?
30
+ @ignore || false
31
+ end
32
+ end
29
33
  end
30
-
31
- end
34
+ end