bolognese 0.9.13 → 0.9.14

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: aaee569568f76b04f3c5707cb20c7c3b91b5c42b
4
- data.tar.gz: d267f2d4b97689676b9986b698ea47b628ad07d2
3
+ metadata.gz: f212a65dde0f61b06563dba2fea86f553d31b2af
4
+ data.tar.gz: 360a495bd4dcab4250199e9e55f71e52d6cfa29a
5
5
  SHA512:
6
- metadata.gz: f9a881f202c52634a6e3e0d8d5fc033b337a507fe6755104e6602631407772add424670d12fde54e406e15941a4a9fb3cc63640f0bce16f180fba6b28501ff31
7
- data.tar.gz: 9b91e62983d77e603a29cd9d458fbc95adddcaa18f27792397b1eca213daea240beab70511aed08a3d8258d2c8ed2a30536d9103963ebb1e8bd98e0b911c2680
6
+ metadata.gz: 7fc398df17eb6b6ca4255eeaf386beb5d62141dbabc5b4c7b78ce9337be4dbb140af3ec693059cc7b3eaf5c36757399829bccf16f586a967773a5e9ce9013568
7
+ data.tar.gz: 3839163d457f89cafe74e4fcb6570ee8c71a7045d9bc1fa92a144f570554548ed99016605ede37971d151e14a35d7766abfcffd4c608d6c93b45a89ef22efda7
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bolognese (0.9.13)
4
+ bolognese (0.9.14)
5
5
  activesupport (>= 4.2.5, < 6)
6
6
  benchmark_methods (~> 0.7)
7
7
  bibtex-ruby (~> 4.1)
@@ -80,7 +80,7 @@ module Bolognese
80
80
 
81
81
  # generate name for method to call dynamically
82
82
  string = send("get_" + @from, id: id)
83
- else
83
+ elsif File.exist?(input)
84
84
  ext = File.extname(input)
85
85
  if %w(.bib .ris .xml .json).include?(ext)
86
86
  string = IO.read(input)
@@ -89,6 +89,9 @@ module Bolognese
89
89
  $stderr.puts "File type #{ext} not supported"
90
90
  exit 1
91
91
  end
92
+ else
93
+ string = input
94
+ @from = from || find_from_format(string: string)
92
95
  end
93
96
 
94
97
  # generate name for method to call dynamically
@@ -198,11 +198,13 @@ module Bolognese
198
198
  "WebSite" => "misc"
199
199
  }
200
200
 
201
- def find_from_format(id: nil, string: nil, ext: nil, filename: nil)
201
+ def find_from_format(id: nil, string: nil, ext: nil)
202
202
  if id.present?
203
203
  find_from_format_by_id(id)
204
+ elsif ext.present?
205
+ find_from_format_by_ext(string, ext: ext)
204
206
  elsif string.present?
205
- find_from_format_by_string(string, ext: ext, filename: filename)
207
+ find_from_format_by_string(string)
206
208
  end
207
209
  end
208
210
 
@@ -221,26 +223,44 @@ module Bolognese
221
223
  end
222
224
  end
223
225
 
224
- def find_from_format_by_string(string, options={})
226
+ def find_from_format_by_ext(string, options={})
225
227
  if options[:ext] == ".bib"
226
228
  "bibtex"
227
229
  elsif options[:ext] == ".ris"
228
230
  "ris"
229
- elsif options[:ext] == ".xml" && Maremma.from_xml(string).dig("doi_records", "doi_record", "crossref")
231
+ elsif options[:ext] == ".xml" && Maremma.from_xml(string).to_h.dig("doi_records", "doi_record", "crossref")
230
232
  "crossref"
231
- elsif options[:ext] == ".xml" && Maremma.from_xml(string).dig("resource", "xmlns").start_with?("http://datacite.org/schema/kernel")
233
+ elsif options[:ext] == ".xml" && Maremma.from_xml(string).to_h.dig("resource", "xmlns").to_s.start_with?("http://datacite.org/schema/kernel")
232
234
  "datacite"
