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