Class: StoryboardLint::Matcher

Inherits:
Object
  • Object
show all
Defined in:
lib/storyboardlint.rb

Constant Summary collapse

DEFAULT_SEGUE_ID_PREFIX =
"seg_"
DEFAULT_STORYBOARD_ID_PREFIX =
"sb_"
DEFAULT_REUSE_ID_PREFIX =
"ruid_"

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Matcher



142
143
144
145
146
147
148
149
150
151
152
153
# File 'lib/storyboardlint.rb', line 142

def initialize(options)
  options ||= OpenStruct.new
  
  @storyboard_id_regex_source = create_source_regex(DEFAULT_STORYBOARD_ID_PREFIX, options.storyboard_prefix, options.storyboard_suffix)
  @storyboard_id_regex_sb = create_storyboard_regex(DEFAULT_STORYBOARD_ID_PREFIX, options.storyboard_prefix, options.storyboard_suffix)
  
  @segue_id_regex_source = create_source_regex(DEFAULT_SEGUE_ID_PREFIX, options.segue_prefix, options.segue_suffix)
  @segue_id_regex_sb = create_storyboard_regex(DEFAULT_SEGUE_ID_PREFIX, options.segue_prefix, options.segue_suffix)
  
  @reuse_id_regex_source = create_source_regex(DEFAULT_REUSE_ID_PREFIX, options.reuse_prefix, options.reuse_suffix)
  @reuse_id_regex_sb = create_storyboard_regex(DEFAULT_REUSE_ID_PREFIX, options.reuse_prefix, options.reuse_suffix)
end

Instance Method Details

#class_regexObject



183
184
185
# File 'lib/storyboardlint.rb', line 183

def class_regex
  /@interface\s+([a-zA-Z_]+\w*)/
end

#create_source_regex(default_prefix, prefix, suffix) ⇒ Object



155
156
157
158
159
160
161
162
# File 'lib/storyboardlint.rb', line 155

def create_source_regex(default_prefix, prefix, suffix)
  inner_regex_part = %{(?:\\"|[^"])+}
  if prefix.to_s.empty? and suffix.to_s.empty?
    return /@"(#{default_prefix}#{inner_regex_part})"/
  else
    return /@"(#{prefix}#{inner_regex_part}#{suffix})"/
  end
end

#create_storyboard_regex(default_prefix, prefix, suffix) ⇒ Object



164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
# File 'lib/storyboardlint.rb', line 164

def create_storyboard_regex(default_prefix, prefix, suffix)
  inner_regex_part = %{(?:\\"|[^"])+}
  if prefix.to_s.empty? and suffix.to_s.empty?
    sb = /^#{default_prefix}/
  else        
    if !prefix.to_s.empty?
      if !suffix.to_s.empty?
        sb = /^#{prefix}[\w\s]*#{suffix}$/ 
      else !prefix.to_s.empty?
        sb = /^#{prefix}/
      end
    else
      sb = /#{suffix}$/
    end
  end
  
  sb
end