xmpr 0.1.0 → 0.2.0

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: 6f0ad440f14b09354720adb4213ff7d2f2d85f9fab7fcbfaf9cd78e478230548
4
+ data.tar.gz: f578707eca819fd8d9b7f8afcc07b2c70362c1be42905c7f05a97260c15b2f85
5
5
  SHA512:
6
- metadata.gz: f282f52a180f4afca03cde9afb64c6f560d9d4e403c99ff5f27bfd306bf2296f534f06f91d5a4fa64734346f0b09be7d6bb3a861f19666232ef57c18896b3393
7
- data.tar.gz: 06f0587b77eb1a758295e57aac7b7ece5abb5aa80eff6abefed1d01ddcb339bda15405c7d644d601f5e3b7ead72c7769e27a7f3e16dc7adc88c771fe08db4de0
6
+ metadata.gz: 5f6bad1fdd87cfe461ad210675c9c2d4f43c9db71d04a8b250fb4ba5389f5a6d767e124d65aa5c0f7c98c8b8f55189e7d38dbe21141f81e2d1ae4c8bbdca911e
7
+ data.tar.gz: 7fc9380ec366fb686fa7084a9ccdcf13e9b749e9d620fbe8e06790595627999ecf0ff1b3e7ee7f5385aa03f910723e5f35db8f2402867f4cc7d85a82d3e0199c
@@ -1,2 +1 @@
1
- �e�px����G���zX,�Y�?E���>rE[��;,���iZr�j2f&�Fx]~�G����#��V�0��?���
2
- ��Ew�ʼnuϏ��!i�"i�GK��~w̎HM%G"sC�:�N��|�zk� ވ�_�+3�Sm
1
+ ��$֒a�ҊSx�6�&}>d�.�����W���xa�] ��ek���ϱ�ˉюә��Qq�q�nQ�m1������3Oؑ�f��wi���~C��p�ݛ¦�:�K���"�^���˳7���P"��|���Kq�<����K��u{G��e9�q�� BR����g�٩��7t�:���� 'Ri-tZ 8|�� O���Pƙ�S�Hx0Q Yr���s����͠��_t~� _����(�C�rin�G��
data.tar.gz.sig CHANGED
Binary file
data/README.md CHANGED
@@ -4,6 +4,47 @@
4
4
 
5
5
  XMP Reader in Ruby. Parse XMP data extracted from an image into rich data types.
6
6
 
7
+ ## Usage
8
+
9
+ Use something like imagemagick to extract the XMP, then read it with this class:
10
+
11
+ ```ruby
12
+ require "xmpr"
13
+ raw_xmp = `convert image.jpg xmp:-`
14
+ xmp = XMPR.parse(raw_xmp)
15
+ xmp["dc", "title"] # => "Amazing Photo"
16
+ xmp["photoshop", "Category"] # => "summer"
17
+ xmp["photoshop", "SupplementalCategories"] # => ["morning", "sea"]
18
+ ```
19
+
20
+ The xmp instance fetches namespaced attributes. You can use fully qualified namespaces, or some namespaces have shortcuts:
21
+
22
+ ```
23
+ xmp["http://purl.org/dc/elements/1.1/", "title"] # => "Amazing Photo"
24
+ xmp["dc", "title"] # => "Amazing Photo" (same thing)
25
+ ```
26
+
27
+ The following namespaces have shortcuts:
28
+
29
+ * `aux` — `http://ns.adobe.com/exif/1.0/aux/`
30
+ * `cc` — `http://creativecommons.org/ns#` ([Creative Commons](http://creativecommons.org))
31
+ * `crs` — `http://ns.adobe.com/camera-raw-settings/1.0/`
32
+ * `dc` — `http://purl.org/dc/elements/1.1/` ([Dublin Core](http://dublincore.org/))
33
+ * `exif` — `http://ns.adobe.com/exif/1.0/`
34
+ * `Iptc4xmpCore` — `http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/` ([IPTC](http://iptc.org/))
35
+ * `pdf` — `http://ns.adobe.com/pdf/1.3/`
36
+ * `photoshop` — `http://ns.adobe.com/photoshop/1.0/`
37
+ * `rdf` — `http://www.w3.org/1999/02/22-rdf-syntax-ns#`
38
+ * `tiff` — `http://ns.adobe.com/tiff/1.0/`
39
+ * `x` — `adobe:ns:meta/`
40
+ * `xap` — `http://ns.adobe.com/xap/1.0/`
41
+ * `xmp` — `http://ns.adobe.com/xap/1.0/` ([XMP](http://www.adobe.com/products/xmp.html))
42
+ * `xmpidq` — `http://ns.adobe.com/xmp/Identifier/qual/1.0/`
43
+ * `xmpBJ` — `http://ns.adobe.com/xap/1.0/bj/`
44
+ * `xmpRights` — `http://ns.adobe.com/xap/1.0/rights/`
45
+ * `xmpMM` — `http://ns.adobe.com/xap/1.0/mm/`
46
+ * `xmpTPg` — `http://ns.adobe.com/xap/1.0/t/pg/`
47
+
7
48
  ## Thanks
8
49
 
9
50
  Refactored from [XMP][xmp-gem]. Inspired by [ExifTool][exiftool].
@@ -11,6 +52,13 @@ Refactored from [XMP][xmp-gem]. Inspired by [ExifTool][exiftool].
11
52
  [xmp-gem]: https://github.com/amberbit/xmp
12
53
  [exiftool]: http://www.sno.phy.queensu.ca/~phil/exiftool/
13
54
 
55
+ ## References
56
+
57
+ * XMP specification
58
+ ([Part 1](http://www.adobe.com/content/dam/Adobe/en/devnet/xmp/pdfs/XMPSpecificationPart1.pdf),
59
+ [Part 2](http://www.adobe.com/content/dam/Adobe/en/devnet/xmp/pdfs/XMPSpecificationPart2.pdf),
60
+ [Part 3](http://www.adobe.com/content/dam/Adobe/en/devnet/xmp/pdfs/XMPSpecificationPart3.pdf))
61
+
14
62
  ## License
15
63
 
16
64
  MIT license, see [LICENSE](LICENSE).
@@ -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
 
@@ -1,3 +1,3 @@
1
1
  module XMPR
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
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.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Cochran
@@ -10,9 +10,9 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDKDCCAhCgAwIBAgIBAzANBgkqhkiG9w0BAQUFADA6MQ0wCwYDVQQDDARzajI2
13
+ MIIDKDCCAhCgAwIBAgIBBzANBgkqhkiG9w0BAQsFADA6MQ0wCwYDVQQDDARzajI2
14
14
  MRQwEgYKCZImiZPyLGQBGRYEc2oyNjETMBEGCgmSJomT8ixkARkWA2NvbTAeFw0x
15
- NTAzMTcyMjUwMjZaFw0xNjAzMTYyMjUwMjZaMDoxDTALBgNVBAMMBHNqMjYxFDAS
15
+ OTEwMjQwNjM0MjJaFw0yMDEwMjMwNjM0MjJaMDoxDTALBgNVBAMMBHNqMjYxFDAS
16
16
  BgoJkiaJk/IsZAEZFgRzajI2MRMwEQYKCZImiZPyLGQBGRYDY29tMIIBIjANBgkq
17
17
  hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr60Eo/ttCk8GMTMFiPr3GoYMIMFvLak
18
18
  xSmTk9YGCB6UiEePB4THSSA5w6IPyeaCF/nWkDp3/BAam0eZMWG1IzYQB23TqIM0
@@ -21,14 +21,14 @@ cert_chain:
21
21
  4O/FL2ChjL2CPCpLZW55ShYyrzphWJwLOJe+FJ/ZBl6YXwrzQM9HKnt4titSNvyU
22
22
  KzE3L63A3PZvExzLrN9u09kuWLLJfXB2sGOlw3n9t72rJiuBr3/OQQIDAQABozkw
23
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=
24
+ m3ZsDWrNC80wDQYJKoZIhvcNAQELBQADggEBAI06Bv7coqIflKtxRIwIJABl3hRR
25
+ fZ2U0C1T16VXGwGdxRyDJHYt/2aMDfS/bpDzqR0ela2dwTh/29/oZQeAtzbQq6dE
26
+ 7Pax2oYi+dahcreJFndcA6P/dl03XLNVIFVDtfEHvcUjtKKWQALAWirmW7KGAW1R
27
+ Xn1uy1RJ0TzazCY059p0UQwLU1KXz/5NnTrGka/GvKjLTjk67T6Y05lmr7TxMY2w
28
+ cTRkS42ilkarelc4DnSSO5jw7qFq7Cmf6F9hMx3xdoSWpLf+FvXJRbYrqwZIsmME
29
+ V8zEtJFhdNOFOdtcTE67qh/aYQe2y/LDnG9ywXHWdSeF4UUjg1WRt8s3OP8=
30
30
  -----END CERTIFICATE-----
31
- date: 2015-12-18 00:00:00.000000000 Z
31
+ date: 2019-11-19 00:00:00.000000000 Z
32
32
  dependencies:
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: nokogiri
@@ -50,28 +50,28 @@ dependencies:
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '1.10'
53
+ version: '2.0'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '1.10'
60
+ version: '2.0'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: rake
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - "~>"
65
+ - - ">="
66
66
  - !ruby/object:Gem::Version
67
- version: '10.0'
67
+ version: '0'
68
68
  type: :development
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - "~>"
72
+ - - ">="
73
73
  - !ruby/object:Gem::Version
74
- version: '10.0'
74
+ version: '0'
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: minitest
77
77
  requirement: !ruby/object:Gem::Requirement
@@ -118,8 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
118
  - !ruby/object:Gem::Version
119
119
  version: '0'
120
120
  requirements: []
121
- rubyforge_project:
122
- rubygems_version: 2.4.5.1
121
+ rubygems_version: 3.0.4
123
122
  signing_key:
124
123
  specification_version: 4
125
124
  summary: Parse XMP data
@@ -127,4 +126,3 @@ test_files:
127
126
  - test/fixtures/xmp.xml
128
127
  - test/test_helper.rb
129
128
  - test/xmpr_test.rb
130
- has_rdoc:
metadata.gz.sig CHANGED
Binary file