code0-license 0.1.0 → 0.2.0

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: 8dfaf3a42ef1ce5ff31278efad3b056e7b1ddddea1f7efd2127a1cfe40a84def
4
- data.tar.gz: 7c8677d8ac90e245476b4693759325046383f59cf81ea2dc44e30b11e855984c
3
+ metadata.gz: 58f84fcd4c3ba444e2b5c22ba55e7b995b61254815f08743ad18a2851cfe335f
4
+ data.tar.gz: 945497d44a33b64539d98d39183eb2c5f83a36f4d03748be2c108f800bf775b3
5
5
  SHA512:
6
- metadata.gz: '0196591d15caf009be98dd60b476a2642fcd8ae4bc2535b00406eaf134c48a003c4605d1c9999b89db62db1091a50423dabaa18543cbb9e94058dfaa29358689'
7
- data.tar.gz: f509897df098ea964896d6edf7e08a49de6e1ea113c315d5c620d039b4a62acad09e4b58122b68ea23e9178b4e842c11722eb3733adf18bb587122db5572795e
6
+ metadata.gz: d3a0196b5a041a75638280cbc84ec8f80e612efd4207fac969748ecf7f1d6c7e83c3848b422f27b4ecc10dea22af940694226efe0f705a8dc268c0bf7b824315
7
+ data.tar.gz: 425ae6074bf97210643a8fe21811f67471cc736fcc9d19a5af105f065de18c782991b9176ed00a306f15dd445627b4ae5d16c1d9d2d7c750d256d049acb8aff9
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- code0-license (0.1.0)
4
+ code0-license (0.2.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/keys/.keep ADDED
File without changes
@@ -20,7 +20,7 @@ module Code0
20
20
 
21
21
  def remove_boundary(data)
22
22
  after_boundary = data.split(BOUNDARY_START).last
23
- after_boundary.split(BOUNDARY_END).first
23
+ after_boundary&.split(BOUNDARY_END)&.first
24
24
  end
25
25
 
26
26
  private
@@ -42,6 +42,7 @@ module Code0
42
42
 
43
43
  def decrypt(data)
44
44
  raise KeyError, "Provided key is not a public key." unless key.public?
45
+ raise DecryptionError, "Provided data is nil" if data.nil?
45
46
 
46
47
  json_data = Base64.decode64(data.chomp)
47
48
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Code0
4
4
  class License
5
- VERSION = "0.1.0"
5
+ VERSION = "0.2.0"
6
6
  end
7
7
  end
data/lib/code0/license.rb CHANGED
@@ -28,7 +28,7 @@ module Code0
28
28
 
29
29
  decrypted_license = encryptor.decrypt(data)
30
30
 
31
- new(JSON.parse(decrypted_license))
31
+ new(JSON.parse(decrypted_license, symbolize_names: true))
32
32
  rescue JSON::ParserError
33
33
  raise ValidationError, "License data is invalid JSON"
34
34
  end
@@ -60,19 +60,23 @@ module Code0
60
60
  def valid?
61
61
  return false if !licensee || !licensee.is_a?(Hash) || licensee.empty?
62
62
  return false if !start_date || !start_date.is_a?(Date)
63
- return false if (!end_date || !end_date.is_a?(Date)) && !options["allow_missing_end_date"]
63
+ return false if (!end_date || !end_date.is_a?(Date)) && !options[:allow_missing_end_date]
64
64
 
65
65
  true
66
66
  end
67
67
 
68
68
  def in_active_time?
69
69
  return false if start_date > Date.today
70
- return true if !end_date && options["allow_missing_end_date"]
71
- return false if !end_date && !options["allow_missing_end_date"]
70
+ return true if !end_date && options[:allow_missing_end_date]
71
+ return false if !end_date && !options[:allow_missing_end_date]
72
72
 
73
73
  end_date >= Date.today
74
74
  end
75
75
 
76
+ def restricted?(attribute)
77
+ restrictions.key?(attribute)
78
+ end
79
+
76
80
  def data
77
81
  ATTRIBUTES.to_h { |attr| [attr, send(attr)] }
78
82
  end
@@ -82,15 +86,15 @@ module Code0
82
86
  attr_writer(*ATTRIBUTES)
83
87
 
84
88
  def assign_attributes(data)
85
- %w[start_date end_date].each do |property|
89
+ %i[start_date end_date].each do |property|
86
90
  value = data[property]
87
91
  value = parse_date(data[property]) unless data[property].is_a?(Date)
88
92
  send("#{property}=", value)
89
93
  end
90
94
 
91
- send("licensee=", data["licensee"])
92
- send("restrictions=", data["restrictions"] || {})
93
- send("options=", data["options"] || {})
95
+ send("licensee=", data[:licensee])
96
+ send("restrictions=", data[:restrictions] || {})
97
+ send("options=", data[:options] || {})
94
98
  end
95
99
 
96
100
  def parse_date(str)
@@ -18,11 +18,13 @@ module Code0
18
18
 
19
19
  def in_active_time?: -> bool
20
20
 
21
+ def restricted?: (Symbol) -> bool
22
+
21
23
  def valid?: -> bool
22
24
 
23
25
  private
24
26
 
25
- def assign_attributes: (Hash[String, any]) -> void
27
+ def assign_attributes: (Hash[Symbol, any]) -> void
26
28
 
27
29
  def parse_date: (String) -> Date?
28
30
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: code0-license
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Niklas van Schrick
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-05-01 00:00:00.000000000 Z
11
+ date: 2024-05-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -95,6 +95,7 @@ files:
95
95
  - LICENSE.txt
96
96
  - README.md
97
97
  - Rakefile
98
+ - keys/.keep
98
99
  - lib/code0/license.rb
99
100
  - lib/code0/license/boundary.rb
100
101
  - lib/code0/license/encryptor.rb