233
- elsif options[:ext] == ".json" && Maremma.from_json(string).dig("schemaVersion").to_s.start_with?("http://datacite.org/schema/kernel")
235
+ elsif options[:ext] == ".json" && Maremma.from_json(string).to_h.dig("ris_type")
236
+ "crosscite"
237
+ elsif options[:ext] == ".json" && Maremma.from_json(string).to_h.dig("schemaVersion").to_s.start_with?("http://datacite.org/schema/kernel")
234
238
  "datacite_json"
235
- elsif options[:ext] == ".json" && Maremma.from_json(string).dig("issued", "date-parts").present?
239
+ elsif options[:ext] == ".json" && Maremma.from_json(string).to_h.dig("issued", "date-parts").present?
236
240
  "citeproc"
237
- elsif options[:ext] == ".json" && Maremma.from_json(string).dig("@context").to_s.start_with?("http://schema.org")
241
+ elsif options[:ext] == ".json" && Maremma.from_json(string).to_h.dig("@context").to_s.start_with?("http://schema.org")
238
242
  "schema_org"
239
- elsif options[:ext] == ".json" && Maremma.from_json(string).dig("@context") == ("https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld")
243
+ elsif options[:ext] == ".json" && Maremma.from_json(string).to_h.dig("@context") == ("https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld")
244
+ "codemeta"
245
+ end
246
+ end
247
+
248
+ def find_from_format_by_string(string)
249
+ if Maremma.from_xml(string).to_h.dig("doi_records", "doi_record", "crossref").present?
250
+ "crossref"
251
+ elsif Maremma.from_xml(string).to_h.dig("resource", "xmlns").to_s.start_with?("http://datacite.org/schema/kernel")
252
+ "datacite"
253
+ elsif Maremma.from_json(string).to_h.dig("ris_type").present?
254
+ "crosscite"
255
+ elsif Maremma.from_json(string).to_h.dig("schemaVersion").to_s.start_with?("http://datacite.org/schema/kernel")
256
+ "datacite_json"
257
+ elsif Maremma.from_json(string).to_h.dig("issued", "date-parts").present?
258
+ "citeproc"
259
+ elsif Maremma.from_json(string).to_h.dig("@context").to_s.start_with?("http://schema.org")
260
+ "schema_org"
261
+ elsif Maremma.from_json(string).to_h.dig("@context") == ("https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld")
240
262
  "codemeta"
241
263
  end
242
- rescue
243
- nil
244
264
  end
245
265
 
246
266
  def orcid_from_url(url)
@@ -1,3 +1,3 @@
1
1
  module Bolognese
2
- VERSION = "0.9.13"
2
+ VERSION = "0.9.14"
3
3
  end
