format_parser 0.3.2 → 0.3.3

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: 641f97911cf2f5a69318c06525d0360c554d4db0
4
- data.tar.gz: 79eaf519017dc996431b7e185a07bf352e52de6d
3
+ metadata.gz: 7a00aab34ab0fd5faeec5fa6069ab81b2d066b14
4
+ data.tar.gz: 51a4617a89c10524a88879cdabe34dd4ccdb24d3
5
5
  SHA512:
6
- metadata.gz: 80398fda150d24e68475e6b6f952d8f6a6f710109727993c73c77e63f42cd61224e5aea5b424981947e238433d9373cbc120afa9f63d4a6040852c5d61a285cf
7
- data.tar.gz: 73edb441670ae6032746dde148891b2dabb870b75323614eef6664abcb88ebcc3c3b47c6695f724002b8da5934d6cc50f4fe99ea3f6fb035b9d07486f9640c3f
6
+ metadata.gz: f9865f5245c785756a9ce84a89e2d17f2dbcf15a2172c3399d5112eb2d2f5ad613e233d641b31b47bce04d1d992a25a48d7e495b6025965e6599480c280dc9f6
7
+ data.tar.gz: 563cc7d7b3c8e6011ecc1d0dff1c245183c8d3da8a04c4669030ab009e6762183689f708f67b8b7ece4d7e2fe793f53771cf2efbcc1d186f473393bd4d76caac
data/README.md CHANGED
@@ -41,17 +41,11 @@ You can also optimize the metadata extraction by providing hints to the gem:
41
41
  FormatParser.parse(File.open("myimage", "rb"), natures: [:video, :image], formats: [:jpg, :png, :mp4], results: :all)
42
42
  ```
43
43
 
44
- If you need format_parser to return JSON, you can use `.as_json` to achieve this:
44
+ Return values of all parsers have built-in JSON serialization
45
45
 
46
46
  ```ruby
47
- class Foo
48
- include AttributesJSON
49
- attr_accessor :number_of_bars
50
- end
51
-
52
- the_foo = Foo.new
53
- the_foo.number_of_bars = 42
54
- the_foo.as_json #=> {:number_of_bars => 42}
47
+ img_info = FormatParser.parse(File.open("myimage.jpg", "rb"))
48
+ JSON.pretty_generate(img_info) #=> ...
55
49
  ```
56
50
 
57
51
  ## Creating your own parsers
@@ -25,4 +25,10 @@ module FormatParser::AttributesJSON
25
25
  h[reader_method_name] = value.respond_to?(:as_json) ? value.as_json : value
26
26
  end
27
27
  end
28
+
29
+ # Implements to_json with sane defaults - like
30
+ # support for `JSON.pretty_generate` vs. `JSON.dump`
31
+ def to_json(generator_state)
32
+ generator_state.generate(as_json)
33
+ end
28
34
  end
@@ -1,3 +1,3 @@
1
1
  module FormatParser
2
- VERSION = '0.3.2'
2
+ VERSION = '0.3.3'
3
3
  end
@@ -26,4 +26,27 @@ describe FormatParser::AttributesJSON do
26
26
  expect(file_related_class.ancestors).to include(FormatParser::AttributesJSON)
27
27
  end
28
28
  end
29
+
30
+ it 'provides a default implementation of to_json as well' do
31
+ anon_class = Class.new do
32
+ include FormatParser::AttributesJSON
33
+ attr_accessor :foo, :bar, :baz
34
+ def nature
35
+ 'good'
36
+ end
37
+ end
38
+ instance = anon_class.new
39
+ instance.foo = 42
40
+ instance.bar = 'abcdef'
41
+
42
+ output = JSON.dump(instance)
43
+ readback = JSON.parse(output, symbolize_names: true)
44
+
45
+ expect(readback).to have_key(:nature)
46
+
47
+ # Make sure we support pretty_generate correctly
48
+ pretty_output = JSON.pretty_generate(instance)
49
+ standard_output = JSON.dump(instance)
50
+ expect(pretty_output).not_to eq(standard_output)
51
+ end
29
52
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: format_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Noah Berman
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2018-02-26 00:00:00.000000000 Z
12
+ date: 2018-02-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ks
@@ -230,7 +230,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
230
230
  version: '0'
231
231
  requirements: []
232
232
  rubyforge_project:
233
- rubygems_version: 2.6.13
233
+ rubygems_version: 2.5.2
234
234
  signing_key:
235
235
  specification_version: 4
236
236
  summary: A library for efficient parsing of file metadata