nazar 1.3.0 → 1.3.2

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
  SHA256:
3
- metadata.gz: 0d6d959973fd00cf0d233b01f69c7cd4bbd08889bc2251427ab855d24e13ce42
4
- data.tar.gz: 233302d7d8b97a7299763c8f3ef70bb7182f34094f22033cc22a0781fa08379b
3
+ metadata.gz: bcc3232a7523f78bf69adb0739dd0291085fdefb9d9e9e134aa353de19bba9d8
4
+ data.tar.gz: a63f9ae27c24191f564afc9e49533265d71fc49273cd225b69e88dfffe8072aa
5
5
  SHA512:
6
- metadata.gz: ab38635347ebc90e8439b8a59af77b52c38f90a73a58dfd347506e6b2c1c923b4e0a8f890bad5de1d1554eb9612871b14577bc26ca264dd36db3b391b645841b
7
- data.tar.gz: 0b0f71f05886d5b65728ab935c0ae3bbcce5ee3411e4eeadb7639e30ec0133a3c6e023127ca6b981ee075db1a60819c2a9f2cf9ea78c2174c6dd86fd021abbc8
6
+ metadata.gz: 2787f4a577a2c5acf16de9ec2469ba11f9531995478cc5677392d0055337214eb9fe2a7bd21b796a14210eaea5558d1295893c06ab7613991273b1974639d03f
7
+ data.tar.gz: 6655b2be011cd2b480ba112cd6e276ad4e3467df5a5ce1f53800852e3cc4a1df828d0c299478c1d73bbbaff325609d7768701903220a2589708b7117a32f799a
@@ -16,11 +16,11 @@ module Nazar
16
16
  end
17
17
 
18
18
  def self.valid?(data)
19
- return false if data.is_a?(Struct) || (defined?(OpenStruct) && data.is_a?(OpenStruct))
19
+ return false if data.is_a?(::Struct) || (defined?(OpenStruct) && data.is_a?(OpenStruct))
20
20
 
21
21
  data.is_a?(ActiveRecord::Associations::CollectionProxy) ||
22
22
  data.is_a?(ActiveRecord::Relation) ||
23
- (data.is_a?(Enumerable) && data.first.is_a?(ActiveRecord::Base))
23
+ (data.is_a?(Enumerable) && !data.is_a?(Range) && data.first.is_a?(ActiveRecord::Base))
24
24
  end
25
25
 
26
26
  def summary
@@ -4,30 +4,37 @@ module Nazar
4
4
  module Formatter
5
5
  class Struct
6
6
  def initialize(item)
7
- @collection = Array(item)
8
- @attributes = item.to_h.keys
9
- @item = item
7
+ @collection = item.is_a?(Array) ? item : [item]
8
+ @attributes = @collection.first.to_h.keys
10
9
  end
11
10
 
12
11
  def self.valid?(data)
12
+ valid_struct?(data) || (data.is_a?(Array) && data.all? { valid_struct?(_1) })
13
+ end
14
+
15
+ def self.valid_struct?(data)
13
16
  data.is_a?(::Struct) || data.is_a?(::OpenStruct)
14
17
  end
15
18
 
16
19
  def valid?
17
- true
20
+ @attributes.any?
18
21
  end
19
22
 
20
23
  def headers
21
- HeadersFormatter.new(attributes).format
24
+ HeadersFormatter.new(@attributes).format
22
25
  end
23
26
 
24
27
  def cells
25
28
  @cells ||= @collection.map do |item|
26
- item.each_pair do |_, value|
29
+ item.to_h.values.map do |value|
27
30
  CellFormatter.new(value, type: nil).format
28
31
  end
29
32
  end
30
33
  end
34
+
35
+ def summary
36
+ false
37
+ end
31
38
  end
32
39
  end
33
40
  end
data/lib/nazar/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nazar
4
- VERSION = '1.3.0'
4
+ VERSION = '1.3.2'
5
5
  end
data/nazar.gemspec CHANGED
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength
31
31
  spec.add_development_dependency 'simplecov', '~> 0.20'
32
32
  spec.add_development_dependency 'sqlite3', '~> 1.0'
33
33
 
34
- spec.add_runtime_dependency 'dry-configurable', '~> 0.12'
34
+ spec.add_runtime_dependency 'dry-configurable', '~> 1.2'
35
35
  spec.add_runtime_dependency 'pastel', '~> 0.8'
36
36
  spec.add_runtime_dependency 'tty-pager', '~> 0.14'
37
37
  spec.add_runtime_dependency 'tty-screen', '~> 0.8'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nazar
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michał Krzyżanowski
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-07-01 00:00:00.000000000 Z
11
+ date: 2024-08-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -92,14 +92,14 @@ dependencies:
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: '0.12'
95
+ version: '1.2'
96
96
  type: :runtime
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '0.12'
102
+ version: '1.2'
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: pastel
105
105
  requirement: !ruby/object:Gem::Requirement