Class: Mbrao::Author

Inherits:
Object
  • Object
show all
Defined in:
lib/mbrao/author.rb

Overview

Represents the author of a parsed content, with its metadata.

Instance Attribute Summary (collapse)

Class Method Summary (collapse)

Instance Method Summary (collapse)

Constructor Details

- (Author) initialize(name, email = nil, website = nil, image = nil, metadata = nil, uid = nil)

Creates a new author.

Parameters:

  • name (String)

    The name of the author.

  • email (String) (defaults to: nil)

    The email of the author.

  • website (String) (defaults to: nil)

    The website of the author.

  • image (String) (defaults to: nil)

    The URL of the avatar of the author.

  • metadata (HashWithIndifferentAccess) (defaults to: nil)

    The full list of metadata of this author.

  • uid (String) (defaults to: nil)

    A unique ID for this post. This is only for client uses.



38
39
40
41
42
43
44
45
# File 'lib/mbrao/author.rb', line 38

def initialize(name, email = nil, website = nil, image = nil,  = nil, uid = nil)
  @name = name.ensure_string
  @email = Mbrao::Parser.is_email?(email) ? email : nil
  @website = Mbrao::Parser.is_url?(website) ? website : nil
  @image = Mbrao::Parser.is_url?(image) ? image : nil
  @metadata = .ensure_hash(:indifferent)
  @uid = uid
end

Instance Attribute Details

- (String) email

Returns The email of the author.

Returns:

  • (String)

    The email of the author.



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
55
56
57
58
59
60
# File 'lib/mbrao/author.rb', line 22

class Author
  attr_accessor :uid
  attr_accessor :name
  attr_accessor :email
  attr_accessor :website
  attr_accessor :image
  attr_accessor :metadata

  # Creates a new author.
  #
  # @param name [String] The name of the author.
  # @param email [String] The email of the author.
  # @param website [String] The website of the author.
  # @param image [String] The URL of the avatar of the author.
  # @param metadata [HashWithIndifferentAccess] The full list of metadata of this author.
  # @param uid [String] A unique ID for this post. This is only for client uses.
  def initialize(name, email = nil, website = nil, image = nil,  = nil, uid = nil)
    @name = name.ensure_string
    @email = Mbrao::Parser.is_email?(email) ? email : nil
    @website = Mbrao::Parser.is_url?(website) ? website : nil
    @image = Mbrao::Parser.is_url?(image) ? image : nil
    @metadata = .ensure_hash(:indifferent)
    @uid = uid
  end

  # Creates an author from a `Hash`.
  #
  # @param data [Hash] The data of the author
  # @return [Author] A new author.
  def self.create(data)
    if data.is_a?(Hash) then
      data = HashWithIndifferentAccess.new(data)
      uid = data.delete(:uid)
      Mbrao::Author.new(data.delete(:name), data.delete(:email), data.delete(:website), data.delete(:image), data, uid)
    else
      Mbrao::Author.new(data)
    end
  end
end

- (String) image

Returns The URL of the avatar of the author.

Returns:

  • (String)

    The URL of the avatar of the author.



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
55
56
57
58
59
60
# File 'lib/mbrao/author.rb', line 22

class Author
  attr_accessor :uid
  attr_accessor :name
  attr_accessor :email
  attr_accessor :website
  attr_accessor :image
  attr_accessor :metadata

  # Creates a new author.
  #
  # @param name [String] The name of the author.
  # @param email [String] The email of the author.
  # @param website [String] The website of the author.
  # @param image [String] The URL of the avatar of the author.
  # @param metadata [HashWithIndifferentAccess] The full list of metadata of this author.
  # @param uid [String] A unique ID for this post. This is only for client uses.
  def initialize(name, email = nil, website = nil, image = nil,  = nil, uid = nil)
    @name = name.ensure_string
    @email = Mbrao::Parser.is_email?(email) ? email : nil
    @website = Mbrao::Parser.is_url?(website) ? website : nil
    @image = Mbrao::Parser.is_url?(image) ? image : nil
    @metadata = .ensure_hash(:indifferent)
    @uid = uid
  end

  # Creates an author from a `Hash`.
  #
  # @param data [Hash] The data of the author
  # @return [Author] A new author.
  def self.create(data)
    if data.is_a?(Hash) then
      data = HashWithIndifferentAccess.new(data)
      uid = data.delete(:uid)
      Mbrao::Author.new(data.delete(:name), data.delete(:email), data.delete(:website), data.delete(:image), data, uid)
    else
      Mbrao::Author.new(data)
    end
  end
end

- (HashWithIndifferentAccess) metadata

Returns The full list of metadata of this author.

Returns:

  • (HashWithIndifferentAccess)

    The full list of metadata of this author.



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
55
56
57
58
59
60
# File 'lib/mbrao/author.rb', line 22

class Author
  attr_accessor :uid
  attr_accessor :name
  attr_accessor :email
  attr_accessor :website
  attr_accessor :image
  attr_accessor :metadata

  # Creates a new author.
  #
  # @param name [String] The name of the author.
  # @param email [String] The email of the author.
  # @param website [String] The website of the author.
  # @param image [String] The URL of the avatar of the author.
  # @param metadata [HashWithIndifferentAccess] The full list of metadata of this author.
  # @param uid [String] A unique ID for this post. This is only for client uses.
  def initialize(name, email = nil, website = nil, image = nil,  = nil, uid = nil)
    @name = name.ensure_string
    @email = Mbrao::Parser.is_email?(email) ? email : nil
    @website = Mbrao::Parser.is_url?(website) ? website : nil
    @image = Mbrao::Parser.is_url?(image) ? image : nil
    @metadata = .ensure_hash(:indifferent)
    @uid = uid
  end

  # Creates an author from a `Hash`.
  #
  # @param data [Hash] The data of the author
  # @return [Author] A new author.
  def self.create(data)
    if data.is_a?(Hash) then
      data = HashWithIndifferentAccess.new(data)
      uid = data.delete(:uid)
      Mbrao::Author.new(data.delete(:name), data.delete(:email), data.delete(:website), data.delete(:image), data, uid)
    else
      Mbrao::Author.new(data)
    end
  end
