class Minireq::Dsl::FpaDSL
FPA calculator Usage ```ruby include Minireq::Calc::FPA estimate do ILF 'Product', det: 20, ret: 3 ILF 'Customer', det: 20, ret: 2 ILF 'Order', det: 10, ret: 1 EO 'CustomerView', det: 20, ftr: 1 EI 'CustomerEdit', det: 20, ftr: 2 EQ 'CustomerEdit', det: 20, ftr: 2 characteristics ({ data_communications: 0, distributed_data_processing: 0, performance: 0, heavily_used_configuration: 0, transaction_rate: 0, online_data_entry: 0, enduser_efficiency: 3, online_update: 3, complex_processing: 3, reusability: 0, installation_ease: 3, operational_ease: 3, multiple_sites: 0, facilitate_change: 3 }) puts calculate end ```
end¶ ↑
Attributes
items[R]
- Hash<Object>
Public Class Methods
new()
click to toggle source
# File lib/minireq/dsl/fpa_dsl.rb, line 57 def initialize @items = {} @characteristics = {} @ufp = 0 end
Public Instance Methods
EI(object, det:, ftr:)
click to toggle source
# File lib/minireq/dsl/fpa_dsl.rb, line 78 def EI(object, det:, ftr:) hold(object, fun: :EI, det: det, ftr: ftr) @ufp += ufp(type: :EI, det: det, ftr: ftr) end
EIF(object, det:, ret:)
click to toggle source
# File lib/minireq/dsl/fpa_dsl.rb, line 73 def EIF(object, det:, ret:) hold(object, fun: :EIF, det: det, ret: ret) @ufp += ufp(type: :EIF, det: det, ret: ret) end
EO(object, det:, ftr:)
click to toggle source
# File lib/minireq/dsl/fpa_dsl.rb, line 83 def EO(object, det:, ftr:) hold(object, fun: :EO, det: det, ftr: ftr) @ufp += ufp(type: :EO, det: det, ftr: ftr) end
EQ(object, det:, ftr:)
click to toggle source
# File lib/minireq/dsl/fpa_dsl.rb, line 88 def EQ(object, det:, ftr:) hold(object, fun: :EQ, det: det, ftr: ftr) @ufp += ufp(type: :EQ, det: det, ftr: ftr) end
ILF(object, det:, ret:)
click to toggle source
# File lib/minireq/dsl/fpa_dsl.rb, line 68 def ILF(object, det:, ret:) hold(object, fun: :ILF, det: det, ret: ret) @ufp += ufp(type: :ILF, det: det, ret: ret) end
calculate()
click to toggle source
# File lib/minireq/dsl/fpa_dsl.rb, line 97 def calculate @vaf = vaf(@characteristics) {ufp: @ufp, vaf: @vaf, fp: @ufp * @vaf} end
characteristics(characteristics)
click to toggle source
# File lib/minireq/dsl/fpa_dsl.rb, line 93 def characteristics(characteristics) @characteristics = characteristics end
estimate(&block)
click to toggle source
# File lib/minireq/dsl/fpa_dsl.rb, line 63 def estimate(&block) instance_eval(&block) if block_given? calculate end
Private Instance Methods
hold(obj, params)
click to toggle source
# File lib/minireq/dsl/fpa_dsl.rb, line 104 def hold(obj, params) if @items[obj] # TODO rescue thi error raise MinireqError, "An attempt of adding a duplicate estimation '#{params[:fun]}' for '#{obj}'" end @items[obj] = params end