Class: Grit::Actor
- Inherits:
-
Object
- Object
- Grit::Actor
- Defined in:
- lib/grit/actor.rb
Instance Attribute Summary collapse
-
#email ⇒ Object
readonly
Returns the value of attribute email.
-
#name ⇒ Object
(also: #to_s)
readonly
Returns the value of attribute name.
Class Method Summary collapse
-
.from_string(str) ⇒ Object
Create an Actor from a string.
Instance Method Summary collapse
-
#initialize(name, email) ⇒ Actor
constructor
A new instance of Actor.
-
#inspect ⇒ Object
Pretty object inspection.
-
#output(time) ⇒ Object
Outputs an actor string for Git commits.
Constructor Details
#initialize(name, email) ⇒ Actor
Returns a new instance of Actor.
7 8 9 10 |
# File 'lib/grit/actor.rb', line 7 def initialize(name, email) @name = name @email = email end |
Instance Attribute Details
#email ⇒ Object (readonly)
Returns the value of attribute email.
5 6 7 |
# File 'lib/grit/actor.rb', line 5 def email @email end |
#name ⇒ Object (readonly) Also known as: to_s
Returns the value of attribute name.
4 5 6 |
# File 'lib/grit/actor.rb', line 4 def name @name end |
Class Method Details
.from_string(str) ⇒ Object
Create an Actor from a string.
str - The String in this format: ‘John Doe <[email protected]>’
Returns Git::Actor.
18 19 20 21 22 23 24 25 26 |
# File 'lib/grit/actor.rb', line 18 def self.from_string(str) case str when /<.+>/ m, name, email = *str.match(/(.*) <(.+?)>/) return self.new(name, email) else return self.new(str, nil) end end |
Instance Method Details
#inspect ⇒ Object
Pretty object inspection
47 48 49 |
# File 'lib/grit/actor.rb', line 47 def inspect %Q{#<Grit::Actor "#{@name} <#{@email}>">} end |
#output(time) ⇒ Object
Outputs an actor string for Git commits.
actor = Actor.new('bob', '[email protected]')
actor.output(time) # => "bob <[email protected]> UNIX_TIME +0700"
time - The Time the commit was authored or committed.
Returns a String.
36 37 38 39 40 41 42 43 44 |
# File 'lib/grit/actor.rb', line 36 def output(time) out = @name.to_s.dup if @email out << " <#{@email}>" end hours = (time.utc_offset.to_f / 3600).to_i # 60 * 60, seconds to hours rem = time.utc_offset.abs % 3600 out << " #{time.to_i} #{hours >= 0 ? :+ : :-}#{hours.abs.to_s.rjust(2, '0')}#{rem.to_s.rjust(2, '0')}" end |