sheetsy 1.1.0 → 1.3.0

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: c1657d9d17ecb875a0ee44347fa799432cfe45d69c96cf4fdde1ddd790b66bfb
4
- data.tar.gz: 817112d9e9c2165564690570c1c32edb8588366776e817484516a6b000a29b86
3
+ metadata.gz: e90c7665d0f2aed22d9e22fe98598c4e93a086cd4062594bc0ae7e2ca159cfbb
4
+ data.tar.gz: f9aaf7ffc9bac9bb91415a07c24144e56e841aa3d51d0562ae4b9b229f465ce0
5
5
  SHA512:
6
- metadata.gz: 3ae345e0b375497fa4d5480bbbb2c2979da0d825c97fbba88e1209d094c7e5ef3eec1f2e90a3166c0dfe99bffad112d5fe76fa2cf1c1992db8c9be7bd164fd0d
7
- data.tar.gz: 4d6ce7739558090453106d37cb1a17e114ca7f4ad3b5ffa2f645668df557c3ee6be90a55fcc4b10502a66386b27a299ec426c6e9aca6ed01773fa4bf26e086c8
6
+ metadata.gz: 8ae08fab3b426ee42757dcfb87df09cda5d6e5b5eb2ffa4abbba341b4feb1cf9669e967bea5cd4bb10c7e2b815c5949173959a34524a1df57f52f0cad67f45e4
7
+ data.tar.gz: 8d00f374dd99771a76091332ea2770cdda613729916ad8c55dc384879aef4d74f9e3961dc59a8db6616e0093e98b63e476931eed2c90b23e133d4de682f70ee8
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sheetsy (1.1.0)
4
+ sheetsy (1.3.0)
5
5
  rake (~> 13.0)
6
6
  roo
7
7
  rspec (~> 3.0)
data/lib/sheetsy/cli.rb CHANGED
@@ -31,6 +31,21 @@ module Sheetsy
31
31
  Sheetsy::Converter.new(source, destination, options).run
32
32
  end
33
33
 
34
+ desc "reader", "Read JSON sheets"
35
+ option :source, type: :string, aliases: :s
36
+ option :debug, type: :boolean, default: false
37
+ def reader
38
+ source = if options[:source]
39
+ options[:source]
40
+ elsif ENV.key?("SOURCE")
41
+ ENV.fetch("SOURCE")
42
+ else
43
+ get_input("Source Directory", Dir.pwd)
44
+ end
45
+
46
+ Sheetsy::Reader.new(source, options).run
47
+ end
48
+
34
49
  private
35
50
 
36
51
  def get_input(text, default)
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sheetsy
4
+ class JSONFile
5
+ attr_reader :file_path, :data
6
+
7
+ def initialize(file_path)
8
+ @file_path = file_path
9
+ end
10
+
11
+ def data
12
+ @data ||= JSON.parse(File.read(file_path))
13
+ end
14
+
15
+ def inspect
16
+ to_s
17
+ end
18
+
19
+ def to_s
20
+ "#<#{self.class}:#{file_path}>"
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sheetsy
4
+ class Reader
5
+ attr_reader :source, :options, :data
6
+
7
+ def initialize(source, options = {})
8
+ @source = source
9
+ @options = options
10
+ end
11
+
12
+ def run
13
+ debug "Files found: #{files.count}"
14
+
15
+ progress_bar.progress = 0
16
+
17
+ @data = files.map do |file|
18
+ ret = JSONFile.new(file)
19
+ progress_bar.increment
20
+ ret
21
+ end
22
+ end
23
+
24
+ def overwrite?
25
+ @overwrite ||= options[:overwrite]
26
+ end
27
+
28
+ def debug?
29
+ @debug ||= options[:debug]
30
+ end
31
+
32
+ private
33
+
34
+ def files
35
+ @files ||= Dir.glob(File.join(source, "**/*.{json}"))
36
+ end
37
+
38
+ def progress_bar
39
+ @progress_bar ||= ProgressBar.create(title: "Files", total: files.count)
40
+ end
41
+
42
+ def debug(str)
43
+ return unless debug?
44
+
45
+ progress_bar.log str
46
+ end
47
+ end
48
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Sheetsy
4
- VERSION = "1.1.0"
4
+ VERSION = "1.3.0"
5
5
  end
data/lib/sheetsy.rb CHANGED
@@ -3,11 +3,13 @@
3
3
  require "json"
4
4
  require "roo"
5
5
  require "csv"
6
- require "pry"
6
+ # require "pry"
7
7
  require "ruby-progressbar"
8
8
 
9
9
  require_relative "sheetsy/version"
10
10
  require_relative "sheetsy/converter"
11
+ require_relative "sheetsy/json_file"
12
+ require_relative "sheetsy/reader"
11
13
  require_relative "sheetsy/cli"
12
14
 
13
15
  module Sheetsy
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sheetsy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan
@@ -115,6 +115,8 @@ files:
115
115
  - lib/sheetsy.rb
116
116
  - lib/sheetsy/cli.rb
117
117
  - lib/sheetsy/converter.rb
118
+ - lib/sheetsy/json_file.rb
119
+ - lib/sheetsy/reader.rb
118
120
  - lib/sheetsy/version.rb
119
121
  - sig/sheetsy.rbs
120
122
  homepage: https://github.com/ryanwjackson/sheetsy