nazar 1.3.0 → 1.3.1

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: 9ec818a6ac5c3b06e2544c97f8af1239fc25489f3098f9ca93557458a84d3aa6
4
+ data.tar.gz: febf9e37e281d3443d5d89924584d59383faa813cb8e346700355eae0ecc3975
5
5
  SHA512:
6
- metadata.gz: ab38635347ebc90e8439b8a59af77b52c38f90a73a58dfd347506e6b2c1c923b4e0a8f890bad5de1d1554eb9612871b14577bc26ca264dd36db3b391b645841b
7
- data.tar.gz: 0b0f71f05886d5b65728ab935c0ae3bbcce5ee3411e4eeadb7639e30ec0133a3c6e023127ca6b981ee075db1a60819c2a9f2cf9ea78c2174c6dd86fd021abbc8
6
+ metadata.gz: 8b236ed7da8a4aceb2c60de3ec716b65af4ff823899bd5194613f6cb264396722c31d90903a30a7482a5b6426b2fe0ffa6dca89e8fa412532f46f66dd919a123
7
+ data.tar.gz: 2a0e0ac62a27f00ff1a36f9422ef4ed2ac9f86621ad3533b4b62b25080f598f19249b3584500f1e5a0f3dfda23150227320bba0a52bb950388e214bc3310ddb3
@@ -16,7 +16,7 @@ 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) ||
@@ -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.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
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.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michał Krzyżanowski