research_metadata_announcement 0.4.0 → 0.4.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bf6041062e657458ff627bb4623ce6a408478c37
4
- data.tar.gz: 06aace3883c44e456765a763cb8d08fb9922d836
3
+ metadata.gz: a542c132d6fcf394939a69f6c67a7033296784e7
4
+ data.tar.gz: d1e643242bbd097f209a6b7acc58f2d74b33ba6d
5
5
  SHA512:
6
- metadata.gz: 5902442207fa4b7451ec68c46e338ec1949209392f097c9a0d2291b2dc40d6608eb22a6abef218649564c9312ae52bf0411bdacad6b4c0125282190234fa7e8a
7
- data.tar.gz: a264bd7ea56ba82c434d1389872d737509d073274fe918a750d0635347e566c1779cfee2659d532aec4640144df11bd30be93bdc3a0677c2d4b69dd4e75f7465
6
+ metadata.gz: 750f01701be117b022af62131fa2c63c02e5aed66e43c1fa11981d8a704d35f2596dabce89e6072ff0046bc854ce086c5a516cf8bbfd15ce246a7c7aa90dc7ed
7
+ data.tar.gz: a15ad831ea6fcce3ac0bad646d4501397cabd26e5b6ad3972f454e1a5140a3b4eaf4f085f7ab35da89da7f3179ece33e48b2deda750f01e652192bdef89db757
data/CHANGELOG.md CHANGED
@@ -2,7 +2,16 @@
2
2
  All notable changes to this project will be documented in this file.
