How to count instance variable, Methods, Classes and comment lines in Ruby -


how count instance variable, methods, classes , comment lines in ruby.

class admincontroller < applicationcontroller   include applicationhelper   ssl_required :edit_account     def index       @admin_projects = @admin.projects.find(:all, :conditions => ["project_completed=?",0])       total_tasks = find_project_and_completed_task_before_and_after_date(@admin_projects)       @project_task_bar_chart = googlechart::barchart.new('450x150', "", :horizontal, true)       @project_task_bar_chart.data_encoding = :text       max_cate_task = total_tasks[2].sort.last       @project_task_bar_chart.data "complete before due date", total_tasks[1], '67ce04'        @project_task_bar_chart.data "complete after due date", total_tasks[0], 'ff0000'      end  #if request.xhr? #@project = @admin.projects.find(:first,:conditions => ["projects.id = ?",params[:project_id].to_i]) 

the question, "how many?", answered sizes of arrays referred below, except number of classes.

instance variables

c.new.instance_variables returns array of instance of class c's instance variables.

c.instance_variables returns array of class c's instance variables (generally referred class instance variables).

for example:

class   @a = 'cat'   def initialize     @b = 'dog'     @c = 'pig'   end end  a.instance_variables     #=> [:@a]  a.new.instance_variables #=> [:@b, :@c]  

instance methods

c.instance_methods (or c.new.methods) returns array of c's instance methods, including inherited ones. c can module not class.

c.instance_methods(false) (or c.new.methods(false)) returns array of c's instance methods defined on class c. c can module not class. modules not inherit methods, if c module, c.instance_methods == c.instance_methods(false).

the ownership of 1 of class c's instance methods m can obtains c.instance_method(:m).owner.

class methods

c.methods , c.methods(false) return class c's class methods. case when c module not class.

the ownership of 1 of class c's class methods m can obtained c.method(:m).owner.

classes

execute

gc.start 

to force immediate garbage collection, then:

objectspace.each_object(class).to_a.size 

or

objectspace.count_objects[:t_class] 

if singleton classes included.

these of course counts both built-in , user-defined classes. understand there

my @frederickcheung clarifying this.

comments

determining numbers of comment lines requires clarification , different type of question foregoing. these reasons suggest made separate question (clarified appropriately). note comment may on line itself, @ end of line preceded code or between begin= , end=. moreover, character # not precede comment (e.g., s = "#{cat}" # assign name of cat s. counting comments non-trivial task.


Comments

Popular posts from this blog

php - failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request -

java - How to filter a backspace keyboard input -

java - Show Soft Keyboard when EditText Appears -