Class: PackageDetector

Inherits:
Object
  • Object
show all
Defined in:
lib/package_detector.rb,
lib/package_detector/package.rb,
lib/package_detector/version.rb,
lib/package_detector/visitor.rb,
lib/package_detector/package/ios.rb,
lib/package_detector/visitor/zip.rb,
lib/package_detector/package/android.rb

Defined Under Namespace

Classes: Package, Visitor

Constant Summary collapse

ROOT_DIR =
File.expand_path(File.join('..', 'package_detector', 'package', '*'), __FILE__)
VERSION =
"0.0.1"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(package) ⇒ PackageDetector

Returns a new instance of PackageDetector.



9
10
11
12
13
14
15
# File 'lib/package_detector.rb', line 9

def initialize(package)
  if package.kind_of? IO
    @package = package
  else
    raise TypeError, "can't recieve an object except for IO object."
  end
end

Instance Attribute Details

#packageObject

Returns the value of attribute package.



7
8
9
# File 'lib/package_detector.rb', line 7

def package
  @package
end

Instance Method Details

#detectObject



17
18
19
20
21
22
23
24
# File 'lib/package_detector.rb', line 17

def detect
  package_types = Dir[ROOT_DIR].map{|n|
    if File.file?(n)
      package_type(File.basename(n, '.rb'))
    end
  }
  package_types.detect{|type| self.guess(type.new)}
end

#guess(package_type) ⇒ Object



26
27
28
# File 'lib/package_detector.rb', line 26

def guess(package_type)
  package_type.accept(@package, package_type.file_type)
end