tidy_json 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dfdad155c72b5ef6d411fbdd2dae876a4d7951e97f2f59f0817d09be0d1b1f8a
4
- data.tar.gz: 40fbd785790e3dc649c1ab8ac16696b359f832cc43da577e71fe9b55a5467212
3
+ metadata.gz: 1ee82014d81eee49d6386266ea0b95ac1774291db69bdc50e32a062b7e39613e
4
+ data.tar.gz: fa30e666d9762736b9f61e89ce94b0ab2384df7cc7b011dd21114399d88b56e1
5
5
  SHA512:
6
- metadata.gz: a62c5325d5ec264c61321518e26997170f5a1b34210d6c93052dfa2ab7aedce355ef0f9f9688dc4a18cd4113fafb121b314528374ba509b7e47f7a1f0f4afb7f
7
- data.tar.gz: 2351e73fd6c2c6e8da966b02cec5da2eeaff8ca77a090c5ac5e7aff96122e27f12ac8c770b1b89ce943e6300e21325b099442750137ca54183fee568b8db048b
6
+ metadata.gz: 0fe08f848f90052cef2c6cff40c56cd9abd7afefc9d8998091d64fa6a8f710df2682f4c7c17eac9bbdb9185b5418e7da7ecfb6e8a1f82a860b4faaa481bfb97c
7
+ data.tar.gz: 3b6c7bbb72b216e9759f2c822ad35e206b41faafa21f3f9eb5bb79313008ba64562d99159d1f6e2e1485e9833e8a2f7916a8c8d1a307ab929b1f77f7f32a878d
data/README.md CHANGED
@@ -24,7 +24,7 @@ gem 'tidy_json'
24
24
  ```ruby
25
25
  require 'tidy_json'
26
26
 
27
- class JsonableObject
27
+ class Jsonable
28
28
  attr_reader :a, :b
29
29
  def initialize
30
30
  @a = { a: 'uno', b: 'dos', c: ['I', 'II', 'III', ['i.', 'ii.', 'iii.', { 'ichi': "\u{4e00}", 'ni': "\u{4e8c}", 'san': "\u{4e09}", 'yon': "\u{56db}" }]] }
@@ -32,42 +32,42 @@ class JsonableObject
32
32
  end
33
33
  end
34
34
 
35
- my_jsonable = JsonableObject.new
35
+ my_jsonable = Jsonable.new
36
36
 
37
37
  JSON.parse my_jsonable.stringify
38
38
  # => {"class"=>"Jsonable", "a"=>{"a"=>"uno", "b"=>"dos", "c"=>["I", "II", "III", ["i.", "ii.", "iii.", {"ichi"=>"一", "ni"=>"二", "san"=>"三", "yon"=>"四"}]]}, "b"=>{"a"=>1, "b"=>["two", 3, "<abbr title=\"four\">IV</abbr>"]}}
39
39
 
40
- puts my_jsonable.to_tidy_json(indent: 8)
40
+ puts my_jsonable.to_tidy_json(indent: 4)
41
41
  # {
42
- # "class": "JsonableObject",
43
- # "a": {
44
- # "a": "uno",
45
- # "b": "dos",
46
- # "c": [
47
- # "I",
48
- # "II",
49
- # "III",
50
- # [
51
- # "i.",
52
- # "ii.",
53
- # "iii.",
54
- # {
55
- # "ichi": "一",
56
- # "ni": "二",
57
- # "san": "三",
58
- # "yon": "四"
59
- # }
60
- # ]
61
- # ]
62
- # },
63
- # "b": {
64
- # "a": 1,
65
- # "b": [
66
- # "two",
67
- # 3,
68
- # "<abbr title=\"four\">IV</abbr>"
69
- # ]
70
- # }
42
+ # "class": "Jsonable",
43
+ # "a": {
44
+ # "a": "uno",
45
+ # "b": "dos",
46
+ # "c": [
47
+ # "I",
48
+ # "II",
49
+ # "III",
50
+ # [
51
+ # "i.",
52
+ # "ii.",
53
+ # "iii.",
54
+ # {
55
+ # "ichi": "一",
56
+ # "ni": "二",
57
+ # "san": "三",
58
+ # "yon": "四"
59
+ # }
60
+ # ]
61
+ # ]
62
+ # },
63
+ # "b": {
64
+ # "a": 1,
65
+ # "b": [
66
+ # "two",
67
+ # 3,
68
+ # "<abbr title=\"four\">IV</abbr>"
69
+ # ]
70
+ # }
71
71
  # }
72
72
  # => nil
73
73
  ```
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module TidyJson # :nodoc:
2
4
  DEDICATION = "\n#{'.' * 50}\n#{'.' * 19} IN MEMORIAM #{'.' * 18}\n" \
