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 +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
|