paginae 0.1.1 → 0.1.4

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: 0fed449ee351d20673ddde0253a1d1c9e5629f867f57d68881a9643f5e08ddb8
4
- data.tar.gz: 3df2d823fd0345e9dc8ac55b57e018d923cb9f25c76c69dd0f07dfba28162ce7
3
+ metadata.gz: 51b81660d03e3fb92a5cb8ab12995813ee979be57ce6b3a2971acab57e590418
4
+ data.tar.gz: ef8989a64d197557315a0f7390bd14b8279ead060f6187f7b6fdb7b99f0f2fe1
5
5
  SHA512:
6
- metadata.gz: 55ac3c136812b08377cb5da47d032758042a679b6e03f0fb5026da6e32cdc8190438ff421a394c6c69d567d97f12d7377b71f9ffcecd382bb1213e8f84c67470
7
- data.tar.gz: 9b1d020e546b8d19adbc5e063f92c299309333a2ec81d5d22bcabddc244aa26c390a6d24350b539bbf025121b603f2c214fc7d2bd83538f29f4ee37594084308
6
+ metadata.gz: d42ea335bf766e4eaf371036b515e92792f86fa3c80a23355cff2c63b8e280efaa5a3b76f7d0e7cfabd11f2e914f843a1a5e2e8156af37ca83a15f7257fa944a
7
+ data.tar.gz: 1338900ec4e6ebbd83917824610bfdb7c65d9cac3150dcc530e931e03e324f005a1a197fb2f5118895fbbf84ceb15d256b1ba64a3aba2edd134fd0b680067a20
data/.rubocop_todo.yml CHANGED
@@ -15,12 +15,12 @@ Metrics/AbcSize:
15
15
  # Offense count: 1
16
16
  # Configuration parameters: IgnoredMethods.
17
17
  Metrics/CyclomaticComplexity:
18
- Max: 22
18
+ Max: 27
19
19
 
20
20
  # Offense count: 1
21
21
  # Configuration parameters: IgnoredMethods.
22
22
  Metrics/PerceivedComplexity:
23
- Max: 22
23
+ Max: 27
24
24
 
25
25
  Metrics/MethodLength:
26
26
  Exclude:
data/Gemfile CHANGED
@@ -4,8 +4,7 @@ source "https://rubygems.org"
4
4
 
5
5
  gemspec
6
6
 
7
- gem "minitest", "~> 5.0"
8
- gem "rake", "~> 13.0"
9
- gem "rubocop", "~> 1.21"
10
-
11
7
  gem "debug", "~> 1.5"
8
+ gem "minitest", "~> 5.15"
9
+ gem "rake", "~> 13.0"
10
+ gem "rubocop", "~> 1.29"
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- paginae (0.1.0)
4
+ paginae (0.1.2)
5
5
  nokogiri (>= 1.13.4)
6
6
 
7
7
  GEM
@@ -15,11 +15,11 @@ GEM
15
15
  irb (1.4.1)
16
16
  reline (>= 0.3.0)
17
17
  minitest (5.15.0)
18
- nokogiri (1.13.4-arm64-darwin)
18
+ nokogiri (1.13.6-arm64-darwin)
19
19
  racc (~> 1.4)
20
- nokogiri (1.13.4-x86_64-darwin)
20
+ nokogiri (1.13.6-x86_64-darwin)
21
21
  racc (~> 1.4)
22
- nokogiri (1.13.4-x86_64-linux)
22
+ nokogiri (1.13.6-x86_64-linux)
23
23
  racc (~> 1.4)
24
24
  parallel (1.22.1)
25
25
  parser (3.1.2.0)
@@ -27,20 +27,20 @@ GEM
27
27
  racc (1.6.0)
28
28
  rainbow (3.1.1)
29
29
  rake (13.0.6)
30
- regexp_parser (2.3.1)
30
+ regexp_parser (2.4.0)
31
31
  reline (0.3.1)
32
32
  io-console (~> 0.5)
33
33
  rexml (3.2.5)
34
- rubocop (1.28.2)
34
+ rubocop (1.29.1)
35
35
  parallel (~> 1.10)
36
36
  parser (>= 3.1.0.0)
37
37
  rainbow (>= 2.2.2, < 4.0)
38
38
  regexp_parser (>= 1.8, < 3.0)
39
- rexml
39
+ rexml (>= 3.2.5, < 4.0)
40
40
  rubocop-ast (>= 1.17.0, < 2.0)
41
41
  ruby-progressbar (~> 1.7)
42
42
  unicode-display_width (>= 1.4.0, < 3.0)
43
- rubocop-ast (1.17.0)
43
+ rubocop-ast (1.18.0)
44
44
  parser (>= 3.1.1.0)
45
45
  ruby-progressbar (1.11.0)
46
46
  unicode-display_width (2.1.0)
@@ -52,10 +52,10 @@ PLATFORMS
52
52
 
53
53
  DEPENDENCIES
54
54
  debug (~> 1.5)
55
- minitest (~> 5.0)
55
+ minitest (~> 5.15)
56
56
  paginae!
57
57
  rake (~> 13.0)
58
- rubocop (~> 1.21)
58
+ rubocop (~> 1.29)
59
59
 
60
60
  BUNDLED WITH
61
61
  2.3.7
@@ -3,6 +3,15 @@
3
3
  module Paginae
4
4
  module AttributeInjector
5
5
  def self.extended(base)
6
+ base.class_eval do
7
+ def data
8
+ instance_variables
9
+ .reject { |var| var.to_s =~ /_node/ }
10
+ .to_h { |var| [var.to_s.sub("@", "").to_sym, instance_variable_get(var)] }
11
+ .compact
12
+ end
13
+ end
14
+
6
15
  class << base
7
16
  def attribute(name, **kwargs)
8
17
  __define_node(name, **kwargs)
@@ -41,6 +50,8 @@ module Paginae
41
50
  __define_map_reader(name, **kwargs)
42
51
  elsif kwargs.key?(:listed)
43
52
  __define_list_reader(name, **kwargs)
53
+ elsif kwargs.key?(:value)
54
+ __define_value_reader(name, **kwargs)
44
55
  else
45
56
  __define_text_reader(name)
46
57
  end
@@ -71,7 +82,7 @@ module Paginae
71
82
  list = send("__#{name}_nodes")&.map do |node|
72
83
  case kwargs[:listed]
73
84
  when TrueClass
74
- node&.text
85
+ node&.text&.strip
75
86
  when Symbol
76
87
  send(kwargs[:listed], node)
77
88
  when Proc
@@ -86,7 +97,18 @@ module Paginae
86
97
 
87
98
  def __define_text_reader(name)
88
99
  define_method name do
89
- send("__#{name}_node")&.text&.gsub(/\s+/, " ")&.strip
100
+ return instance_variable_get("@#{name}") if instance_variable_defined?("@#{name}")
101
+
102
+ instance_variable_set("@#{name}", send("__#{name}_node")&.text&.gsub(/\s+/, " ")&.strip)
103
+ end
104
+ end
105
+
106
+ def __define_value_reader(name, **kwargs)
107
+ define_method name do
108
+ return instance_variable_get("@#{name}") if instance_variable_defined?("@#{name}")
109
+
110
+ instance_variable_set("@#{name}",
111
+ send("__#{name}_node")&.attribute(kwargs[:value].to_s)&.value&.gsub(/\s+/, " ")&.strip)
90
112
  end
91
113
  end
92
114
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Paginae
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.4"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paginae
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luis Ezcurdia
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-05-02 00:00:00.000000000 Z
11
+ date: 2022-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri