social_snippet 0.0.9 → 0.0.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/.travis.yml +11 -4
- data/README.md +6 -6
- data/Rakefile +19 -1
- data/lib/social_snippet.rb +11 -0
- data/lib/social_snippet/api/install_repository_api.rb +23 -82
- data/lib/social_snippet/api/manifest_api.rb +3 -3
- data/lib/social_snippet/api/update_repository_api.rb +34 -35
- data/lib/social_snippet/command_line/sspm/sub_commands/install_command.rb +7 -7
- data/lib/social_snippet/config.rb +18 -8
- data/lib/social_snippet/core.rb +13 -0
- data/lib/social_snippet/document.rb +2 -0
- data/lib/social_snippet/document_backend.rb +2 -0
- data/lib/social_snippet/document_backend/yaml_document.rb +252 -0
- data/lib/social_snippet/document_backend/yaml_document/query.rb +45 -0
- data/lib/social_snippet/repository.rb +2 -2
- data/lib/social_snippet/repository/driver_factory.rb +42 -0
- data/lib/social_snippet/repository/drivers.rb +3 -2
- data/lib/social_snippet/repository/drivers/driver_base.rb +100 -0
- data/lib/social_snippet/repository/drivers/entry.rb +11 -0
- data/lib/social_snippet/repository/drivers/git_driver.rb +100 -0
- data/lib/social_snippet/repository/models.rb +15 -0
- data/lib/social_snippet/repository/models/package.rb +97 -0
- data/lib/social_snippet/repository/models/repository.rb +94 -0
- data/lib/social_snippet/repository/repository_manager.rb +79 -67
- data/lib/social_snippet/resolvers/base_resolver.rb +13 -17
- data/lib/social_snippet/rspec/test_document.rb +305 -0
- data/lib/social_snippet/rspec/test_driver.rb +76 -0
- data/lib/social_snippet/rspec/test_storage.rb +459 -0
- data/lib/social_snippet/storage.rb +1 -0
- data/lib/social_snippet/storage_backend.rb +3 -0
- data/lib/social_snippet/storage_backend/file_system_storage.rb +71 -0
- data/lib/social_snippet/storage_backend/storage_base.rb +35 -0
- data/lib/social_snippet/version.rb +8 -3
- data/spec/helpers/codeclimate_helper.rb +1 -1
- data/spec/helpers/fakefs_helper.rb +10 -0
- data/spec/helpers/social_snippet_helper.rb +117 -0
- data/spec/lib/api/insert_snippet_spec.rb +95 -2
- data/spec/lib/api/update_repository_spec.rb +196 -0
- data/spec/lib/command_line/sspm_install_spec.rb +169 -180
- data/spec/lib/command_line/sspm_update_spec.rb +56 -0
- data/spec/lib/config_spec.rb +6 -8
- data/spec/lib/core_spec.rb +21 -38
- data/spec/lib/file_system_storage_spec.rb +170 -0
- data/spec/lib/insert_resolver_spec.rb +15 -2
- data/spec/lib/registry_client_spec.rb +6 -9
- data/spec/lib/repository/driver_base_spec.rb +89 -0
- data/spec/lib/repository/git_driver_spec.rb +10 -0
- data/spec/lib/repository/package_spec.rb +172 -0
- data/spec/lib/repository/repository_factory_spec.rb +67 -22
- data/spec/lib/repository/repository_manager_spec.rb +71 -114
- data/spec/lib/repository/repository_spec.rb +191 -0
- data/spec/lib/yaml_document_spec.rb +14 -0
- data/spec/spec_helper.rb +8 -93
- data/test/config_test.rb +6 -7
- data/test/driver_base_test.rb +201 -0
- data/test/git_driver_test.rb +51 -0
- data/test/insert_snippet_test.rb +256 -349
- data/test/repository_manager_test.rb +7 -16
- data/test/yaml_document_test.rb +97 -0
- metadata +44 -16
- data/lib/social_snippet/repository/drivers/base_repository.rb +0 -189
- data/lib/social_snippet/repository/drivers/git_repository.rb +0 -74
- data/lib/social_snippet/repository/repository_factory.rb +0 -59
- data/lib/social_snippet/repository/repository_installer.rb +0 -85
- data/spec/lib/repository/base_repository_spec.rb +0 -104
- data/spec/lib/repository/git_repository_spec.rb +0 -83
- data/spec/lib/repository/repository_installer_spec.rb +0 -63
- data/test/base_repository_test.rb +0 -375
- data/test/git_repository_test.rb +0 -114
@@ -2,12 +2,6 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
describe ::SocialSnippet::Repository::RepositoryManager do
|
4
4
|
|
5
|
-
let(:logger) do
|
6
|
-
logger = ::SocialSnippet::Logger.new(STDOUT)
|
7
|
-
logger.level = ::SocialSnippet::Logger::Severity::INFO
|
8
|
-
logger
|
9
|
-
end
|
10
|
-
|
11
5
|
let(:config) do
|
12
6
|
::SocialSnippet::Config.new(social_snippet)
|
13
7
|
end
|
@@ -19,8 +13,9 @@ describe ::SocialSnippet::Repository::RepositoryManager do
|
|
19
13
|
end
|
20
14
|
|
21
15
|
before do
|
16
|
+
allow(social_snippet).to receive(:storage).and_return fake_storage
|
17
|
+
allow(social_snippet).to receive(:logger).and_return fake_logger
|
22
18
|
allow(social_snippet).to receive(:config).and_return config
|
23
|
-
allow(social_snippet).to receive(:logger).and_return logger
|
24
19
|
end
|
25
20
|
|
26
21
|
let(:repo_manager) do
|
@@ -28,16 +23,12 @@ describe ::SocialSnippet::Repository::RepositoryManager do
|
|
28
23
|
end
|
29
24
|
|
30
25
|
describe "complete (repo)" do
|
31
|
-
|
26
|
+
|
32
27
|
before do
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
FileUtils.mkdir_p "#{install_path}/my-math-repo"
|
38
|
-
FileUtils.mkdir_p "#{install_path}/myrepo"
|
39
|
-
allow(repo_manager.installer).to receive(:path).and_return install_path
|
40
|
-
end # prepare files
|
28
|
+
::SocialSnippet::Repository::Models::Repository.create :name => "my-repo"
|
29
|
+
::SocialSnippet::Repository::Models::Repository.create :name => "new-repo"
|
30
|
+
::SocialSnippet::Repository::Models::Repository.create :name => "my-math-repo"
|
31
|
+
end
|
41
32
|
|
42
33
|
context "key = my-" do
|
43
34
|
it { expect(repo_manager.complete "@snip <my-").to include "my-repo" }
|
@@ -0,0 +1,97 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe ::SocialSnippet::DocumentBackend::YAMLDocument do
|
4
|
+
|
5
|
+
before { ::FileUtils.mkdir_p "/path/to" }
|
6
|
+
before { ::SocialSnippet::DocumentBackend::YAMLDocument.set_path "/path/to/document.yml" }
|
7
|
+
before { $yaml_document_hash = nil } # reset hash
|
8
|
+
|
9
|
+
describe "#load_file!" do
|
10
|
+
|
11
|
+
context "prepare yaml" do
|
12
|
+
|
13
|
+
before do
|
14
|
+
::File.write "/path/to/document.yml", {
|
15
|
+
"TestDocument" => {
|
16
|
+
"item1" => {
|
17
|
+
:name => "item-1",
|
18
|
+
:values => [
|
19
|
+
"val1-1",
|
20
|
+
"val1-2",
|
21
|
+
"val1-3",
|
22
|
+
],
|
23
|
+
:info => {
|
24
|
+
"hello" => "world",
|
25
|
+
},
|
26
|
+
},
|
27
|
+
"item2" => {
|
28
|
+
:name => "item-2",
|
29
|
+
:values => [
|
30
|
+
"val2-1",
|
31
|
+
"val2-2",
|
32
|
+
"val2-3",
|
33
|
+
],
|
34
|
+
:info => {
|
35
|
+
"foo" => "bar",
|
36
|
+
},
|
37
|
+
},
|
38
|
+
},
|
39
|
+
}.to_yaml
|
40
|
+
end
|
41
|
+
|
42
|
+
context "prepare class" do
|
43
|
+
|
44
|
+
let(:doc_class) do
|
45
|
+
::Class.new(::SocialSnippet::DocumentBackend::YAMLDocument) do
|
46
|
+
field :name, :type => String
|
47
|
+
field :values, :type => Array
|
48
|
+
field :info, :type => Hash
|
49
|
+
|
50
|
+
def self.name
|
51
|
+
"TestDocument"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
context "find item1" do
|
57
|
+
let(:item) { doc_class.find "item1" }
|
58
|
+
it { expect(item.name).to eq "item-1" }
|
59
|
+
it { expect(item.values.length).to eq 3 }
|
60
|
+
it { expect(item.values).to include "val1-1" }
|
61
|
+
it { expect(item.values).to include "val1-2" }
|
62
|
+
it { expect(item.values).to include "val1-3" }
|
63
|
+
it { expect(item.info["hello"]).to eq "world" }
|
64
|
+
end
|
65
|
+
|
66
|
+
context "find item2" do
|
67
|
+
let(:item) { doc_class.find "item2" }
|
68
|
+
it { expect(item.name).to eq "item-2" }
|
69
|
+
it { expect(item.values.length).to eq 3 }
|
70
|
+
it { expect(item.values).to include "val2-1" }
|
71
|
+
it { expect(item.values).to include "val2-2" }
|
72
|
+
it { expect(item.values).to include "val2-3" }
|
73
|
+
it { expect(item.info["foo"]).to eq "bar" }
|
74
|
+
end
|
75
|
+
|
76
|
+
context "remove item2" do
|
77
|
+
before { doc_class.find("item2").remove }
|
78
|
+
context "find item2" do
|
79
|
+
subject do
|
80
|
+
lambda { doc_class.find "item2" }
|
81
|
+
end
|
82
|
+
it { should raise_error }
|
83
|
+
end
|
84
|
+
context "find item1" do
|
85
|
+
let(:item) { doc_class.find("item1") }
|
86
|
+
it { expect(item.name).to eq "item-1" }
|
87
|
+
end
|
88
|
+
end # remove item2
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
end # prepare yaml
|
93
|
+
|
94
|
+
end #load_file!
|
95
|
+
|
96
|
+
end # ::SocialSnippet::DocumentBackend::YAMLDocument
|
97
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: social_snippet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hiroyuki Sano
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: version_sorter
|
@@ -260,6 +260,10 @@ files:
|
|
260
260
|
- lib/social_snippet/config.rb
|
261
261
|
- lib/social_snippet/context.rb
|
262
262
|
- lib/social_snippet/core.rb
|
263
|
+
- lib/social_snippet/document.rb
|
264
|
+
- lib/social_snippet/document_backend.rb
|
265
|
+
- lib/social_snippet/document_backend/yaml_document.rb
|
266
|
+
- lib/social_snippet/document_backend/yaml_document/query.rb
|
263
267
|
- lib/social_snippet/inserter.rb
|
264
268
|
- lib/social_snippet/logger.rb
|
265
269
|
- lib/social_snippet/registry.rb
|
@@ -268,18 +272,28 @@ files:
|
|
268
272
|
- lib/social_snippet/registry/registry_resources/base.rb
|
269
273
|
- lib/social_snippet/registry/registry_resources/repositories.rb
|
270
274
|
- lib/social_snippet/repository.rb
|
275
|
+
- lib/social_snippet/repository/driver_factory.rb
|
271
276
|
- lib/social_snippet/repository/drivers.rb
|
272
|
-
- lib/social_snippet/repository/drivers/
|
273
|
-
- lib/social_snippet/repository/drivers/
|
277
|
+
- lib/social_snippet/repository/drivers/driver_base.rb
|
278
|
+
- lib/social_snippet/repository/drivers/entry.rb
|
279
|
+
- lib/social_snippet/repository/drivers/git_driver.rb
|
280
|
+
- lib/social_snippet/repository/models.rb
|
281
|
+
- lib/social_snippet/repository/models/package.rb
|
282
|
+
- lib/social_snippet/repository/models/repository.rb
|
274
283
|
- lib/social_snippet/repository/repository_errors.rb
|
275
|
-
- lib/social_snippet/repository/repository_factory.rb
|
276
|
-
- lib/social_snippet/repository/repository_installer.rb
|
277
284
|
- lib/social_snippet/repository/repository_manager.rb
|
278
285
|
- lib/social_snippet/resolvers.rb
|
279
286
|
- lib/social_snippet/resolvers/base_resolver.rb
|
280
287
|
- lib/social_snippet/resolvers/dep_resolver.rb
|
281
288
|
- lib/social_snippet/resolvers/insert_resolver.rb
|
289
|
+
- lib/social_snippet/rspec/test_document.rb
|
290
|
+
- lib/social_snippet/rspec/test_driver.rb
|
291
|
+
- lib/social_snippet/rspec/test_storage.rb
|
282
292
|
- lib/social_snippet/snippet.rb
|
293
|
+
- lib/social_snippet/storage.rb
|
294
|
+
- lib/social_snippet/storage_backend.rb
|
295
|
+
- lib/social_snippet/storage_backend/file_system_storage.rb
|
296
|
+
- lib/social_snippet/storage_backend/storage_base.rb
|
283
297
|
- lib/social_snippet/tag.rb
|
284
298
|
- lib/social_snippet/tag_parser.rb
|
285
299
|
- lib/social_snippet/tsortable_hash.rb
|
@@ -287,32 +301,38 @@ files:
|
|
287
301
|
- social_snippet.gemspec
|
288
302
|
- spec/helpers/codeclimate_helper.rb
|
289
303
|
- spec/helpers/fakefs_helper.rb
|
304
|
+
- spec/helpers/social_snippet_helper.rb
|
290
305
|
- spec/helpers/webmock_helper.rb
|
291
306
|
- spec/lib/api/insert_snippet_spec.rb
|
307
|
+
- spec/lib/api/update_repository_spec.rb
|
292
308
|
- spec/lib/command_line/sspm_config_spec.rb
|
293
309
|
- spec/lib/command_line/sspm_init_spec.rb
|
294
310
|
- spec/lib/command_line/sspm_install_spec.rb
|
295
311
|
- spec/lib/command_line/sspm_search_spec.rb
|
296
312
|
- spec/lib/command_line/sspm_spec.rb
|
313
|
+
- spec/lib/command_line/sspm_update_spec.rb
|
297
314
|
- spec/lib/config_spec.rb
|
298
315
|
- spec/lib/context_spec.rb
|
299
316
|
- spec/lib/core_spec.rb
|
317
|
+
- spec/lib/file_system_storage_spec.rb
|
300
318
|
- spec/lib/insert_resolver_spec.rb
|
301
319
|
- spec/lib/inserter_spec.rb
|
302
320
|
- spec/lib/registry_client_spec.rb
|
303
|
-
- spec/lib/repository/
|
304
|
-
- spec/lib/repository/
|
321
|
+
- spec/lib/repository/driver_base_spec.rb
|
322
|
+
- spec/lib/repository/git_driver_spec.rb
|
323
|
+
- spec/lib/repository/package_spec.rb
|
305
324
|
- spec/lib/repository/repository_factory_spec.rb
|
306
|
-
- spec/lib/repository/repository_installer_spec.rb
|
307
325
|
- spec/lib/repository/repository_manager_spec.rb
|
326
|
+
- spec/lib/repository/repository_spec.rb
|
308
327
|
- spec/lib/tag_parser_spec.rb
|
309
328
|
- spec/lib/tag_spec.rb
|
329
|
+
- spec/lib/yaml_document_spec.rb
|
310
330
|
- spec/spec_helper.rb
|
311
|
-
- test/base_repository_test.rb
|
312
331
|
- test/command_test.rb
|
313
332
|
- test/config_test.rb
|
314
333
|
- test/context_test.rb
|
315
|
-
- test/
|
334
|
+
- test/driver_base_test.rb
|
335
|
+
- test/git_driver_test.rb
|
316
336
|
- test/insert_snippet_test.rb
|
317
337
|
- test/install_command_test.rb
|
318
338
|
- test/repository_manager_test.rb
|
@@ -320,6 +340,7 @@ files:
|
|
320
340
|
- test/tag_parser_test.rb
|
321
341
|
- test/tag_test.rb
|
322
342
|
- test/version_test.rb
|
343
|
+
- test/yaml_document_test.rb
|
323
344
|
homepage: https://github.com/social-snippet/social-snippet
|
324
345
|
licenses:
|
325
346
|
- MIT
|
@@ -348,32 +369,38 @@ summary: A snippet manager to share and use snippet library for the online judge
|
|
348
369
|
test_files:
|
349
370
|
- spec/helpers/codeclimate_helper.rb
|
350
371
|
- spec/helpers/fakefs_helper.rb
|
372
|
+
- spec/helpers/social_snippet_helper.rb
|
351
373
|
- spec/helpers/webmock_helper.rb
|
352
374
|
- spec/lib/api/insert_snippet_spec.rb
|
375
|
+
- spec/lib/api/update_repository_spec.rb
|
353
376
|
- spec/lib/command_line/sspm_config_spec.rb
|
354
377
|
- spec/lib/command_line/sspm_init_spec.rb
|
355
378
|
- spec/lib/command_line/sspm_install_spec.rb
|
356
379
|
- spec/lib/command_line/sspm_search_spec.rb
|
357
380
|
- spec/lib/command_line/sspm_spec.rb
|
381
|
+
- spec/lib/command_line/sspm_update_spec.rb
|
358
382
|
- spec/lib/config_spec.rb
|
359
383
|
- spec/lib/context_spec.rb
|
360
384
|
- spec/lib/core_spec.rb
|
385
|
+
- spec/lib/file_system_storage_spec.rb
|
361
386
|
- spec/lib/insert_resolver_spec.rb
|
362
387
|
- spec/lib/inserter_spec.rb
|
363
388
|
- spec/lib/registry_client_spec.rb
|
364
|
-
- spec/lib/repository/
|
365
|
-
- spec/lib/repository/
|
389
|
+
- spec/lib/repository/driver_base_spec.rb
|
390
|
+
- spec/lib/repository/git_driver_spec.rb
|
391
|
+
- spec/lib/repository/package_spec.rb
|
366
392
|
- spec/lib/repository/repository_factory_spec.rb
|
367
|
-
- spec/lib/repository/repository_installer_spec.rb
|
368
393
|
- spec/lib/repository/repository_manager_spec.rb
|
394
|
+
- spec/lib/repository/repository_spec.rb
|
369
395
|
- spec/lib/tag_parser_spec.rb
|
370
396
|
- spec/lib/tag_spec.rb
|
397
|
+
- spec/lib/yaml_document_spec.rb
|
371
398
|
- spec/spec_helper.rb
|
372
|
-
- test/base_repository_test.rb
|
373
399
|
- test/command_test.rb
|
374
400
|
- test/config_test.rb
|
375
401
|
- test/context_test.rb
|
376
|
-
- test/
|
402
|
+
- test/driver_base_test.rb
|
403
|
+
- test/git_driver_test.rb
|
377
404
|
- test/insert_snippet_test.rb
|
378
405
|
- test/install_command_test.rb
|
379
406
|
- test/repository_manager_test.rb
|
@@ -381,3 +408,4 @@ test_files:
|
|
381
408
|
- test/tag_parser_test.rb
|
382
409
|
- test/tag_test.rb
|
383
410
|
- test/version_test.rb
|
411
|
+
- test/yaml_document_test.rb
|
@@ -1,189 +0,0 @@
|
|
1
|
-
module SocialSnippet::Repository::Drivers
|
2
|
-
|
3
|
-
# Repository base class
|
4
|
-
# usage: class GitRepository < BaseRepository
|
5
|
-
class BaseRepository
|
6
|
-
|
7
|
-
attr_reader :path
|
8
|
-
attr_reader :cache_path
|
9
|
-
attr_reader :name
|
10
|
-
attr_reader :desc
|
11
|
-
attr_reader :main
|
12
|
-
attr_reader :ref
|
13
|
-
attr_reader :dependencies
|
14
|
-
attr_reader :ref
|
15
|
-
attr_reader :url
|
16
|
-
|
17
|
-
# Constructor
|
18
|
-
#
|
19
|
-
# @param path [String] The path of repository
|
20
|
-
def initialize(new_path, new_ref = nil)
|
21
|
-
@path = new_path
|
22
|
-
@cache_path = nil
|
23
|
-
@ref = new_ref
|
24
|
-
|
25
|
-
if ( not ref.nil? ) && ( not refs.empty? ) && ( not refs.include?(ref) )
|
26
|
-
raise Errors::NotExistRef
|
27
|
-
end
|
28
|
-
|
29
|
-
@url = nil
|
30
|
-
end
|
31
|
-
|
32
|
-
# Set repo's URL
|
33
|
-
def set_url(new_url)
|
34
|
-
@url = new_url
|
35
|
-
end
|
36
|
-
|
37
|
-
def load_cache(base_cache_path)
|
38
|
-
cache_path_cand = "#{base_cache_path}/#{name}/#{short_commit_id}"
|
39
|
-
|
40
|
-
if ::Dir.exists?(cache_path_cand)
|
41
|
-
return @cache_path = cache_path_cand
|
42
|
-
end
|
43
|
-
|
44
|
-
return @cache_path = nil
|
45
|
-
end
|
46
|
-
|
47
|
-
# Create cache of repository
|
48
|
-
#
|
49
|
-
# @param cache_path [String] The path of cache dir
|
50
|
-
# @return [String] the path
|
51
|
-
def create_cache(base_cache_path)
|
52
|
-
@cache_path = "#{base_cache_path}/#{name}/#{short_commit_id}"
|
53
|
-
|
54
|
-
return if ::Dir.exists?(cache_path)
|
55
|
-
|
56
|
-
::FileUtils.mkdir_p "#{base_cache_path}/#{name}"
|
57
|
-
::FileUtils.cp_r path, cache_path
|
58
|
-
|
59
|
-
return cache_path
|
60
|
-
end
|
61
|
-
|
62
|
-
# Load snippet.json file
|
63
|
-
def load_snippet_json
|
64
|
-
text = ::File.read(::File.join(path, "snippet.json"))
|
65
|
-
snippet_json = ::JSON.parse(text)
|
66
|
-
@name = snippet_json["name"]
|
67
|
-
@desc = snippet_json["desc"]
|
68
|
-
@main = snippet_json["main"] || ""
|
69
|
-
@dependencies = snippet_json["dependencies"] || {}
|
70
|
-
end
|
71
|
-
|
72
|
-
# Returns json text from repo instance
|
73
|
-
#
|
74
|
-
# @return json text
|
75
|
-
def to_snippet_json
|
76
|
-
required = [
|
77
|
-
:name,
|
78
|
-
]
|
79
|
-
|
80
|
-
optional = [
|
81
|
-
:desc,
|
82
|
-
:main,
|
83
|
-
:dependencies,
|
84
|
-
]
|
85
|
-
|
86
|
-
data = {}
|
87
|
-
required.each do |key|
|
88
|
-
data[key] = send(key)
|
89
|
-
end
|
90
|
-
optional.each do |key|
|
91
|
-
val = send(key)
|
92
|
-
if val.nil? === false && val != ""
|
93
|
-
data[key] = send(key)
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
return data.to_json
|
98
|
-
end
|
99
|
-
|
100
|
-
# Returns latest version
|
101
|
-
#
|
102
|
-
# @param pattern [String] The pattern of version
|
103
|
-
# @return [String] The version
|
104
|
-
def latest_version(pattern = "")
|
105
|
-
pattern = "" if pattern.nil?
|
106
|
-
matched_versions = versions.select {|ref| ::SocialSnippet::Version.is_matched_version_pattern(pattern, ref)}
|
107
|
-
return ::VersionSorter.rsort(matched_versions).first
|
108
|
-
end
|
109
|
-
|
110
|
-
# Returns all versions
|
111
|
-
#
|
112
|
-
# @return [Array<String>] All versions of repository
|
113
|
-
def versions
|
114
|
-
refs.select {|ref| ::SocialSnippet::Version.is_version(ref) }
|
115
|
-
end
|
116
|
-
|
117
|
-
def current_ref
|
118
|
-
raise "not implete current_ref"
|
119
|
-
end
|
120
|
-
|
121
|
-
# Returns all refs
|
122
|
-
#
|
123
|
-
# @return [Array<String>] All references of repository
|
124
|
-
def refs
|
125
|
-
raise "not implement refs"
|
126
|
-
end
|
127
|
-
|
128
|
-
# Returns short current ref's commit id
|
129
|
-
#
|
130
|
-
# @return [String]
|
131
|
-
def short_commit_id
|
132
|
-
commit_id[0..7]
|
133
|
-
end
|
134
|
-
|
135
|
-
# Returns current ref's commit id
|
136
|
-
#
|
137
|
-
# @return [String]
|
138
|
-
def commit_id
|
139
|
-
raise "not implement commit_id"
|
140
|
-
end
|
141
|
-
|
142
|
-
# Returns the directory or file names within repository
|
143
|
-
#
|
144
|
-
# @param glob_path [String]
|
145
|
-
def glob(glob_path)
|
146
|
-
root_path = real_path("/")
|
147
|
-
::Dir.glob("#{root_path}/#{glob_path}")
|
148
|
-
end
|
149
|
-
|
150
|
-
# Returns the real path of given path
|
151
|
-
#
|
152
|
-
# @param target_path [String] The real path of repo's file or directory
|
153
|
-
def real_path(target_path)
|
154
|
-
# TODO: normalize path
|
155
|
-
if is_cached?
|
156
|
-
"#{cache_path}/#{main}/#{target_path}"
|
157
|
-
else
|
158
|
-
"#{path}/#{main}/#{target_path}"
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
|
-
# Checkout to ref
|
163
|
-
#
|
164
|
-
# @param ref [String] The reference of repository
|
165
|
-
def checkout(new_ref)
|
166
|
-
raise "not implement checkout"
|
167
|
-
end
|
168
|
-
|
169
|
-
# Check repository has version ref
|
170
|
-
#
|
171
|
-
# @return [Boolean]
|
172
|
-
def has_versions?
|
173
|
-
versions.empty? === false
|
174
|
-
end
|
175
|
-
|
176
|
-
# Check repository is cached
|
177
|
-
#
|
178
|
-
# @return [Boolean]
|
179
|
-
def is_cached?
|
180
|
-
@cache_path.nil? === false
|
181
|
-
end
|
182
|
-
|
183
|
-
def update(options = {})
|
184
|
-
throw "not implement update"
|
185
|
-
end
|
186
|
-
|
187
|
-
end # BaseRepository
|
188
|
-
|
189
|
-
end # SocialSnippet
|