Class: Mayday::AbstractFlag
- Inherits:
-
Object
- Object
- Mayday::AbstractFlag
- Defined in:
- lib/mayday/abstract_flag.rb
Direct Known Subclasses
Constant Summary collapse
- @@function_names =
[]
Instance Method Summary collapse
- #block_string ⇒ Object
- #function_def_string ⇒ Object
- #function_name ⇒ Object
-
#initialize(block, options = {}) ⇒ AbstractFlag
constructor
A new instance of AbstractFlag.
- #message_prefix ⇒ Object
Constructor Details
#initialize(block, options = {}) ⇒ AbstractFlag
Returns a new instance of AbstractFlag.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/mayday/abstract_flag.rb', line 8 def initialize(block, ={}) @block = block @include_file_globs = Array([:files]) @exclude_file_globs = Array([:exclude]) if [:language] language = [:language].to_s if language == "swift" @include_file_globs << "*.swift" elsif language == "objective-c" @include_file_globs << "*.{h,m}" else puts "Unrecognized language '#{language}'".red abort end end @exclude_file_globs << "*Pods/*" end |
Instance Method Details
#block_string ⇒ Object
33 34 35 36 37 38 39 40 41 42 |
# File 'lib/mayday/abstract_flag.rb', line 33 def block_string case @block when String @block when Proc @block.to_source else raise TypeError, "#{self.class}'s block has invalid type of #{@block.class}" end end |
#function_def_string ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/mayday/abstract_flag.rb', line 44 def function_def_string <<-CODE def #{function_name}(file_path, file_contents) #{file_fn_match_lines("file_path")} line_number_to_warning_hash = lambda do #{block_string}.call(file_contents) end.call if line_number_to_warning_hash && line_number_to_warning_hash.keys.count > 0 final_warning_array = [] line_number_to_warning_hash.map do |line_number, warning_str| final_warning_array << "\#{file_path}:\#{line_number}: #{}\#{warning_str} [Wmayday]" end final_warning_array.join("\n") else false end end CODE end |
#function_name ⇒ Object
81 82 83 84 85 86 87 |
# File 'lib/mayday/abstract_flag.rb', line 81 def function_name @function_name ||= begin # Enforce uniqueness candidate_function_name = "abstract_flag_matcher_#{rand(10000)}" @@function_names.include?(candidate_function_name) ? function_name : candidate_function_name end end |
#message_prefix ⇒ Object
29 30 31 |
# File 'lib/mayday/abstract_flag.rb', line 29 def "" end |