3
3
  This project adheres to [Semantic Versioning](http://semver.org/).
4
4
 
5
- ## Unreleased
5
+ ## 0.4.1 - 2018-01-17
6
+ ### Added
7
+ - Testing announcements against known live data.
8
+
9
+ ### Fixed
10
+ - Ellipsis after truncated title.
11
+
12
+ ### Changed
13
+ - Cope with missing resolver in DOI.
14
+ - Cope with full stop in title.
6
15
 
7
16
  ## 0.4.0 - 2017-10-10
8
17
  ### Changed
data/README.md CHANGED
@@ -89,16 +89,16 @@ Each example uses a different resource for illustrative purposes.
89
89
  ```ruby
90
90
 
91
91
  transformer.transform uuid: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
92
- #=> "New publication. Can poly-parameter linear-free energy relationships (pp-LFERs) improve modelling bioaccumulation in fish? #partitioncoefficients #pplfer. dx.doi.org/10.1016/j.chemosphere.2017.10.007."
92
+ #=> "New journal article. Can poly-parameter linear-free energy relationships (pp-LFERs) improve modelling bioaccumulation in fish? #partitioncoefficients #pplfer. dx.doi.org/10.1016/j.chemosphere.2017.10.007."
93
93
 
94
94
  transformer.transform uuid: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx', max_length: 140
95
- #=> "New publication. The Parting of Burroughs and... #americancounterculture #arthurrimbaud. dx.doi.org/10.1179/1477570013Z.00000000045."
95
+ #=> "New journal article. The Parting of Burroughs and Ker... #americancounterculture #arthurrimbaud. dx.doi.org/10.1179/1477570013Z.00000000045."
96
96
 
97
- transformer.transform uuid: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx', composition: [:new, :title, :hashtags] # resource has no descriptors
98
- #=> "New publication. Deductive and inductive data collection for agent-based modelling."
97
+ transformer.transform uuid: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx', composition: [:new, :title, :hashtags] # research output has no descriptors
98
+ #=> "New conference paper. Deductive and inductive data collection for agent-based modelling."
99
99
 
100
100
  transformer.transform uuid: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx', composition: [:new, :title, :keywords, :uri]
101
- #=> "New publication. Torsion pairs in a triangulated category generated by a spherical object. Auslander–Reiten theory, Calabi–Yau triangulated category. dx.doi.org/10.1016/j.jalgebra.2015.09.011."
101
+ #=> "New journal article. Torsion pairs in a triangulated category generated by a spherical object. Auslander–Reiten theory, Calabi–Yau triangulated category. dx.doi.org/10.1016/j.jalgebra.2015.09.011."
102
102
 
103
103
  transformer.transform uuid: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx', composition: [:new, :title, :uri]
104
104
  #=> "New dataset. Operating Nanobeams in a Quantum Fluid. dx.doi.org/10.17635/lancaster/researchdata/139."
@@ -28,7 +28,7 @@ module ResearchMetadataAnnouncement
28
28
  if composition.include? :uri
29
29
  return nil unless prepare_uri
30
30
  end
31
- title = @resource.title
31
+ title = remove_full_stop @resource.title
32
32
  keywords = @resource.keywords
33
33
 
34
34
  # sizing
@@ -38,8 +38,7 @@ module ResearchMetadataAnnouncement
38
38
  composition.each do |component|
39
39
  case component
40
40
  when :new
41
- resource = self.class.name.sub('ResearchMetadataAnnouncement::Transformer::', '')
42
- phrase = "New research #{resource.downcase}"
41
+ phrase = new_phrase(@resource)
43
42
  chars_needed += phrase.size + chars_component_end
44
43
  when :title
45
44
  chars_needed += title.size + chars_component_end
@@ -49,10 +48,16 @@ module ResearchMetadataAnnouncement
49
48
  chars_needed += build_hashtags(keywords, max_descriptors).size + chars_component_end if !keywords.empty?
50
49
  when :uri
51
50
  uri = prepare_uri
52
- chars_needed += uri.size if uri
51
+ chars_needed += uri.size + chars_component_end if uri
53
52
  end
54
53
  end
55
54
 
55
+ # since the arrangement of the composition is unknown, after sizing
56
+ # chars_needed has two extra spaces allocated
57
+ # one is used for the terminating full stop
58
+ # one is not needed
59
+ chars_needed -= 1
60
+
56
61
  # determine if title needs truncating/removing before combining
57
62
  if chars_needed > max_length
58
63
  # truncate title
@@ -60,7 +65,7 @@ module ResearchMetadataAnnouncement
60
65
  excess_chars = chars_needed - max_length
61
66
  truncated_title_length = title.size - excess_chars
62
67
  truncated_title_length = 0 if truncated_title_length < 0
63
- title = title[0..truncated_title_length - 2].strip + '..'
68
+ title = title[0..truncated_title_length - 3].strip + '..'
64
69
  composition -= [:title] if title.size <= 5 # give up on title if just too small
65
70
  end
66
71
  end
@@ -71,9 +76,7 @@ module ResearchMetadataAnnouncement
71
76
  composition.each do |component|
72
77
  case component
73
78
  when :new
74
- resource = self.class.name.sub('ResearchMetadataAnnouncement::Transformer::', '')
75
- phrase = "New #{resource.downcase}"
76
- buffer << phrase
79
+ buffer << new_phrase(@resource)
77
80
  when :title
78
81
  buffer << title
79
82
  when :keywords
@@ -101,6 +104,42 @@ module ResearchMetadataAnnouncement
101
104
 
102
105
  private
103
106
 
107
+ def handle_resolver(uri)
108
+ return unless uri
109
+ resolver = 'dx.doi.org'
110
+ if uri.include? resolver
111
+ uri
112
+ else
113
+ File.join resolver, uri
114
+ end
115
+ end
116
+
117
+ def remove_full_stop(str)
118
+ arr = str.split('')
119
+ if arr.pop == '.' && arr.pop != '.'
120
+ return str.chomp('.')
121
+ else
122
+ return str
123
+ end
124
+ end
125
+
126
+ def new_phrase(resource)
127
+ part_1 = 'New'
128
+ part_2 = ''
129
+
130
+ case resource.class.to_s
131
+ when 'Puree::Model::Dataset'
132
+ part_2 = 'dataset'
133
+ when 'Puree::Model::Publication'
134
+ part_2 = resource.type.downcase
135
+ end
136
+ if part_2.empty?
137
+ return part_1
138
+ else
139
+ return "#{part_1} #{part_2}"
140
+ end
141
+ end
142
+
104
143
  # Extract metadata from Pure
105
144
  #
106
145
  # @param id [String]
@@ -19,7 +19,8 @@ module ResearchMetadataAnnouncement
19
19
  private
20
20
 
21
21
  def prepare_uri
22
- strip_uri_scheme @resource.doi if @resource && @resource.doi
22
+ uri = strip_uri_scheme @resource.doi if @resource && @resource.doi
23
+ handle_resolver uri
23
24
  end
24
25
 
25
26
  end
@@ -19,7 +19,8 @@ module ResearchMetadataAnnouncement
19
19
  private
20
20
 
21
21
  def prepare_uri
22
- strip_uri_scheme @resource.dois[0] if @resource && @resource.dois[0]
22
+ uri = strip_uri_scheme @resource.dois[0] if @resource && @resource.dois[0]
23
+ handle_resolver uri
23
24
  end
24
25
 
25
26
  end
@@ -1,5 +1,5 @@
1
1
  module ResearchMetadataAnnouncement
2
2
  # Semantic version number
3
3
  #
4
- VERSION = "0.4.0"
4
+ VERSION = "0.4.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: research_metadata_announcement
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrian Albin-Clark
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-10 00:00:00.000000000 Z
11
+ date: 2018-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: puree