@@ -0,0 +1,39 @@
1
+ {
2
+ "id": "https://doi.org/10.5281/zenodo.48440",
3
+ "doi": "10.5281/zenodo.48440",
4
+ "type": "SoftwareSourceCode",
5
+ "additional_type": "Software",
6
+ "citeproc_type": "other",
7
+ "bibtex_type": "misc",
8
+ "ris_type": "COMP",
9
+ "resource_type_general": "Software",
10
+ "resource_type": "Software",
11
+ "author": {
12
+ "type": "Person",
13
+ "name": "Kristian Garza",
14
+ "givenName": "Kristian",
15
+ "familyName": "Garza"
16
+ },
17
+ "title": "Analysis Tools for Crossover Experiment of UI using Choice Architecture",
18
+ "publisher": "Zenodo",
19
+ "keywords": "choice architecture, crossover experiment, hci",
20
+ "date_published": "2016-03-27",
21
+ "alternate_name": {
22
+ "type": "URL",
23
+ "name": "http://zenodo.org/record/48440"
24
+ },
25
+ "license": [{
26
+ "name": "Open Access"
27
+ },
28
+ {
29
+ "id": "https://creativecommons.org/licenses/by-nc-sa/4.0",
30
+ "name": "Creative Commons Attribution-NonCommercial-ShareAlike"
31
+ }
32
+ ],
33
+ "description": {
34
+ "type": "Abstract",
35
+ "text": "This tools are used to analyse the data produced by the Crosssover Experiment I designed to test Choice Architecture techniques as UI interventions in a SEEk4Science data catalogue. It contains:\n\n- Data structures for the experimental data.<br>\n- Visualisation functions<br>\n- Analysis functions\n\n## Installation\n\n- R<br>\n- python<br>\n- ipython 4\n\nClone and use.\n\n## Usage\n\n<br>\n```python<br>\nsource('parallel_plot.r')<br>\nwith(z, parallelset(trt,response, freq=count, alpha=0.2))<br>\n```\n\n<br>\n## Contributing\n\n1. Fork it!<br>\n2. Create your feature branch: `git checkout -b my-new-feature`<br>\n3. Commit your changes: `git commit -am 'Add some feature'`<br>\n4. Push to the branch: `git push origin my-new-feature`<br>\n5. Submit a pull request :D\n\n<br>\n## License\n\nThis work supports my PhD Thesis at University of Manchester."
36
+ },
37
+ "schema_version": "http://datacite.org/schema/kernel-3",
38
+ "provider": "DataCite"
39
+ }
@@ -0,0 +1,99 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.datacite.org/prefixes/10.5438
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Maremma - https://github.com/datacite/maremma
12
+ Accept:
13
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: ''
18
+ headers:
19
+ Access-Control-Allow-Headers:
20
+ - Content-Type,Accept,Accept-Encoding,Origin,User-Agent,Cache-Control,Keep-Alive
21
+ Access-Control-Allow-Methods:
22
+ - GET, POST, OPTIONS
23
+ Access-Control-Allow-Origin:
24
+ - "*"
25
+ Access-Control-Max-Age:
26
+ - '1728000'
27
+ Cache-Control:
28
+ - max-age=0, private, must-revalidate
29
+ Content-Type:
30
+ - application/vnd.api+json; charset=utf-8
31
+ Date:
32
+ - Sun, 07 May 2017 10:43:07 GMT
33
+ Etag:
34
+ - W/"b9f2d79281c542db437c42a5bac25ac8"
35
+ Server:
36
+ - openresty/1.11.2.2
37
+ Status:
38
+ - 200 OK
39
+ Vary:
40
+ - Accept-Encoding
41
+ X-Content-Type-Options:
42
+ - nosniff
43
+ X-Frame-Options:
44
+ - SAMEORIGIN
45
+ X-Powered-By:
46
+ - Phusion Passenger 5.1.2
47
+ X-Request-Id:
48
+ - 84cab319-b0ab-48b4-a39a-94dcedabbc4b
49
+ X-Runtime:
50
+ - '0.580824'
51
+ X-Xss-Protection:
52
+ - 1; mode=block
53
+ Content-Length:
54
+ - '124'
55
+ Connection:
56
+ - keep-alive
57
+ body:
58
+ encoding: UTF-8
59
+ string: '{"data":{"id":"10.5438","type":"prefixes","attributes":{"registration-agency":"DataCite","updated":"2016-09-21T20:27:15Z"}}}'
60
+ http_version:
61
+ recorded_at: Sun, 07 May 2017 10:43:07 GMT
62
+ - request:
63
+ method: get
64
+ uri: https://search.datacite.org/api?fl=doi,xml,media,minted,updated&q=doi:10.5438/4k3m-nyvg&wt=json
65
+ body:
66
+ encoding: US-ASCII
67
+ string: ''
68
+ headers:
69
+ User-Agent:
70
+ - Maremma - https://github.com/datacite/maremma
71
+ Accept:
72
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
73
+ response:
74
+ status:
75
+ code: 200
76
+ message: ''
77
+ headers:
78
+ Access-Control-Allow-Methods:
79
+ - GET, POST, OPTIONS
80
+ Access-Control-Allow-Origin:
81
+ - "*"
82
+ Content-Type:
83
+ - application/json;charset=UTF-8
84
+ Date:
85
+ - Sun, 07 May 2017 10:43:07 GMT
86
+ Server:
87
+ - openresty/1.11.2.2
88
+ Content-Length:
89
+ - '3025'
90
+ Connection:
91
+ - keep-alive
92
+ body:
93
+ encoding: UTF-8
94
+ string: '{"responseHeader":{"status":0,"QTime":0},"response":{"numFound":1,"start":0,"docs":[{"xml":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc291cmNlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC00L21ldGFkYXRhLnhzZCI+CiAgPGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuNTQzOC80SzNNLU5ZVkc8L2lkZW50aWZpZXI+CiAgPGNyZWF0b3JzPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZT5GZW5uZXIsIE1hcnRpbjwvY3JlYXRvck5hbWU+CiAgICAgIDxnaXZlbk5hbWU+TWFydGluPC9naXZlbk5hbWU+CiAgICAgIDxmYW1pbHlOYW1lPkZlbm5lcjwvZmFtaWx5TmFtZT4KICAgICAgPG5hbWVJZGVudGlmaWVyIHNjaGVtZVVSST0iaHR0cDovL29yY2lkLm9yZy8iIG5hbWVJZGVudGlmaWVyU2NoZW1lPSJPUkNJRCI+MDAwMC0wMDAzLTE0MTktMjQwNTwvbmFtZUlkZW50aWZpZXI+CiAgICA8L2NyZWF0b3I+CiAgPC9jcmVhdG9ycz4KICA8dGl0bGVzPgogICAgPHRpdGxlPkVhdGluZyB5b3VyIG93biBEb2cgRm9vZDwvdGl0bGU+CiAgPC90aXRsZXM+CiAgPHB1Ymxpc2hlcj5EYXRhQ2l0ZTwvcHVibGlzaGVyPgogIDxwdWJsaWNhdGlvblllYXI+MjAxNjwvcHVibGljYXRpb25ZZWFyPgogIDxyZXNvdXJjZVR5cGUgcmVzb3VyY2VUeXBlR2VuZXJhbD0iVGV4dCI+QmxvZ1Bvc3Rpbmc8L3Jlc291cmNlVHlwZT4KICA8YWx0ZXJuYXRlSWRlbnRpZmllcnM+CiAgICA8YWx0ZXJuYXRlSWRlbnRpZmllciBhbHRlcm5hdGVJZGVudGlmaWVyVHlwZT0iTG9jYWwgYWNjZXNzaW9uIG51bWJlciI+TVMtNDktMzYzMi01MDgzPC9hbHRlcm5hdGVJZGVudGlmaWVyPgogIDwvYWx0ZXJuYXRlSWRlbnRpZmllcnM+CiAgPHN1YmplY3RzPgogICAgPHN1YmplY3Q+ZGF0YWNpdGU8L3N1YmplY3Q+CiAgICA8c3ViamVjdD5kb2k8L3N1YmplY3Q+CiAgICA8c3ViamVjdD5tZXRhZGF0YTwvc3ViamVjdD4KICA8L3N1YmplY3RzPgogIDxkYXRlcz4KICAgIDxkYXRlIGRhdGVUeXBlPSJDcmVhdGVkIj4yMDE2LTEyLTIwPC9kYXRlPgogICAgPGRhdGUgZGF0ZVR5cGU9Iklzc3VlZCI+MjAxNi0xMi0yMDwvZGF0ZT4KICAgIDxkYXRlIGRhdGVUeXBlPSJVcGRhdGVkIj4yMDE2LTEyLTIwPC9kYXRlPgogIDwvZGF0ZXM+CiAgPHJlbGF0ZWRJZGVudGlmaWVycz4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGVkSWRlbnRpZmllclR5cGU9IkRPSSIgcmVsYXRpb25UeXBlPSJSZWZlcmVuY2VzIj4xMC41NDM4LzAwMTI8L3JlbGF0ZWRJZGVudGlmaWVyPgogICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9IlJlZmVyZW5jZXMiPjEwLjU0MzgvNTVFNS1UNUMwPC9yZWxhdGVkSWRlbnRpZmllcj4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGVkSWRlbnRpZmllclR5cGU9IkRPSSIgcmVsYXRpb25UeXBlPSJJc1BhcnRPZiI+MTAuNTQzOC8wMDAwLTAwU1M8L3JlbGF0ZWRJZGVudGlmaWVyPgogIDwvcmVsYXRlZElkZW50aWZpZXJzPgogIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KICA8ZGVzY3JpcHRpb25zPgogICAgPGRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uVHlwZT0iQWJzdHJhY3QiPkVhdGluZyB5b3VyIG93biBkb2cgZm9vZCBpcyBhIHNsYW5nIHRlcm0gdG8gZGVzY3JpYmUgdGhhdCBhbiBvcmdhbml6YXRpb24gc2hvdWxkIGl0c2VsZiB1c2UgdGhlIHByb2R1Y3RzIGFuZCBzZXJ2aWNlcyBpdCBwcm92aWRlcy4gRm9yIERhdGFDaXRlIHRoaXMgbWVhbnMgdGhhdCB3ZSBzaG91bGQgdXNlIERPSXMgd2l0aCBhcHByb3ByaWF0ZSBtZXRhZGF0YSBhbmQgc3RyYXRlZ2llcyBmb3IgbG9uZy10ZXJtIHByZXNlcnZhdGlvbiBmb3IuLi48L2Rlc2NyaXB0aW9uPgogIDwvZGVzY3JpcHRpb25zPgo8L3Jlc291cmNlPgo=","minted":"2016-12-19T20:49:21Z","updated":"2017-01-09T13:53:12Z","doi":"10.5438/4K3M-NYVG","media":["application/xml:https://blog.datacite.org/eating-your-own-dog-food/eating-your-own-dog-food.xml"]}]}}
95
+
96
+ '
97
+ http_version:
98
+ recorded_at: Sun, 07 May 2017 10:43:07 GMT
99
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,97 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.datacite.org/prefixes/10.5438
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Maremma - https://github.com/datacite/maremma
12
+ Accept:
13
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: ''
18
+ headers:
19
+ Access-Control-Allow-Headers:
20
+ - Content-Type,Accept,Accept-Encoding,Origin,User-Agent,Cache-Control,Keep-Alive
21
+ Access-Control-Allow-Methods:
22
+ - GET, POST, OPTIONS
23
+ Access-Control-Allow-Origin:
24
+ - "*"
25
+ Access-Control-Max-Age:
26
+ - '1728000'
27
+ Cache-Control:
28
+ - max-age=0, private, must-revalidate
29
+ Content-Type:
30
+ - application/vnd.api+json; charset=utf-8
31
+ Date:
32
+ - Sun, 07 May 2017 12:54:14 GMT
33
+ Etag:
34
+ - W/"b9f2d79281c542db437c42a5bac25ac8"
35
+ Server:
36
+ - openresty/1.11.2.2
37
+ Status:
38
+ - 200 OK
39
+ Vary:
40
+ - Accept-Encoding
41
+ X-Content-Type-Options:
42
+ - nosniff
43
+ X-Frame-Options:
44
+ - SAMEORIGIN
45
+ X-Powered-By:
46
+ - Phusion Passenger 5.1.2
47
+ X-Request-Id:
48
+ - 0972f784-74e3-403c-b928-2354f2930fcd
49
+ X-Runtime:
50
+ - '0.776127'
51
+ X-Xss-Protection:
52
+ - 1; mode=block
53
+ Connection:
54
+ - keep-alive
55
+ body:
56
+ encoding: UTF-8
57
+ string: '{"data":{"id":"10.5438","type":"prefixes","attributes":{"registration-agency":"DataCite","updated":"2016-09-21T20:27:15Z"}}}'
58
+ http_version:
59
+ recorded_at: Sun, 07 May 2017 12:54:14 GMT
60
+ - request:
61
+ method: get
62
+ uri: https://search.datacite.org/api?fl=doi,xml,media,minted,updated&q=doi:10.5438/4k3m-nyvg&wt=json
63
+ body:
64
+ encoding: US-ASCII
65
+ string: ''
66
+ headers:
67
+ User-Agent:
68
+ - Maremma - https://github.com/datacite/maremma
69
+ Accept:
70
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
71
+ response:
72
+ status:
73
+ code: 200
74
+ message: ''
75
+ headers:
76
+ Access-Control-Allow-Methods:
77
+ - GET, POST, OPTIONS
78
+ Access-Control-Allow-Origin:
79
+ - "*"
80
+ Content-Type:
81
+ - application/json;charset=UTF-8
82
+ Date:
83
+ - Sun, 07 May 2017 12:54:14 GMT
84
+ Server:
85
+ - openresty/1.11.2.2
86
+ Content-Length:
87
+ - '3025'
88
+ Connection:
89
+ - keep-alive
90
+ body:
91
+ encoding: UTF-8
92
+ string: '{"responseHeader":{"status":0,"QTime":0},"response":{"numFound":1,"start":0,"docs":[{"xml":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc291cmNlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC00L21ldGFkYXRhLnhzZCI+CiAgPGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuNTQzOC80SzNNLU5ZVkc8L2lkZW50aWZpZXI+CiAgPGNyZWF0b3JzPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZT5GZW5uZXIsIE1hcnRpbjwvY3JlYXRvck5hbWU+CiAgICAgIDxnaXZlbk5hbWU+TWFydGluPC9naXZlbk5hbWU+CiAgICAgIDxmYW1pbHlOYW1lPkZlbm5lcjwvZmFtaWx5TmFtZT4KICAgICAgPG5hbWVJZGVudGlmaWVyIHNjaGVtZVVSST0iaHR0cDovL29yY2lkLm9yZy8iIG5hbWVJZGVudGlmaWVyU2NoZW1lPSJPUkNJRCI+MDAwMC0wMDAzLTE0MTktMjQwNTwvbmFtZUlkZW50aWZpZXI+CiAgICA8L2NyZWF0b3I+CiAgPC9jcmVhdG9ycz4KICA8dGl0bGVzPgogICAgPHRpdGxlPkVhdGluZyB5b3VyIG93biBEb2cgRm9vZDwvdGl0bGU+CiAgPC90aXRsZXM+CiAgPHB1Ymxpc2hlcj5EYXRhQ2l0ZTwvcHVibGlzaGVyPgogIDxwdWJsaWNhdGlvblllYXI+MjAxNjwvcHVibGljYXRpb25ZZWFyPgogIDxyZXNvdXJjZVR5cGUgcmVzb3VyY2VUeXBlR2VuZXJhbD0iVGV4dCI+QmxvZ1Bvc3Rpbmc8L3Jlc291cmNlVHlwZT4KICA8YWx0ZXJuYXRlSWRlbnRpZmllcnM+CiAgICA8YWx0ZXJuYXRlSWRlbnRpZmllciBhbHRlcm5hdGVJZGVudGlmaWVyVHlwZT0iTG9jYWwgYWNjZXNzaW9uIG51bWJlciI+TVMtNDktMzYzMi01MDgzPC9hbHRlcm5hdGVJZGVudGlmaWVyPgogIDwvYWx0ZXJuYXRlSWRlbnRpZmllcnM+CiAgPHN1YmplY3RzPgogICAgPHN1YmplY3Q+ZGF0YWNpdGU8L3N1YmplY3Q+CiAgICA8c3ViamVjdD5kb2k8L3N1YmplY3Q+CiAgICA8c3ViamVjdD5tZXRhZGF0YTwvc3ViamVjdD4KICA8L3N1YmplY3RzPgogIDxkYXRlcz4KICAgIDxkYXRlIGRhdGVUeXBlPSJDcmVhdGVkIj4yMDE2LTEyLTIwPC9kYXRlPgogICAgPGRhdGUgZGF0ZVR5cGU9Iklzc3VlZCI+MjAxNi0xMi0yMDwvZGF0ZT4KICAgIDxkYXRlIGRhdGVUeXBlPSJVcGRhdGVkIj4yMDE2LTEyLTIwPC9kYXRlPgogIDwvZGF0ZXM+CiAgPHJlbGF0ZWRJZGVudGlmaWVycz4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGVkSWRlbnRpZmllclR5cGU9IkRPSSIgcmVsYXRpb25UeXBlPSJSZWZlcmVuY2VzIj4xMC41NDM4LzAwMTI8L3JlbGF0ZWRJZGVudGlmaWVyPgogICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIiByZWxhdGlvblR5cGU9IlJlZmVyZW5jZXMiPjEwLjU0MzgvNTVFNS1UNUMwPC9yZWxhdGVkSWRlbnRpZmllcj4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGVkSWRlbnRpZmllclR5cGU9IkRPSSIgcmVsYXRpb25UeXBlPSJJc1BhcnRPZiI+MTAuNTQzOC8wMDAwLTAwU1M8L3JlbGF0ZWRJZGVudGlmaWVyPgogIDwvcmVsYXRlZElkZW50aWZpZXJzPgogIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KICA8ZGVzY3JpcHRpb25zPgogICAgPGRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uVHlwZT0iQWJzdHJhY3QiPkVhdGluZyB5b3VyIG93biBkb2cgZm9vZCBpcyBhIHNsYW5nIHRlcm0gdG8gZGVzY3JpYmUgdGhhdCBhbiBvcmdhbml6YXRpb24gc2hvdWxkIGl0c2VsZiB1c2UgdGhlIHByb2R1Y3RzIGFuZCBzZXJ2aWNlcyBpdCBwcm92aWRlcy4gRm9yIERhdGFDaXRlIHRoaXMgbWVhbnMgdGhhdCB3ZSBzaG91bGQgdXNlIERPSXMgd2l0aCBhcHByb3ByaWF0ZSBtZXRhZGF0YSBhbmQgc3RyYXRlZ2llcyBmb3IgbG9uZy10ZXJtIHByZXNlcnZhdGlvbiBmb3IuLi48L2Rlc2NyaXB0aW9uPgogIDwvZGVzY3JpcHRpb25zPgo8L3Jlc291cmNlPgo=","minted":"2016-12-19T20:49:21Z","updated":"2017-01-09T13:53:12Z","doi":"10.5438/4K3M-NYVG","media":["application/xml:https://blog.datacite.org/eating-your-own-dog-food/eating-your-own-dog-food.xml"]}]}}
93
+
94
+ '
95
+ http_version:
96
+ recorded_at: Sun, 07 May 2017 12:54:14 GMT
97
+ recorded_with: VCR 3.0.3
@@ -91,6 +91,13 @@ describe Bolognese::Metadata, vcr: true do
91
91
  expect(subject.find_from_format(string: string, ext: ext)).to eq("citeproc")
