yarnlock 0.3.0 → 0.3.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
  SHA1:
3
- metadata.gz: af3024a8288b05e32849c894d206057929eb3aff
4
- data.tar.gz: 63c3d23cc6244661469d2f8e2f0d5ef0d9568a6b
3
+ metadata.gz: 56b7cb2aa7b04d90504e8b13f53d392248d9c3f6
4
+ data.tar.gz: bed04cfa2af45f81d634716db450a516cad14532
5
5
  SHA512:
6
- metadata.gz: 4f6c3dd8114faead13890685917e963483836574a56277f865553208d0462f9c9ecf6bfba013788197d2cd2d511d7c5fd90d2c397c45c71506066f87f2dd916d
7
- data.tar.gz: a3252b023dc619b85834748278e70fb25001a995d457a397776d9f0475e1cff6e4490e23f09ce041ea18f5bd9138ee9fc6ff868a259729d18d8af749fdef3f09
6
+ metadata.gz: 9ea8bcdd0054f919b12d8442cbe4ee0de71deac29a79c948dca55db892e778996b6a4906169640632e024c687940d342709c3a9fb9877c30e93643117427b37d
7
+ data.tar.gz: 9ab389caa79bd4f391e1530964900248a8dc004450bf6d27bb3a57d2289447afebf152f3403cf437d34d4d0ab50f00832adbb4775896c10da779e9f880b35694
@@ -1,29 +1,40 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'semantic/core_ext'
3
+ require 'semantic'
4
4
 
5
5
  module Yarnlock
6
6
  class Entry
7
- attr_accessor :package, :version_ranges, :version, :resolved, :dependencies
7
+ attr_accessor :package, :version_ranges, :resolved, :dependencies
8
+ attr_reader :version
8
9
 
9
10
  def self.parse(pattern, entry)
10
11
  new.parse pattern, entry
11
12
  end
12
13
 
13
14
  def parse(pattern, entry)
14
- @version_ranges = []
15
+ self.version_ranges = []
15
16
  pattern.split(', ').each do |package_version|
16
- @package, version_range = package_version.split(/(?!^)@/)
17
- @version_ranges << version_range
17
+ self.package, version_range = package_version.split(/(?!^)@/)
18
+ version_ranges << version_range
18
19
  end
19
20
 
20
- @version = entry['version'].to_version
21
- @resolved = entry['resolved']
22
- @dependencies = entry['dependencies']
21
+ self.version = entry['version']
22
+ self.resolved = entry['resolved']
23
+ self.dependencies = entry['dependencies']
23
24
 
24
25
  self
25
26
  end
26
27
 
28
+ def initialize(attributes = {})
29
+ attributes.each do |key, val|
30
+ send "#{key}=", val
31
+ end
32
+ end
33
+
34
+ def version=(version)
35
+ @version = version.is_a?(String) ? Semantic::Version.new(version) : version
36
+ end
37
+
27
38
  def to_h
28
39
  pattern = version_ranges.map do |version_range|
29
40
  "#{package}@#{version_range}"
@@ -48,5 +59,13 @@ module Yarnlock
48
59
  def ==(other)
49
60
  other.is_a?(self.class) && other.to_h == to_h
50
61
  end
62
+
63
+ def eql?(other)
64
+ self == other
65
+ end
66
+
67
+ def hash
68
+ to_h.hash
69
+ end
51
70
  end
52
71
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'semantic'
4
-
5
3
  module Yarnlock
6
4
  class Entry
7
5
  module Collection
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Yarnlock
4
- VERSION = '0.3.0'
4
+ VERSION = '0.3.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yarnlock
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hiroki Shimizu