Class: Inventory

Inherits:
Object
  • Object
show all
Defined in:
lib/inventory-1.0.rb,
lib/inventory/version.rb,
lib/inventory/rake/tasks-1.0.rb

Defined Under Namespace

Modules: Dependency, Rake Classes: Dependencies

Constant Summary collapse

Version =
Inventory.new(1, 1, 0){
  def dependencies
    Dependencies.new{
      development 'lookout', 3, 0, 0
      development 'yard', 0, 7, 0
    }
  end

  def libs
    %w'
      inventory/dependency.rb
      inventory/dependencies.rb
      inventory/dependencies/development.rb
      inventory/dependencies/optional.rb
      inventory/dependencies/runtime.rb
    '
  end

  def additional_libs
    super + %w'
      inventory/rake/tasks-1.0.rb
      inventory/rake/tasks/check.rb
      inventory/rake/tasks/clean.rb
      inventory/rake/tasks/gem.rb
      inventory/rake/tasks/inventory.rb
    '
  end
}

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(major, minor, patch, path = (m = /\A(.*):\d+(?::in .*)?\z/.match(caller.first) and m[1]), &block) ⇒ Inventory

Returns a new instance of Inventory.

Raises:

  • (ArgumentError)


4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/inventory-1.0.rb', line 4

def initialize(major, minor, patch,
               path = (m = /\A(.*):\d+(?::in .*)?\z/.match(caller.first) and m[1]),
               &block)
  @major, @minor, @patch = major, minor, patch
  raise ArgumentError, 'default value of path argument could not be calculated' unless path
  @path = path
  @srcdir, _, @package_path = File.dirname(File.expand_path(path)).rpartition('/lib/')
  @package_require = '%s-%d.0' % [package, major]
  raise ArgumentError,
    'path is not of the form PATH/lib/PACKAGE/version.rb: %s' % path if
      @srcdir.empty?
  instance_exec(&Proc.new) if block_given?
end

Instance Attribute Details

#majorObject (readonly)

Returns the value of attribute major.



114
115
116
# File 'lib/inventory-1.0.rb', line 114

def major
  @major
end

#minorObject (readonly)

Returns the value of attribute minor.



114
115
116
# File 'lib/inventory-1.0.rb', line 114

def minor
  @minor
end

#package_pathObject (readonly)

Returns the value of attribute package_path.



114
115
116
# File 'lib/inventory-1.0.rb', line 114

def package_path
  @package_path
end

#package_requireObject (readonly)

Returns the value of attribute package_require.



114
115
116
# File 'lib/inventory-1.0.rb', line 114

def package_require
  @package_require
end

#patchObject (readonly)

Returns the value of attribute patch.



114
115
116
# File 'lib/inventory-1.0.rb', line 114

def patch
  @patch
end

#pathObject (readonly)

Returns the value of attribute path.



114
115
116
# File 'lib/inventory-1.0.rb', line 114

def path
  @path
end

#srcdirObject (readonly)

Returns the value of attribute srcdir.



114
115
116
# File 'lib/inventory-1.0.rb', line 114

def srcdir
  @srcdir
end

Instance Method Details

#additional_filesObject



91
92
93
94
95
96
# File 'lib/inventory-1.0.rb', line 91

def additional_files
  %w'
    README
    Rakefile
  '
end

#additional_libsObject



59
60
61
# File 'lib/inventory-1.0.rb', line 59

def additional_libs
  [package_require, version_require].map{ |e| '%s.rb' % e }
end

#additional_unit_testsObject



75
76
77
# File 'lib/inventory-1.0.rb', line 75

def additional_unit_tests
  []
end

#all_libsObject



63
64
65
# File 'lib/inventory-1.0.rb', line 63

def all_libs
  libs + additional_libs
end

#all_unit_testsObject



79
80
81
# File 'lib/inventory-1.0.rb', line 79

def all_unit_tests
  unit_tests + additional_unit_tests
end

#dependenciesObject



41
42
43
44
45
# File 'lib/inventory-1.0.rb', line 41

def dependencies
  Dependencies.new{
    development 'inventory', Version.major, Version.minor, Version.patch
  }
end

#filesObject



98
99
100
# File 'lib/inventory-1.0.rb', line 98

def files
  lib_files + test_files + additional_files
end

#inspectObject



110
111
112
# File 'lib/inventory-1.0.rb', line 110

def inspect
  '#<%s: %s %s>' % [self.class, package, self]
end

#lib_directoriesObject



26
27
28
# File 'lib/inventory-1.0.rb', line 26

def lib_directories
  %w'lib'
end

#lib_filesObject



67
68
69
# File 'lib/inventory-1.0.rb', line 67

def lib_files
  all_libs.map{ |e| 'lib/%s' % e }
end

#libsObject



55
56
57
# File 'lib/inventory-1.0.rb', line 55

def libs
  []
end

#loadObject



30
31
32
33
34
35
36
37
38
39
# File 'lib/inventory-1.0.rb', line 30

def load
  requires.each do |requirement|
    require requirement
  end
  dependencies.require
  loads.each do |load|
    Kernel.load File.expand_path('lib/%s' % load, srcdir)
  end
  self
end

#loadsObject



51
52
53
# File 'lib/inventory-1.0.rb', line 51

def loads
  libs
end

#packageObject



18
19
20
# File 'lib/inventory-1.0.rb', line 18

def package
  package_path.gsub('/', '-')
end

#requiresObject



47
48
49
# File 'lib/inventory-1.0.rb', line 47

def requires
  []
end

#test_filesObject



87
88
89
# File 'lib/inventory-1.0.rb', line 87

def test_files
  unit_test_files
end

#to_aObject



102
103
104
# File 'lib/inventory-1.0.rb', line 102

def to_a
  files
end

#to_sObject



106
107
108
# File 'lib/inventory-1.0.rb', line 106

def to_s
  '%d.%d.%d' % [major, minor, patch]
end

#unit_test_filesObject



83
84
85
# File 'lib/inventory-1.0.rb', line 83

def unit_test_files
  all_unit_tests.map{ |e| 'test/unit/%s' % e }
end

#unit_testsObject



71
72
73
# File 'lib/inventory-1.0.rb', line 71

def unit_tests
  all_libs
end

#version_requireObject



22
23
24
# File 'lib/inventory-1.0.rb', line 22

def version_require
  File.join(package_path, 'version')
end