xmpr 0.1.0 → 0.2.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
- SHA1:
3
- metadata.gz: 08d0e048e64b4d40f19b961396560ca82665e267
4
- data.tar.gz: 47aa31c23b2373edda9845062c9fde289c069903
2
+ SHA256:
3
+ metadata.gz: bab4db436ec9741a2221b830828d4fb6cc8f87b6edf25140d9db8bbd25a49894
4
+ data.tar.gz: ad83eaf84b845cd4aed03695ab63344c7136432b0d38ef19caba1cf05a8c5d05
5
5
  SHA512:
6
- metadata.gz: f282f52a180f4afca03cde9afb64c6f560d9d4e403c99ff5f27bfd306bf2296f534f06f91d5a4fa64734346f0b09be7d6bb3a861f19666232ef57c18896b3393
7
- data.tar.gz: 06f0587b77eb1a758295e57aac7b7ece5abb5aa80eff6abefed1d01ddcb339bda15405c7d644d601f5e3b7ead72c7769e27a7f3e16dc7adc88c771fe08db4de0
6
+ metadata.gz: 19fed278428575a766e57ca64c370403fb06b2ec4f83939bb2fa6566e7a7cbd280a1b3e26093201d2382b24ef3a22bcb0b0fa72274cf71110c4107996e3999a4
7
+ data.tar.gz: 21602c286bf2a8a7446f6e136150509bdc7d0e734e1f6e31d873e18841a9a1d1813f2cb08737a72509d6ed1cc49611e861fe99d834aa00de30644b12feac4197
checksums.yaml.gz.sig CHANGED
Binary file
data/README.md CHANGED
@@ -1,9 +1,48 @@
1
1
  # XMP Reader
2
2
 
