research_metadata_announcement 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
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