Class: MockVersion::Repository
- Inherits:
-
Object
- Object
- MockVersion::Repository
- Defined in:
- lib/mockversion/repository.rb
Class Method Summary collapse
Instance Method Summary collapse
- #add_revision(revision) ⇒ Object
- #checkout_to(path) ⇒ Object
- #create_new_revision(number = '1') ⇒ Object
- #export_revision_to_path(revision_id, path) ⇒ Object
- #full_repo_path ⇒ Object
-
#initialize(path) ⇒ Repository
constructor
A new instance of Repository.
- #last_revision_lower_than(number) ⇒ Object
- #repo_file ⇒ Object
- #save ⇒ Object
- #verify ⇒ Object
Constructor Details
#initialize(path) ⇒ Repository
Returns a new instance of Repository.
25 26 27 28 |
# File 'lib/mockversion/repository.rb', line 25 def initialize(path) @repo_path = path @revisions = [Revision.new] end |
Class Method Details
.create(path) ⇒ Object
7 8 9 |
# File 'lib/mockversion/repository.rb', line 7 def self.create(path) new(path).save end |
.load_from_path(path) ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'lib/mockversion/repository.rb', line 15 def self.load_from_path(path) begin repo = new(path) YAML.load_file(repo.repo_file) rescue puts "Can't open" exit 1 end end |
.verify(path) ⇒ Object
11 12 13 |
# File 'lib/mockversion/repository.rb', line 11 def self.verify(path) load_from_path(path).verify end |
Instance Method Details
#add_revision(revision) ⇒ Object
49 50 51 52 |
# File 'lib/mockversion/repository.rb', line 49 def add_revision(revision) @revisions << revision save end |
#checkout_to(path) ⇒ Object
34 35 36 37 |
# File 'lib/mockversion/repository.rb', line 34 def checkout_to(path) WorkingCopy.create(@repo_path, path) @revisions.last.export_to(path) end |
#create_new_revision(number = '1') ⇒ Object
54 55 56 57 58 59 60 61 |
# File 'lib/mockversion/repository.rb', line 54 def create_new_revision(number = '1') last_lower_revision = last_revision_lower_than(number) new_revision = last_lower_revision.dup new_revision.files = last_lower_revision.files.dup new_revision.number = number add_revision(new_revision) new_revision end |
#export_revision_to_path(revision_id, path) ⇒ Object
39 40 41 42 43 44 45 46 47 |
# File 'lib/mockversion/repository.rb', line 39 def export_revision_to_path(revision_id, path) if revision_id == "HEAD" revision = @revisions.last else revision = @revisions.find { |revision| revision.number == revision_id } end revision.export_to(path) end |
#full_repo_path ⇒ Object
72 73 74 |
# File 'lib/mockversion/repository.rb', line 72 def full_repo_path ".mockversion/#{@repo_path}" end |
#last_revision_lower_than(number) ⇒ Object
63 64 65 |
# File 'lib/mockversion/repository.rb', line 63 def last_revision_lower_than(number) @revisions.find_all { |revision| revision.number < number }.last end |
#repo_file ⇒ Object
76 77 78 |
# File 'lib/mockversion/repository.rb', line 76 def repo_file "#{full_repo_path}/repo.yml" end |
#save ⇒ Object
67 68 69 70 |
# File 'lib/mockversion/repository.rb', line 67 def save FileUtils.makedirs(full_repo_path) File.open(repo_file, "w") { |file| file.puts to_yaml } end |
#verify ⇒ Object
30 31 32 |
# File 'lib/mockversion/repository.rb', line 30 def verify puts @revisions.map { |revision| "* Verified revision #{revision.number}.\n" } end |