Class: LicenseFinder::Decisions
- Inherits:
-
Object
- Object
- LicenseFinder::Decisions
- Defined in:
- lib/license_finder/decisions.rb
Defined Under Namespace
Classes: TXN
Instance Attribute Summary collapse
-
#blacklisted ⇒ Object
readonly
READ.
-
#ignored ⇒ Object
readonly
READ.
-
#ignored_groups ⇒ Object
readonly
READ.
-
#packages ⇒ Object
readonly
READ.
-
#project_name ⇒ Object
readonly
READ.
-
#whitelisted ⇒ 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
- #blacklist(lic, txn = {}) ⇒ Object
- #blacklisted?(lic) ⇒ Boolean
- #heed(name, txn = {}) ⇒ Object
- #heed_group(name, txn = {}) ⇒ 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
- #persist ⇒ Object
- #remove_package(name, txn = {}) ⇒ Object
- #save!(file) ⇒ Object
- #unapprove(name, txn = {}) ⇒ Object
- #unblacklist(lic, txn = {}) ⇒ Object
- #unlicense(name, lic, txn = {}) ⇒ Object
- #unname_project(txn = {}) ⇒ Object
- #unwhitelist(lic, txn = {}) ⇒ Object
- #whitelist(lic, txn = {}) ⇒ Object
- #whitelisted?(lic) ⇒ Boolean
- #write!(value, file) ⇒ Object
Constructor Details
#initialize ⇒ Decisions
Returns a new instance of Decisions.
59 60 61 62 63 64 65 66 67 68 |
# File 'lib/license_finder/decisions.rb', line 59 def initialize @decisions = [] @packages = Set.new @licenses = Hash.new { |h, k| h[k] = Set.new } @approvals = {} @whitelisted = Set.new @blacklisted = Set.new @ignored = Set.new @ignored_groups = Set.new end |
Instance Attribute Details
#blacklisted ⇒ Object (readonly)
READ
7 8 9 |
# File 'lib/license_finder/decisions.rb', line 7 def blacklisted @blacklisted end |
#ignored ⇒ Object (readonly)
READ
7 8 9 |
# File 'lib/license_finder/decisions.rb', line 7 def ignored @ignored end |
#ignored_groups ⇒ Object (readonly)
READ
7 8 9 |
# File 'lib/license_finder/decisions.rb', line 7 def ignored_groups @ignored_groups end |
#packages ⇒ Object (readonly)
READ
7 8 9 |
# File 'lib/license_finder/decisions.rb', line 7 def packages @packages end |
#project_name ⇒ Object (readonly)
READ
7 8 9 |
# File 'lib/license_finder/decisions.rb', line 7 def project_name @project_name end |
#whitelisted ⇒ Object (readonly)
READ
7 8 9 |
# File 'lib/license_finder/decisions.rb', line 7 def whitelisted @whitelisted end |
Class Method Details
.fetch_saved(file) ⇒ Object
PERSIST
178 179 180 |
# File 'lib/license_finder/decisions.rb', line 178 def self.fetch_saved(file) restore(read!(file)) end |
.read!(file) ⇒ Object
201 202 203 |
# File 'lib/license_finder/decisions.rb', line 201 def self.read!(file) file.read if file.exist? end |
.restore(persisted) ⇒ Object
186 187 188 189 190 191 192 193 194 195 |
# File 'lib/license_finder/decisions.rb', line 186 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
70 71 72 73 74 |
# File 'lib/license_finder/decisions.rb', line 70 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
13 14 15 16 17 18 19 20 21 |
# File 'lib/license_finder/decisions.rb', line 13 def approval_of(name, version=nil) if !@approvals.has_key?(name) nil elsif version != nil @approvals[name] if @approvals[name][:safe_versions].empty? || @approvals[name][:safe_versions].include?(version) else @approvals[name] if @approvals[name][:safe_versions].empty? end end |
#approve(name, txn = {}) ⇒ Object
94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/license_finder/decisions.rb', line 94 def approve(name, txn = {}) @decisions << [:approve, name, txn] versions = [] if @approvals.has_key?(name) versions = @approvals[name][:safe_versions] end @approvals[name] = TXN.from_hash(txn) @approvals[name][:safe_versions].concat(versions) self end |
#approved?(name, version = nil) ⇒ Boolean
23 24 25 26 27 28 29 30 31 |
# File 'lib/license_finder/decisions.rb', line 23 def approved?(name, version=nil) if !@approvals.has_key?(name) nil elsif version != nil @approvals.has_key?(name) && @approvals[name][:safe_versions].empty? || @approvals[name][:safe_versions].include?(version) else @approvals.has_key?(name) end end |
#blacklist(lic, txn = {}) ⇒ Object
126 127 128 129 130 |
# File 'lib/license_finder/decisions.rb', line 126 def blacklist(lic, txn = {}) @decisions << [:blacklist, lic, txn] @blacklisted << License.find_by_name(lic) self end |
#blacklisted?(lic) ⇒ Boolean
37 38 39 |
# File 'lib/license_finder/decisions.rb', line 37 def blacklisted?(lic) @blacklisted.include?(lic) end |
#heed(name, txn = {}) ⇒ Object
144 145 146 147 148 |
# File 'lib/license_finder/decisions.rb', line 144 def heed(name, txn = {}) @decisions << [:heed, name, txn] @ignored.delete(name) self end |
#heed_group(name, txn = {}) ⇒ Object
156 157 158 159 160 |
# File 'lib/license_finder/decisions.rb', line 156 def heed_group(name, txn = {}) @decisions << [:heed_group, name, txn] @ignored_groups.delete(name) self end |
#ignore(name, txn = {}) ⇒ Object
138 139 140 141 142 |
# File 'lib/license_finder/decisions.rb', line 138 def ignore(name, txn = {}) @decisions << [:ignore, name, txn] @ignored << name self end |
#ignore_group(name, txn = {}) ⇒ Object
150 151 152 153 154 |
# File 'lib/license_finder/decisions.rb', line 150 def ignore_group(name, txn = {}) @decisions << [:ignore_group, name, txn] @ignored_groups << name self end |
#ignored?(name) ⇒ Boolean
41 42 43 |
# File 'lib/license_finder/decisions.rb', line 41 def ignored?(name) @ignored.include?(name) end |
#ignored_group?(name) ⇒ Boolean
45 46 47 |
# File 'lib/license_finder/decisions.rb', line 45 def ignored_group?(name) @ignored_groups.include?(name) end |
#license(name, lic, txn = {}) ⇒ Object
82 83 84 85 86 |
# File 'lib/license_finder/decisions.rb', line 82 def license(name, lic, txn = {}) @decisions << [:license, name, lic, txn] @licenses[name] << License.find_by_name(lic) self end |
#licenses_of(name) ⇒ Object
9 10 11 |
# File 'lib/license_finder/decisions.rb', line 9 def licenses_of(name) @licenses[name] end |
#name_project(name, txn = {}) ⇒ Object
162 163 164 165 166 |
# File 'lib/license_finder/decisions.rb', line 162 def name_project(name, txn = {}) @decisions << [:name_project, name, txn] @project_name = name self end |
#persist ⇒ Object
197 198 199 |
# File 'lib/license_finder/decisions.rb', line 197 def persist YAML.dump(@decisions) end |
#remove_package(name, txn = {}) ⇒ Object
76 77 78 79 80 |
# File 'lib/license_finder/decisions.rb', line 76 def remove_package(name, txn = {}) @decisions << [:remove_package, name, txn] @packages.delete(ManualPackage.new(name)) self end |
#save!(file) ⇒ Object
182 183 184 |
# File 'lib/license_finder/decisions.rb', line 182 def save!(file) write!(persist, file) end |
#unapprove(name, txn = {}) ⇒ Object
108 109 110 111 112 |
# File 'lib/license_finder/decisions.rb', line 108 def unapprove(name, txn = {}) @decisions << [:unapprove, name, txn] @approvals.delete(name) self end |
#unblacklist(lic, txn = {}) ⇒ Object
132 133 134 135 136 |
# File 'lib/license_finder/decisions.rb', line 132 def unblacklist(lic, txn = {}) @decisions << [:unblacklist, lic, txn] @blacklisted.delete(License.find_by_name(lic)) self end |
#unlicense(name, lic, txn = {}) ⇒ Object
88 89 90 91 92 |
# File 'lib/license_finder/decisions.rb', line 88 def unlicense(name, lic, txn= {}) @decisions << [:unlicense, name, lic, txn] @licenses[name].delete(License.find_by_name(lic)) self end |
#unname_project(txn = {}) ⇒ Object
168 169 170 171 172 |
# File 'lib/license_finder/decisions.rb', line 168 def unname_project(txn = {}) @decisions << [:unname_project, txn] @project_name = nil self end |
#unwhitelist(lic, txn = {}) ⇒ Object
120 121 122 123 124 |
# File 'lib/license_finder/decisions.rb', line 120 def unwhitelist(lic, txn = {}) @decisions << [:unwhitelist, lic, txn] @whitelisted.delete(License.find_by_name(lic)) self end |
#whitelist(lic, txn = {}) ⇒ Object
114 115 116 117 118 |
# File 'lib/license_finder/decisions.rb', line 114 def whitelist(lic, txn = {}) @decisions << [:whitelist, lic, txn] @whitelisted << License.find_by_name(lic) self end |
#whitelisted?(lic) ⇒ Boolean
33 34 35 |
# File 'lib/license_finder/decisions.rb', line 33 def whitelisted?(lic) @whitelisted.include?(lic) end |
#write!(value, file) ⇒ Object
205 206 207 208 209 210 |
# File 'lib/license_finder/decisions.rb', line 205 def write!(value, file) file.dirname.mkpath file.open('w+') do |f| f.print value end end |