Class: Volley::Meta

Inherits:
Object
  • Object
show all
Defined in:
lib/volley/meta.rb

Instance Method Summary collapse

Constructor Details

#initialize(file = "#{Volley.config.directory}/meta.yaml") ⇒ Meta

Returns a new instance of Meta.



4
5
6
7
8
9
10
11
12
# File 'lib/volley/meta.rb', line 4

def initialize(file="#{Volley.config.directory}/meta.yaml")
  @file = file
  dir = File.dirname(file)
  unless File.directory?(dir)
    Volley::Log.warn "meta file directory does not exist: #{dir}"
    FileUtils.mkdir_p(dir)
  end
  @data = YAML.load_file(@file) || {} rescue {}
end

Instance Method Details

#[](project) ⇒ Object



14
15
16
17
# File 'lib/volley/meta.rb', line 14

def [](project)
  @data[:projects] ||= {}
  @data[:projects][project.to_sym]
end

#[]=(project, version) ⇒ Object



19
20
21
22
# File 'lib/volley/meta.rb', line 19

def []=(project, version)
  @data[:projects] ||= {}
  @data[:projects][project.to_sym] = version
end

#check(project, branch, version) ⇒ Object



30
31
32
33
# File 'lib/volley/meta.rb', line 30

def check(project, branch, version)
  version = Volley::Dsl.publisher.latest_version(project, branch) if version.nil? || version == 'latest'
  self[project] == "#{branch}:#{version}"
end

#projectsObject



35
36
37
# File 'lib/volley/meta.rb', line 35

def projects
  @data[:projects]
end

#saveObject



24
25
26
27
28
# File 'lib/volley/meta.rb', line 24

def save
  @data[:volley] ||= {}
  @data[:volley][:version] = Volley::Version::STRING
  File.open(@file, "w+") {|f| f.write(@data.to_yaml)}
end