end

- (String) name

Returns The name of the author.

Returns:

  • (String)

    The name of the author.



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
55
56
57
58
59
60
# File 'lib/mbrao/author.rb', line 22

class Author
  attr_accessor :uid
  attr_accessor :name
  attr_accessor :email
  attr_accessor :website
  attr_accessor :image
  attr_accessor :metadata

  # Creates a new author.
  #
  # @param name [String] The name of the author.
  # @param email [String] The email of the author.
  # @param website [String] The website of the author.
  # @param image [String] The URL of the avatar of the author.
  # @param metadata [HashWithIndifferentAccess] The full list of metadata of this author.
  # @param uid [String] A unique ID for this post. This is only for client uses.
  def initialize(name, email = nil, website = nil, image = nil,  = nil, uid = nil)
    @name = name.ensure_string
    @email = Mbrao::Parser.is_email?(email) ? email : nil
    @website = Mbrao::Parser.is_url?(website) ? website : nil
    @image = Mbrao::Parser.is_url?(image) ? image : nil
    @metadata = .ensure_hash(:indifferent)
    @uid = uid
  end

  # Creates an author from a `Hash`.
  #
  # @param data [Hash] The data of the author
  # @return [Author] A new author.
  def self.create(data)
    if data.is_a?(Hash) then
      data = HashWithIndifferentAccess.new(data)
      uid = data.delete(:uid)
      Mbrao::Author.new(data.delete(:name), data.delete(:email), data.delete(:website), data.delete(:image), data, uid)
    else
      Mbrao::Author.new(data)
    end
  end
end

- (String) uid

Returns A unique ID for this post. This is only for client uses.

Returns:

  • (String)

    A unique ID for this post. This is only for client uses.



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
55
56
57
58
59
60
# File 'lib/mbrao/author.rb', line 22

class Author
  attr_accessor :uid
  attr_accessor :name
  attr_accessor :email
  attr_accessor :website
  attr_accessor :image
  attr_accessor :metadata

  # Creates a new author.
  #
  # @param name [String] The name of the author.
  # @param email [String] The email of the author.
  # @param website [String] The website of the author.
  # @param image [String] The URL of the avatar of the author.
  # @param metadata [HashWithIndifferentAccess] The full list of metadata of this author.
  # @param uid [String] A unique ID for this post. This is only for client uses.
  def initialize(name, email = nil, website = nil, image = nil,  = nil, uid = nil)
    @name = name.ensure_string
    @email = Mbrao::Parser.is_email?(email) ? email : nil
    @website = Mbrao::Parser.is_url?(website) ? website : nil
    @image = Mbrao::Parser.is_url?(image) ? image : nil
    @metadata = .ensure_hash(:indifferent)
    @uid = uid
  end

  # Creates an author from a `Hash`.
  #
  # @param data [Hash] The data of the author
  # @return [Author] A new author.
  def self.create(data)
    if data.is_a?(Hash) then
      data = HashWithIndifferentAccess.new(data)
      uid = data.delete(:uid)
      Mbrao::Author.new(data.delete(:name), data.delete(:email), data.delete(:website), data.delete(:image), data, uid)
    else
      Mbrao::Author.new(data)
    end
  end
end

- (String) website

Returns The website of the author.

Returns:

  • (String)

    The website of the author.



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
55
56
57
58
59
60
# File 'lib/mbrao/author.rb', line 22

class Author
  attr_accessor :uid
  attr_accessor :name
  attr_accessor :email
  attr_accessor :website
  attr_accessor :image
  attr_accessor :metadata

  # Creates a new author.
  #
  # @param name [String] The name of the author.
  # @param email [String] The email of the author.
  # @param website [String] The website of the author.
  # @param image [String] The URL of the avatar of the author.
  # @param metadata [HashWithIndifferentAccess] The full list of metadata of this author.
  # @param uid [String] A unique ID for this post. This is only for client uses.
  def initialize(name, email = nil, website = nil, image = nil,  = nil, uid = nil)
    @name = name.ensure_string
    @email = Mbrao::Parser.is_email?(email) ? email : nil
    @website = Mbrao::Parser.is_url?(website) ? website : nil
    @image = Mbrao::Parser.is_url?(image) ? image : nil
    @metadata = .ensure_hash(:indifferent)
    @uid = uid
  end

  # Creates an author from a `Hash`.
  #
  # @param data [Hash] The data of the author
  # @return [Author] A new author.
  def self.create(data)
    if data.is_a?(Hash) then
      data = HashWithIndifferentAccess.new(data)
      uid = data.delete(:uid)
      Mbrao::Author.new(data.delete(:name), data.delete(:email), data.delete(:website), data.delete(:image), data, uid)
    else
      Mbrao::Author.new(data)
    end
  end
end

Class Method Details

+ (Author) create(data)

Creates an author from a Hash.

Parameters:

  • data (Hash)

    The data of the author

Returns:



51
52
53
54
55
56
57
58
59
# File 'lib/mbrao/author.rb', line 51

def self.create(data)
  if data.is_a?(Hash) then
    data = HashWithIndifferentAccess.new(data)
    uid = data.delete(:uid)
    Mbrao::Author.new(data.delete(:name), data.delete(:email), data.delete(:website), data.delete(:image), data, uid)
  else
    Mbrao::Author.new(data)
  end
end