Class: SocialSnippet::Registry::WebAPI::Repository
- Inherits:
-
Object
- Object
- SocialSnippet::Registry::WebAPI::Repository
- Includes:
- Mongoid::Document, Mongoid::Timestamps
- Defined in:
- lib/social_snippet/registry/webapi/models/repository.rb
Constant Summary collapse
- FIELD_KEYS =
methods
[ :name, :url, :desc, :dependencies, :license, :languages, ]
Class Method Summary collapse
- .all_repos ⇒ Object
- .create_by_snippet_json(json_obj) ⇒ Object
- .is_valid_language?(language) ⇒ Boolean
- .is_valid_repo_name?(repo_name) ⇒ Boolean
- .is_valid_url?(url) ⇒ Boolean
- .query(s) ⇒ Object
Instance Method Summary collapse
- #has_invalid_dependencies? ⇒ Boolean
- #has_invalid_language? ⇒ Boolean
- #to_object ⇒ Object
- #update_by_snippet_json(json_obj) ⇒ Object
Class Method Details
.all_repos ⇒ Object
109 110 111 |
# File 'lib/social_snippet/registry/webapi/models/repository.rb', line 109 def all_repos all.map {|repo| repo.to_object } end |
.create_by_snippet_json(json_obj) ⇒ Object
117 118 119 120 121 |
# File 'lib/social_snippet/registry/webapi/models/repository.rb', line 117 def create_by_snippet_json(json_obj) model = find_or_create_by(:name => json_obj["name"]) model.update_by_snippet_json json_obj return model end |
.is_valid_language?(language) ⇒ Boolean
101 102 103 |
# File 'lib/social_snippet/registry/webapi/models/repository.rb', line 101 def is_valid_language?(language) /^[a-zA-Z0-9\.\-\_\+\#]+$/ === language end |
.is_valid_repo_name?(repo_name) ⇒ Boolean
105 106 107 |
# File 'lib/social_snippet/registry/webapi/models/repository.rb', line 105 def is_valid_repo_name?(repo_name) /^[a-z][a-z0-9\.\-\_]*$/ === repo_name end |
.is_valid_url?(url) ⇒ Boolean
97 98 99 |
# File 'lib/social_snippet/registry/webapi/models/repository.rb', line 97 def is_valid_url?(url) /^(http|https|git)\:\/\// === url end |
.query(s) ⇒ Object
113 114 115 |
# File 'lib/social_snippet/registry/webapi/models/repository.rb', line 113 def query(s) where(:name => /#{s}/).map {|repo| repo.to_object } # TODO end |
Instance Method Details
#has_invalid_dependencies? ⇒ Boolean
57 58 59 |
# File 'lib/social_snippet/registry/webapi/models/repository.rb', line 57 def has_invalid_dependencies? dependencies.any? {|dep_name| not self.class.is_valid_repo_name?(dep_name) } end |
#has_invalid_language? ⇒ Boolean
61 62 63 |
# File 'lib/social_snippet/registry/webapi/models/repository.rb', line 61 def has_invalid_language? languages.any? {|language| not self.class.is_valid_language?(lang) } end |
#to_object ⇒ Object
78 79 80 81 82 83 |
# File 'lib/social_snippet/registry/webapi/models/repository.rb', line 78 def to_object FIELD_KEYS.reduce({}) do |obj, key| obj[key.to_sym] = self[key] obj end end |
#update_by_snippet_json(json_obj) ⇒ Object
85 86 87 88 89 90 91 92 93 |
# File 'lib/social_snippet/registry/webapi/models/repository.rb', line 85 def update_by_snippet_json(json_obj) filter = %w( desc ) repo_info = json_obj.select {|k, v| filter.include? k } write_attributes repo_info # deps: hash to array self.dependencies = json_obj["dependencies"] && json_obj["dependencies"].keys end |