class InterfaceGenerator

Public Class Methods

source_root() click to toggle source
# File lib/generators/interface_generator.rb, line 5
def self.source_root
  File.dirname(__FILE__)
end

Public Instance Methods

check_arguments() click to toggle source
# File lib/generators/interface_generator.rb, line 9
def check_arguments
  return unless args.size < 3 || command != 'c'
  puts 'Use: rint c <class> <methods>'
  puts 'Example: rint c MyApp::MyClass method_one method_two'
  exit
end
create_interface_file() click to toggle source
# File lib/generators/interface_generator.rb, line 22
def create_interface_file
  template('templates/generic_interface.tt', "lib/#{@file_name}.rb")
end
define_instance_vars() click to toggle source
# File lib/generators/interface_generator.rb, line 16
def define_instance_vars
  @name = name
  @file_name = underscore(@name.dup)
  @methods = methods
end

Private Instance Methods

command() click to toggle source
# File lib/generators/interface_generator.rb, line 51
def command
  args.first
end
methods() click to toggle source
# File lib/generators/interface_generator.rb, line 37
def methods
  args[2..-1].map do |m|
    if m.scan(/\d+/).empty?
      ":#{m}"
    else
      m.gsub(":", ": ")
    end
  end.join(", ")
end
name() click to toggle source
# File lib/generators/interface_generator.rb, line 47
def name
  args[1]
end
underscore(word) click to toggle source
# File lib/generators/interface_generator.rb, line 28
def underscore(word)
  word.gsub!(/::/, '/')
  word.gsub!(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
  word.gsub!(/([a-z\d])([A-Z])/, '\1_\2')
  word.tr!('-', '_')
  word.downcase!
  word
end