3
- [![Build Status](https://travis-ci.org/sj26/xmpr?branch=master)](https://travis-ci.org/sj26/xmpr)
4
-
5
3
  XMP Reader in Ruby. Parse XMP data extracted from an image into rich data types.
6
4
 
5
+ ## Usage
6
+
7
+ Use something like imagemagick to extract the XMP, then read it with this class:
8
+
9
+ ```ruby
10
+ require "xmpr"
11
+ raw_xmp = `convert image.jpg xmp:-`
12
+ xmp = XMPR.parse(raw_xmp)
13
+ xmp["dc", "title"] # => "Amazing Photo"
14
+ xmp["photoshop", "Category"] # => "summer"
15
+ xmp["photoshop", "SupplementalCategories"] # => ["morning", "sea"]
16
+ ```
17
+
18
+ The xmp instance fetches namespaced attributes. You can use fully qualified namespaces, or some namespaces have shortcuts:
19
+
20
+ ```
21
+ xmp["http://purl.org/dc/elements/1.1/", "title"] # => "Amazing Photo"
22
+ xmp["dc", "title"] # => "Amazing Photo" (same thing)
23
+ ```
24
+
25
+ The following namespaces have shortcuts:
26
+
27
+ * `aux` — `http://ns.adobe.com/exif/1.0/aux/`
28
+ * `cc` — `http://creativecommons.org/ns#` ([Creative Commons](http://creativecommons.org))
29
+ * `crs` — `http://ns.adobe.com/camera-raw-settings/1.0/`
30
+ * `dc` — `http://purl.org/dc/elements/1.1/` ([Dublin Core](http://dublincore.org/))
31
+ * `exif` — `http://ns.adobe.com/exif/1.0/`
32
+ * `Iptc4xmpCore` — `http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/` ([IPTC](http://iptc.org/))
33
+ * `pdf` — `http://ns.adobe.com/pdf/1.3/`
34
+ * `photoshop` — `http://ns.adobe.com/photoshop/1.0/`
35
+ * `rdf` — `http://www.w3.org/1999/02/22-rdf-syntax-ns#`
36
+ * `tiff` — `http://ns.adobe.com/tiff/1.0/`
37
+ * `x` — `adobe:ns:meta/`
38
+ * `xap` — `http://ns.adobe.com/xap/1.0/`
39
+ * `xmp` — `http://ns.adobe.com/xap/1.0/` ([XMP](http://www.adobe.com/products/xmp.html))
40
+ * `xmpidq` — `http://ns.adobe.com/xmp/Identifier/qual/1.0/`
41
+ * `xmpBJ` — `http://ns.adobe.com/xap/1.0/bj/`
42
+ * `xmpRights` — `http://ns.adobe.com/xap/1.0/rights/`
43
+ * `xmpMM` — `http://ns.adobe.com/xap/1.0/mm/`
44
+ * `xmpTPg` — `http://ns.adobe.com/xap/1.0/t/pg/`
45
+
7
46
  ## Thanks
8
47
 
9
48
  Refactored from [XMP][xmp-gem]. Inspired by [ExifTool][exiftool].
@@ -11,6 +50,10 @@ Refactored from [XMP][xmp-gem]. Inspired by [ExifTool][exiftool].
11
50
  [xmp-gem]: https://github.com/amberbit/xmp
12
51
  [exiftool]: http://www.sno.phy.queensu.ca/~phil/exiftool/
13
52
 
53
+ ## References
54
+
55
+ * [XMP specification](https://www.adobe.com/devnet/xmp.html)
56
+
14
57
  ## License
15
58
 
16
59
  MIT license, see [LICENSE](LICENSE).
data/lib/xmpr/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module XMPR
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.1"
3
3
  end
data/lib/xmpr.rb CHANGED
@@ -20,7 +20,8 @@ module XMPR
20
20
  # Namespace shortcuts, and fallbacks for undeclared namespaces.
21
21
  NAMESPACES = {
22
22
  "aux" => "http://ns.adobe.com/exif/1.0/aux/",
23
- "crs" => "http://ns.adobe.com/camera-raw-settings/1.0/",
23
+ "cc" => "http://creativecommons.org/ns#",
24
+ "crs" => "http://ns.adobe.com/camera-raw-settings/1.0/",
24
25
  "dc" => "http://purl.org/dc/elements/1.1/",
25
26
  "exif" => "http://ns.adobe.com/exif/1.0/",
26
27
  "Iptc4xmpCore" => "http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/",
@@ -100,8 +101,6 @@ module XMPR
100
101
  alt_value(alt_element, lang: lang)
101
102
  elsif array_element = element.xpath("./rdf:Bag | ./rdf:Seq", NAMESPACES).first
102
103
  array_value(array_element)
103
- else
104
- raise "Don't know how to handle:\n#{element}"
105
104
  end
106
105
  end
107
106
 
@@ -5,6 +5,7 @@
5
5
  xmlns:dc="http://purl.org/dc/elements/1.1/"
6
6
  xmlns:Iptc4xmpCore="http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/"
7
7
  xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
8
+ xmlns:xmpMM ='http://ns.adobe.com/xap/1.0/mm/'
8
9
  Iptc4xmpCore:Location="Miejsce"
9
10
  photoshop:Category="Kategoria">
10
11
  <dc:title>
@@ -27,6 +28,7 @@
27
28
  </dc:creator>
28
29
  </rdf:Description>
29
30
  </rdf:RDF>
31
+ <xmpMM:DerivedFrom stRef:documentID ='1E779B3F7210FAE000FF94666EF3A444' stRef:originalDocumentID ='1E779B3F7210FAE000FF94666EF3A444'></xmpMM:DerivedFrom>
30
32
  </x:xmpmeta>
31
33
 
32
34
 
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,34 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xmpr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Cochran
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDKDCCAhCgAwIBAgIBAzANBgkqhkiG9w0BAQUFADA6MQ0wCwYDVQQDDARzajI2
14
- MRQwEgYKCZImiZPyLGQBGRYEc2oyNjETMBEGCgmSJomT8ixkARkWA2NvbTAeFw0x
15
- NTAzMTcyMjUwMjZaFw0xNjAzMTYyMjUwMjZaMDoxDTALBgNVBAMMBHNqMjYxFDAS
13
+ MIIDXDCCAkSgAwIBAgIBATANBgkqhkiG9w0BAQsFADA6MQ0wCwYDVQQDDARzajI2
14
+ MRQwEgYKCZImiZPyLGQBGRYEc2oyNjETMBEGCgmSJomT8ixkARkWA2NvbTAeFw0y
15
+ MjA3MDQwMDQwNDZaFw0yMzA3MDQwMDQwNDZaMDoxDTALBgNVBAMMBHNqMjYxFDAS
16
16
  BgoJkiaJk/IsZAEZFgRzajI2MRMwEQYKCZImiZPyLGQBGRYDY29tMIIBIjANBgkq
17
17
  hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr60Eo/ttCk8GMTMFiPr3GoYMIMFvLak
18
18
  xSmTk9YGCB6UiEePB4THSSA5w6IPyeaCF/nWkDp3/BAam0eZMWG1IzYQB23TqIM0
19
19
  1xzcNRvFsn0aQoQ00k+sj+G83j3T5OOV5OZIlu8xAChMkQmiPd1NXc6uFv+Iacz7
20
20
  kj+CMsI9YUFdNoU09QY0b+u+Rb6wDYdpyvN60YC30h0h1MeYbvYZJx/iZK4XY5zu
21
21
  4O/FL2ChjL2CPCpLZW55ShYyrzphWJwLOJe+FJ/ZBl6YXwrzQM9HKnt4titSNvyU
22
- KzE3L63A3PZvExzLrN9u09kuWLLJfXB2sGOlw3n9t72rJiuBr3/OQQIDAQABozkw
23
- NzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU99dfRjEKFyczTeIz
24
- m3ZsDWrNC80wDQYJKoZIhvcNAQEFBQADggEBAFxKLjiLkMLkUmdpsAzJad/t7Jo/
25
- CGby/3n0WSXPBeZJfsnSdJ2qtG7iy/xqYDc1RjpKgX0RlMgeQRSE3ZDL/HZzBKDF
26
- azaTgG9Zk1Quu59/79Z0Sltq07Z/IeccFl5j9M+1YS8VY2mOPi9g03OoOSRmhsMS
27
- wpEF+zvJ0ESS5OPjtp6Sk4q1QYc0aVIthEznuVNMW6CPpTNhMAOFMaTC5AXCzJ3Q
28
- 52G9HuhbVSTgE/I10H9qZBOE3qdP8ka/Fk0PUrux/DuUanNZgSKJokrQvRA4H9Au
29
- WpPA7HJYV6msWQiukoBEhfQ2l6Fl2HUwntvX3MCcFNHeJJ5ETERp9alo88E=
22
+ KzE3L63A3PZvExzLrN9u09kuWLLJfXB2sGOlw3n9t72rJiuBr3/OQQIDAQABo20w
23
+ azAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU99dfRjEKFyczTeIz
24
+ m3ZsDWrNC80wGAYDVR0RBBEwD4ENc2oyNkBzajI2LmNvbTAYBgNVHRIEETAPgQ1z
25
+ ajI2QHNqMjYuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQCsa7k3TABBcyXotr3yCq6f
26
+ xsgbMG9FR71c4wRgVNQi9O3jN64fQBbxo//BQlHfPCjs1CeU4es9xdQFfhqXAPXG
27
+ P7mK3+qd5jObjh6l3/rDKrTXNS+P+YO/1frlZ6xPjCA8XgGc4y0rhAjZnVBDV6t1
28
+ kmdtEmue1s1OxaMakr78XRZDxEuAeLM5fg8MYnlOFygEcAH6lZkTjXavY7s9MXRB
29
+ AAMioxgB6J5QhXQ42OSWIzwHZIbSv3DV9Lf5sde50HIW5f9u5jn29TUGDhSWYKkh
30
+ LDvy9dfwMMOdIZi75Q8SBBib84AuwhMHIlUv9FcHhh3dXsDDYkrVrpUAwCsG6yCm
30
31
  -----END CERTIFICATE-----
31
- date: 2015-12-18 00:00:00.000000000 Z
32
+ date: 2023-01-24 00:00:00.000000000 Z
32
33
  dependencies:
33
34
  - !ruby/object:Gem::Dependency
34
35
  name: nokogiri
@@ -50,28 +51,28 @@ dependencies:
50
51
  requirements:
51
52
  - - "~>"
52
53
  - !ruby/object:Gem::Version
53
- version: '1.10'
54
+ version: '2.0'
54
55
  type: :development
55
56
  prerelease: false
56
57
  version_requirements: !ruby/object:Gem::Requirement
57
58
  requirements:
58
59
  - - "~>"
59
60
  - !ruby/object:Gem::Version
60
- version: '1.10'
61
+ version: '2.0'
61
62
  - !ruby/object:Gem::Dependency
62
63
  name: rake
63
64
  requirement: !ruby/object:Gem::Requirement
64
65
  requirements:
65
- - - "~>"
66
+ - - ">="
66
67
  - !ruby/object:Gem::Version
67
- version: '10.0'
68
+ version: '0'
68
69
  type: :development
69
70
  prerelease: false
70
71
  version_requirements: !ruby/object:Gem::Requirement
71
72
  requirements:
72
- - - "~>"
73
+ - - ">="
73
74
  - !ruby/object:Gem::Version
74
- version: '10.0'
75
+ version: '0'
75
76
  - !ruby/object:Gem::Dependency
76
77
  name: minitest
77
78
  requirement: !ruby/object:Gem::Requirement
@@ -102,14 +103,19 @@ files:
102
103
  homepage: https://github.com/sj26/xmpr
103
104
  licenses:
104
105
  - MIT
105
- metadata: {}
106
- post_install_message:
106
+ metadata:
107
+ bug_tracker_uri: https://github.com/sj26/xmpr/issues
108
+ changelog_uri: https://github.com/sj26/xmpr/releases
109
+ documentation_uri: https://www.rubydoc.info/gems/xmpr/0.2.1
110
+ homepage_uri: https://github.com/sj26/xmpr
111
+ source_code_uri: https://github.com/sj26/xmpr/tree/v0.2.1
112
+ post_install_message:
107
113
  rdoc_options: []
108
114
  require_paths:
109
115
  - lib
110
116
  required_ruby_version: !ruby/object:Gem::Requirement
111
117
  requirements:
112
- - - "~>"
118
+ - - ">="
113
119
  - !ruby/object:Gem::Version
114
120
  version: '2.1'
115
121
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -118,13 +124,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
124
  - !ruby/object:Gem::Version
119
125
  version: '0'
120
126
  requirements: []
121
- rubyforge_project:
122
- rubygems_version: 2.4.5.1
123
- signing_key:
127
+ rubygems_version: 3.3.7
128
+ signing_key:
124
129
  specification_version: 4
125
130
  summary: Parse XMP data
126
131
  test_files:
127
132
  - test/fixtures/xmp.xml
128
133
  - test/test_helper.rb
129
134
  - test/xmpr_test.rb
130
- has_rdoc:
metadata.gz.sig CHANGED
Binary file