Class: Dependabot::DependencyFile
- Inherits:
-
Object
- Object
- Dependabot::DependencyFile
- Defined in:
- lib/dependabot/dependency_file.rb
Defined Under Namespace
Classes: ContentEncoding, Operation
Instance Attribute Summary collapse
-
#content ⇒ Object
Returns the value of attribute content.
-
#content_encoding ⇒ Object
Returns the value of attribute content_encoding.
-
#directory ⇒ Object
Returns the value of attribute directory.
-
#mode ⇒ Object
Returns the value of attribute mode.
-
#name ⇒ Object
Returns the value of attribute name.
-
#operation ⇒ Object
Returns the value of attribute operation.
-
#support_file ⇒ Object
Returns the value of attribute support_file.
-
#symlink_target ⇒ Object
Returns the value of attribute symlink_target.
-
#type ⇒ Object
Returns the value of attribute type.
Instance Method Summary collapse
- #==(other) ⇒ Object
- #binary? ⇒ Boolean
- #decoded_content ⇒ Object
- #deleted ⇒ Object
- #deleted=(deleted) ⇒ Object
- #deleted? ⇒ Boolean
- #eql?(other) ⇒ Boolean
- #hash ⇒ Object
-
#initialize(name:, content:, directory: "/", type: "file", support_file: false, symlink_target: nil, content_encoding: ContentEncoding::UTF_8, deleted: false, operation: Operation::UPDATE, mode: nil) ⇒ DependencyFile
constructor
A new instance of DependencyFile.
- #path ⇒ Object
- #support_file? ⇒ Boolean
- #to_h ⇒ Object
Constructor Details
#initialize(name:, content:, directory: "/", type: "file", support_file: false, symlink_target: nil, content_encoding: ContentEncoding::UTF_8, deleted: false, operation: Operation::UPDATE, mode: nil) ⇒ DependencyFile
Returns a new instance of DependencyFile.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/dependabot/dependency_file.rb', line 21 def initialize(name:, content:, directory: "/", type: "file", support_file: false, symlink_target: nil, content_encoding: ContentEncoding::UTF_8, deleted: false, operation: Operation::UPDATE, mode: nil) @name = name @content = content @directory = clean_directory(directory) @symlink_target = symlink_target @support_file = support_file @content_encoding = content_encoding @operation = operation # Make deleted override the operation. Deleted is kept when operation # was introduced to keep compatibility with downstream dependants. @operation = Operation::DELETE if deleted # Type is used *very* sparingly. It lets the git_modules updater know that # a "file" is actually a submodule, and lets our Go updaters know which # file represents the main.go. # New use cases should be avoided if at all possible (and use the # support_file flag instead) @type = type begin @mode = File.stat((symlink_target || path).sub(%r{^/}, "")).mode.to_s(8) rescue StandardError @mode = mode end return unless (type == "symlink") ^ symlink_target raise "Symlinks must specify a target!" unless symlink_target raise "Only symlinked files must specify a target!" if symlink_target end |
Instance Attribute Details
#content ⇒ Object
Returns the value of attribute content.
7 8 9 |
# File 'lib/dependabot/dependency_file.rb', line 7 def content @content end |
#content_encoding ⇒ Object
Returns the value of attribute content_encoding.
7 8 9 |
# File 'lib/dependabot/dependency_file.rb', line 7 def content_encoding @content_encoding end |
#directory ⇒ Object
Returns the value of attribute directory.
7 8 9 |
# File 'lib/dependabot/dependency_file.rb', line 7 def directory @directory end |
#mode ⇒ Object
Returns the value of attribute mode.
7 8 9 |
# File 'lib/dependabot/dependency_file.rb', line 7 def mode @mode end |
#name ⇒ Object
Returns the value of attribute name.
7 8 9 |
# File 'lib/dependabot/dependency_file.rb', line 7 def name @name end |
#operation ⇒ Object
Returns the value of attribute operation.
7 8 9 |
# File 'lib/dependabot/dependency_file.rb', line 7 def operation @operation end |
#support_file ⇒ Object
Returns the value of attribute support_file.
7 8 9 |
# File 'lib/dependabot/dependency_file.rb', line 7 def support_file @support_file end |
#symlink_target ⇒ Object
Returns the value of attribute symlink_target.
7 8 9 |
# File 'lib/dependabot/dependency_file.rb', line 7 def symlink_target @symlink_target end |
#type ⇒ Object
Returns the value of attribute type.
7 8 9 |
# File 'lib/dependabot/dependency_file.rb', line 7 def type @type end |
Instance Method Details
#==(other) ⇒ Object
77 78 79 80 81 82 83 |
# File 'lib/dependabot/dependency_file.rb', line 77 def ==(other) return false unless other.instance_of?(self.class) my_hash = to_h.reject { |k| k == "support_file" } their_hash = other.to_h.reject { |k| k == "support_file" } my_hash == their_hash end |
#binary? ⇒ Boolean
109 110 111 |
# File 'lib/dependabot/dependency_file.rb', line 109 def binary? content_encoding == ContentEncoding::BASE64 end |
#decoded_content ⇒ Object
113 114 115 116 117 |
# File 'lib/dependabot/dependency_file.rb', line 113 def decoded_content return Base64.decode64(content) if binary? content end |
#deleted ⇒ Object
97 98 99 |
# File 'lib/dependabot/dependency_file.rb', line 97 def deleted @operation == Operation::DELETE end |
#deleted=(deleted) ⇒ Object
101 102 103 |
# File 'lib/dependabot/dependency_file.rb', line 101 def deleted=(deleted) @operation = deleted ? Operation::DELETE : Operation::UPDATE end |
#deleted? ⇒ Boolean
105 106 107 |
# File 'lib/dependabot/dependency_file.rb', line 105 def deleted? deleted end |
#eql?(other) ⇒ Boolean
89 90 91 |
# File 'lib/dependabot/dependency_file.rb', line 89 def eql?(other) self.==(other) end |
#hash ⇒ Object
85 86 87 |
# File 'lib/dependabot/dependency_file.rb', line 85 def hash to_h.hash end |
#path ⇒ Object
73 74 75 |
# File 'lib/dependabot/dependency_file.rb', line 73 def path Pathname.new(File.join(directory, name)).cleanpath.to_path end |
#support_file? ⇒ Boolean
93 94 95 |
# File 'lib/dependabot/dependency_file.rb', line 93 def support_file? @support_file end |
#to_h ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/dependabot/dependency_file.rb', line 56 def to_h details = { "name" => name, "content" => content, "directory" => directory, "type" => type, "support_file" => support_file, "content_encoding" => content_encoding, "deleted" => deleted, "operation" => operation, "mode" => mode } details["symlink_target"] = symlink_target if symlink_target details end |