92
92
  end
93
93
 
94
+ it "crosscite" do
95
+ file = fixture_path + "crosscite.json"
96
+ string = IO.read(file)
97
+ ext = File.extname(file)
98
+ expect(subject.find_from_format(string: string, ext: ext)).to eq("crosscite")
99
+ end
100
+
94
101
  it "codemeta" do
95
102
  file = fixture_path + "codemeta.json"
96
103
  string = IO.read(file)
@@ -99,6 +106,14 @@ describe Bolognese::Metadata, vcr: true do
99
106
  end
100
107
  end
101
108
 
109
+ context "find from format from string" do
110
+ it "crosscite" do
111
+ file = fixture_path + "crosscite.json"
112
+ string = IO.read(file)
113
+ expect(subject.find_from_format(string: string)).to eq("crosscite")
114
+ end
115
+ end
116
+
102
117
  context "jsonlint" do
103
118
  it "valid" do
104
119
  json = IO.read(fixture_path + "datacite_software.json")
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+
3
+ describe Bolognese::Metadata, vcr: true do
4
+ let(:input) { fixture_path + "crosscite.json" }
5
+
6
+ subject { Bolognese::Metadata.new(input: input) }
7
+
8
+ context "get crosscite raw" do
9
+ it "SoftwareSourceCode" do
10
+ expect(subject.raw).to eq(IO.read(input))
11
+ end
12
+ end
13
+
14
+ context "get crosscite metadata" do
15
+ it "SoftwareSourceCode" do
16
+ expect(subject.valid?).to be true
17
+ expect(subject.id).to eq("https://doi.org/10.5281/zenodo.48440")
18
+ expect(subject.type).to eq("SoftwareSourceCode")
19
+ expect(subject.resource_type_general).to eq("Software")
20
+ expect(subject.author).to eq("type"=>"Person", "familyName" => "Garza", "givenName" => "Kristian", "name" => "Kristian Garza")
21
+ expect(subject.title).to eq("Analysis Tools for Crossover Experiment of UI using Choice Architecture")
22
+ expect(subject.description["text"]).to start_with("This tools are used to analyse the data produced by the Crosssover Experiment")
23
+ expect(subject.date_published).to eq("2016-03-27")
24
+ end
25
+
26
+ it "SoftwareSourceCode as string" do
27
+ input = IO.read(fixture_path + "crosscite.json")
28
+ subject = Bolognese::Metadata.new(input: input)
29
+ expect(subject.valid?).to be true
30
+ expect(subject.id).to eq("https://doi.org/10.5281/zenodo.48440")
31
+ expect(subject.type).to eq("SoftwareSourceCode")
32
+ expect(subject.resource_type_general).to eq("Software")
33
+ expect(subject.author).to eq("type"=>"Person", "familyName" => "Garza", "givenName" => "Kristian", "name" => "Kristian Garza")
34
+ expect(subject.title).to eq("Analysis Tools for Crossover Experiment of UI using Choice Architecture")
35
+ expect(subject.description["text"]).to start_with("This tools are used to analyse the data produced by the Crosssover Experiment")
36
+ expect(subject.date_published).to eq("2016-03-27")
37
+ end
38
+ end
39
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bolognese
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.13
4
+ version: 0.9.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Fenner
@@ -520,6 +520,7 @@ files:
520
520
  - spec/doi_utils_spec.rb