3
5
  "#{'.' * 16} Michael Di Pardo #{'.' * 16}\n" \
@@ -6,5 +8,5 @@ module TidyJson # :nodoc:
6
8
  "#{'.' * 11} Please consider supporting #{'.' * 11}\n" \
7
9
  "#{'.' * 13} the MS Society of Canada #{'.' * 11}\n" \
8
10
  "#{'.' * 8} https://mssociety.ca/get-involved #{'.' * 7}\n" \
9
- "#{'.' * 50}\n\n".freeze
11
+ "#{'.' * 50}\n\n"
10
12
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module TidyJson
2
- VERSION = '0.2.0'.freeze
4
+ VERSION = '0.2.1'
3
5
  end
data/lib/tidy_json.rb CHANGED
@@ -74,7 +74,7 @@ module TidyJson
74
74
  # Writes a JSON representation of the sender object to the file specified by +out+.
75
75
  #
76
76
  # @param out [String] The destination filename.
77
- # @param opts [Hash] Formatting options for this object's +#to_tidy_json+ method.
77
+ # @param opts [Hash] Formatting options for this object's +#to_tidy_json+ method, when called.
78
78
  # [:tidy] whether or not the output should be pretty-printed
79
79
  # [:indent] the number of white spaces to indent
80
80
  # @return [String, nil] The path to the written output file, if successful.
@@ -82,7 +82,16 @@ module TidyJson
82
82
  path = nil
83
83
 
84
84
  File.open("#{out}.json", 'w') do |f|
85
- path = f << to_tidy_json(opts)
85
+ path =
86
+ f << if !instance_variables.empty?
87
+ if opts[:tidy] then to_tidy_json(opts)
88
+ else stringify
89
+ end
90
+ else
91
+ if opts[:tidy] then to_tidy_json(opts)
92
+ else to_json
93
+ end
94
+ end
86
95
  end
87
96
 
88
97
  path.path
@@ -245,6 +254,10 @@ module TidyJson
245
254
  # @!attribute indent
246
255
  # @return [String] the string of white space used by this +Formatter+ to indent object members.
247
256
 
257
+ ##
258
+ # Returns a new instance of +Formatter+.
259
+ # @param format_options [Hash] Formatting options.
260
+ # [:indent] the number of white spaces to indent. The default is 2.
248
261
  def initialize(format_options = {})
249
262
  ##
250
263
  # The number of times to reduce the left indent of a nested array's opening
data/tidy_json.gemspec CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.authors = ['Robert Di Pardo']
11
11
  spec.email = 'rdipardo0520@conestogac.on.ca'
12
12
  spec.homepage = 'https://github.com/rdipardo/tidy_json'
13
- spec.metadata = { 'documentation_uri' => 'https://rubydoc.org/github/rdipardo/tidy_json/master' }
13
+ spec.metadata = { 'documentation_uri' => 'https://rubydoc.org/github/rdipardo/tidy_json' }
14
14
  spec.license = 'MIT'
15
15
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
16
16
  ['.yardopts'].concat(`git ls-files -z`.split("\x0").reject { |f| f.match(/^(\.[\w+\.]+|test|spec|features)/) })
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tidy_json
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Di Pardo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-04 00:00:00.000000000 Z
11
+ date: 2020-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -72,7 +72,7 @@ homepage: https://github.com/rdipardo/tidy_json
72
72
  licenses:
73
73
  - MIT
74
74
  metadata:
75
- documentation_uri: https://rubydoc.org/github/rdipardo/tidy_json/master
75
+ documentation_uri: https://rubydoc.org/github/rdipardo/tidy_json
76
76
  post_install_message: |2+
77
77
 
78
78
  ..................................................