Class: LicenseFinder::Decisions
- Inherits:
-
Object
- Object
- LicenseFinder::Decisions
- Defined in:
- lib/license_finder/decisions.rb
Defined Under Namespace
Classes: TXN
Instance Attribute Summary collapse
-
#ignored ⇒ Object
readonly
READ.
-
#ignored_groups ⇒ Object
readonly
READ.
-
#packages ⇒ Object
readonly
READ.
-
#permitted ⇒ Object
readonly
READ.
-
#project_name ⇒ Object
readonly
READ.
-
#restricted ⇒ Object
readonly
READ.
Class Method Summary collapse
Instance Method Summary collapse
- #add_package(name, version, txn = {}) ⇒ Object
- #approval_of(name, version = nil) ⇒ Object
- #approve(name, txn = {}) ⇒ Object
- #approved?(name, version = nil) ⇒ Boolean
- #heed(name, txn = {}) ⇒ Object
- #heed_group(name, txn = {}) ⇒ Object
- #homepage(name, homepage, txn = {}) ⇒ Object
- #homepage_of(name) ⇒ Object
- #ignore(name, txn = {}) ⇒ Object
- #ignore_group(name, txn = {}) ⇒ Object
- #ignored?(name) ⇒ Boolean
- #ignored_group?(name) ⇒ Boolean
-
#initialize ⇒ Decisions
constructor
A new instance of Decisions.
- #license(name, lic, txn = {}) ⇒ Object
- #licenses_of(name) ⇒ Object
- #name_project(name, txn = {}) ⇒ Object
- #permit(lic, txn = {}) ⇒ Object
- #permitted?(lic) ⇒ Boolean
- #persist ⇒ Object
- #remove_package(name, txn = {}) ⇒ Object
- #restrict(lic, txn = {}) ⇒ Object
- #restricted?(lic) ⇒ Boolean
- #save!(file) ⇒ Object
- #unapprove(name, txn = {}) ⇒ Object
- #unlicense(name, lic, txn = {}) ⇒ Object
- #unname_project(txn = {}) ⇒ Object
- #unpermit(lic, txn = {}) ⇒ Object
- #unrestrict(lic, txn = {}) ⇒ Object
- #write!(value, file) ⇒ Object
Constructor Details
#initialize ⇒ Decisions
Returns a new instance of Decisions.
65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/license_finder/decisions.rb', line 65 def initialize @decisions = [] @packages = Set.new @licenses = Hash.new { |h, k| h[k] = Set.new } @homepages = {} @approvals = {} @permitted = Set.new @restricted = Set.new @ignored = Set.new @ignored_groups = Set.new end |
Instance Attribute Details
#ignored ⇒ Object (readonly)
READ
9 10 11 |
# File 'lib/license_finder/decisions.rb', line 9 def ignored @ignored end |
#ignored_groups ⇒ Object (readonly)
READ
9 10 11 |
# File 'lib/license_finder/decisions.rb', line 9 def ignored_groups @ignored_groups end |
#packages ⇒ Object (readonly)
READ
9 10 11 |
# File 'lib/license_finder/decisions.rb', line 9 def packages @packages end |
#permitted ⇒ Object (readonly)
READ
9 10 11 |
# File 'lib/license_finder/decisions.rb', line 9 def permitted @permitted end |
#project_name ⇒ Object (readonly)
READ
9 10 11 |
# File 'lib/license_finder/decisions.rb', line 9 def project_name @project_name end |
#restricted ⇒ Object (readonly)
READ
9 10 11 |
# File 'lib/license_finder/decisions.rb', line 9 def restricted @restricted end |
Class Method Details
.fetch_saved(file) ⇒ Object
PERSIST
187 188 189 |
# File 'lib/license_finder/decisions.rb', line 187 def self.fetch_saved(file) restore(read!(file)) end |
.read!(file) ⇒ Object
210 211 212 |
# File 'lib/license_finder/decisions.rb', line 210 def self.read!(file) file.read if file.exist? end |
.restore(persisted) ⇒ Object
195 196 197 198 199 200 201 202 203 204 |
# File 'lib/license_finder/decisions.rb', line 195 def self.restore(persisted) result = new return result unless persisted actions = YAML.load(persisted) (actions || []).each do |action, *args| result.send(action, *args) end result end |
Instance Method Details
#add_package(name, version, txn = {}) ⇒ Object
77 78 79 80 81 |
# File 'lib/license_finder/decisions.rb', line 77 def add_package(name, version, txn = {}) @decisions << [:add_package, name, version, txn] @packages << ManualPackage.new(name, version) self end |
#approval_of(name, version = nil) ⇒ Object
19 20 21 22 23 24 25 26 27 |
# File 'lib/license_finder/decisions.rb', line 19 def approval_of(name, version = nil) if !@approvals.key?(name) nil elsif !version.nil? @approvals[name] if @approvals[name][:safe_versions].empty? || @approvals[name][:safe_versions].include?(version) elsif @approvals[name][:safe_versions].empty? @approvals[name] end end |
#approve(name, txn = {}) ⇒ Object
107 108 109 110 111 112 113 114 115 |
# File 'lib/license_finder/decisions.rb', line 107 def approve(name, txn = {}) @decisions << [:approve, name, txn] versions = [] versions = @approvals[name][:safe_versions] if @approvals.key?(name) @approvals[name] = TXN.from_hash(txn, versions) @approvals[name][:safe_versions].concat(txn[:versions]) unless txn[:versions].nil? self end |
#approved?(name, version = nil) ⇒ Boolean
29 30 31 32 33 34 35 36 37 |
# File 'lib/license_finder/decisions.rb', line 29 def approved?(name, version = nil) if !@approvals.key?(name) nil elsif !version.nil? @approvals.key?(name) && @approvals[name][:safe_versions].empty? || @approvals[name][:safe_versions].include?(version) else @approvals.key?(name) end end |
#heed(name, txn = {}) ⇒ Object
153 154 155 156 157 |
# File 'lib/license_finder/decisions.rb', line 153 def heed(name, txn = {}) @decisions << [:heed, name, txn] @ignored.delete(name) self end |
#heed_group(name, txn = {}) ⇒ Object
165 166 167 168 169 |
# File 'lib/license_finder/decisions.rb', line 165 def heed_group(name, txn = {}) @decisions << [:heed_group, name, txn] @ignored_groups.delete(name) self end |
#homepage(name, homepage, txn = {}) ⇒ Object
101 102 103 104 105 |
# File 'lib/license_finder/decisions.rb', line 101 def homepage(name, homepage, txn = {}) @decisions << [:homepage, name, homepage, txn] @homepages[name] = homepage self end |
#homepage_of(name) ⇒ Object
15 16 17 |
# File 'lib/license_finder/decisions.rb', line 15 def homepage_of(name) @homepages[name] end |
#ignore(name, txn = {}) ⇒ Object
147 148 149 150 151 |
# File 'lib/license_finder/decisions.rb', line 147 def ignore(name, txn = {}) @decisions << [:ignore, name, txn] @ignored << name self end |
#ignore_group(name, txn = {}) ⇒ Object
159 160 161 162 163 |
# File 'lib/license_finder/decisions.rb', line 159 def ignore_group(name, txn = {}) @decisions << [:ignore_group, name, txn] @ignored_groups << name self end |
#ignored?(name) ⇒ Boolean
47 48 49 |
# File 'lib/license_finder/decisions.rb', line 47 def ignored?(name) @ignored.include?(name) end |
#ignored_group?(name) ⇒ Boolean
51 52 53 |
# File 'lib/license_finder/decisions.rb', line 51 def ignored_group?(name) @ignored_groups.include?(name) end |
#license(name, lic, txn = {}) ⇒ Object
89 90 91 92 93 |
# File 'lib/license_finder/decisions.rb', line 89 def license(name, lic, txn = {}) @decisions << [:license, name, lic, txn] @licenses[name] << License.find_by_name(lic) self end |
#licenses_of(name) ⇒ Object
11 12 13 |
# File 'lib/license_finder/decisions.rb', line 11 def licenses_of(name) @licenses[name] end |
#name_project(name, txn = {}) ⇒ Object
171 172 173 174 175 |
# File 'lib/license_finder/decisions.rb', line 171 def name_project(name, txn = {}) @decisions << [:name_project, name, txn] @project_name = name self end |
#permit(lic, txn = {}) ⇒ Object
123 124 125 126 127 |
# File 'lib/license_finder/decisions.rb', line 123 def permit(lic, txn = {}) @decisions << [:permit, lic, txn] @permitted << License.find_by_name(lic) self end |
#permitted?(lic) ⇒ Boolean
39 40 41 |
# File 'lib/license_finder/decisions.rb', line 39 def permitted?(lic) @permitted.include?(lic) end |
#persist ⇒ Object
206 207 208 |
# File 'lib/license_finder/decisions.rb', line 206 def persist YAML.dump(@decisions) end |
#remove_package(name, txn = {}) ⇒ Object
83 84 85 86 87 |
# File 'lib/license_finder/decisions.rb', line 83 def remove_package(name, txn = {}) @decisions << [:remove_package, name, txn] @packages.delete(ManualPackage.new(name)) self end |
#restrict(lic, txn = {}) ⇒ Object
135 136 137 138 139 |
# File 'lib/license_finder/decisions.rb', line 135 def restrict(lic, txn = {}) @decisions << [:restrict, lic, txn] @restricted << License.find_by_name(lic) self end |
#restricted?(lic) ⇒ Boolean
43 44 45 |
# File 'lib/license_finder/decisions.rb', line 43 def restricted?(lic) @restricted.include?(lic) end |
#save!(file) ⇒ Object
191 192 193 |
# File 'lib/license_finder/decisions.rb', line 191 def save!(file) write!(persist, file) end |
#unapprove(name, txn = {}) ⇒ Object
117 118 119 120 121 |
# File 'lib/license_finder/decisions.rb', line 117 def unapprove(name, txn = {}) @decisions << [:unapprove, name, txn] @approvals.delete(name) self end |
#unlicense(name, lic, txn = {}) ⇒ Object
95 96 97 98 99 |
# File 'lib/license_finder/decisions.rb', line 95 def unlicense(name, lic, txn = {}) @decisions << [:unlicense, name, lic, txn] @licenses[name].delete(License.find_by_name(lic)) self end |
#unname_project(txn = {}) ⇒ Object
177 178 179 180 181 |
# File 'lib/license_finder/decisions.rb', line 177 def unname_project(txn = {}) @decisions << [:unname_project, txn] @project_name = nil self end |
#unpermit(lic, txn = {}) ⇒ Object
129 130 131 132 133 |
# File 'lib/license_finder/decisions.rb', line 129 def unpermit(lic, txn = {}) @decisions << [:unpermit, lic, txn] @permitted.delete(License.find_by_name(lic)) self end |
#unrestrict(lic, txn = {}) ⇒ Object
141 142 143 144 145 |
# File 'lib/license_finder/decisions.rb', line 141 def unrestrict(lic, txn = {}) @decisions << [:unrestrict, lic, txn] @restricted.delete(License.find_by_name(lic)) self end |
#write!(value, file) ⇒ Object
214 215 216 217 218 219 |
# File 'lib/license_finder/decisions.rb', line 214 def write!(value, file) file.dirname.mkpath file.open('w+') do |f| f.print value end end |