521
521
  - spec/fixtures/citeproc.json
522
522
  - spec/fixtures/codemeta.json
523
+ - spec/fixtures/crosscite.json
523
524
  - spec/fixtures/crossref.bib
524
525
  - spec/fixtures/crossref.ris
525
526
  - spec/fixtures/crossref.xml
@@ -568,11 +569,13 @@ files:
568
569
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/bibtex.yml
569
570
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/citeproc.yml
570
571
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/codemeta.yml
572
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/crosscite.yml
571
573
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/crossref.yml
572
574
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/datacite.yml
573
575
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/datacite_json.yml
574
576
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/ris.yml
575
577
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/schema_org.yml
578
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_string/crosscite.yml
576
579
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/from_schema_org/with_id.yml
577
580
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_codemeta_metadata/maremma.yml
578
581
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_codemeta_metadata/no_codemeta_json.yml
@@ -732,6 +735,7 @@ files:
732
735
  - spec/readers/bibtex_reader_spec.rb
733
736
  - spec/readers/citeproc_reader_spec.rb
734
737
  - spec/readers/codemeta_reader_spec.rb
738
+ - spec/readers/crosscite_reader_spec.rb
735
739
  - spec/readers/crossref_reader_spec.rb
736
740
  - spec/readers/datacite_json_reader_spec.rb
737
741
  - spec/readers/datacite_reader_spec.rb