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 +4 -4
- data/CHANGELOG.md +10 -1
- data/README.md +5 -5
- data/lib/research_metadata_announcement/transformer/base.rb +47 -8
- data/lib/research_metadata_announcement/transformer/dataset.rb +2 -1
- data/lib/research_metadata_announcement/transformer/publication.rb +2 -1
- data/lib/research_metadata_announcement/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a542c132d6fcf394939a69f6c67a7033296784e7
|
4
|
+
data.tar.gz: d1e643242bbd097f209a6b7acc58f2d74b33ba6d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
##
|
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
|
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
|
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] #
|
98
|
-
#=> "New
|
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
|
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
|
-
|
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 -
|
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
|
-
|
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.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
|
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.
|
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:
|
11
|
+
date: 2018-01-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: puree
|