Sha256: 9788711cf7411f93ffbdb0541f17c1d31ea024dd57c9950d24b051230baffae2

Contents?: true

Size: 971 Bytes

Versions: 1

Compression:

Stored size: 971 Bytes

Contents

class Andrake::Activity
  attr_accessor :name, :source
  
  # source = the source code of an activity ... we should support files!
  def initialize source
    @source = source
    @name   = /class (\w+) extends Activity/.match(source).captures.first
  end

  def to_s
    "<Andrake::Activity #{name} />"
  end

  # finds all activities for an Andrake::App (from the file system)
  def self.find_all app
    Dir[app.path '*.java'].inject([]) do |all, this|
      all << Andrake::Activity.new(File.read(this)) if is_an_activity?(this)
      all
    end
  end

  # returns true / false for whether the given file is an Activity
  def self.is_an_activity? file
    return false unless File.file? file
    return /class (\w+) extends Activity/.match(File.read(file)) != nil
  end

  # returns the name of the activity (from the source, should match the filename)
  def self.activity_name file
    /class (\w+) extends Activity/.match(File.read(file)).captures.first
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
remi-andrake-0.1.0 lib/andrake/activity.rb