Module: Assert::Stub::ParameterList
- Defined in:
- lib/assert/stub.rb
Constant Summary collapse
- LETTERS =
('a'..'z').to_a.freeze
Class Method Summary collapse
- .build_params_from_arity(arity) ⇒ Object
- .get_arity(object, method_name) ⇒ Object
- .get_param_name(param_index) ⇒ Object
- .new(object, method_name) ⇒ Object
Class Method Details
.build_params_from_arity(arity) ⇒ Object
169 170 171 172 |
# File 'lib/assert/stub.rb', line 169 def self.build_params_from_arity(arity) number = arity < 0 ? (arity + 1).abs : arity (0..(number - 1)).map{ |param_index| get_param_name(param_index) } end |
.get_arity(object, method_name) ⇒ Object
163 164 165 166 167 |
# File 'lib/assert/stub.rb', line 163 def self.get_arity(object, method_name) object.method(method_name).arity rescue NameError -1 end |
.get_param_name(param_index) ⇒ Object
174 175 176 177 178 |
# File 'lib/assert/stub.rb', line 174 def self.get_param_name(param_index) param_index += LETTERS.size # avoid getting 0 for the number of letters number_of_letters, letter_index = param_index.divmod(LETTERS.size) LETTERS[letter_index] * number_of_letters end |
.new(object, method_name) ⇒ Object
153 154 155 156 157 158 159 |
# File 'lib/assert/stub.rb', line 153 def self.new(object, method_name) arity = get_arity(object, method_name) params = build_params_from_arity(arity) params << '*args' if arity < 0 params << '&block' params.join(', ') end |