Class: Shortwave::Facade::Build::Parameter

Inherits:
Object
  • Object
show all
Defined in:
lib/shortwave/facade/build/facade_builder.rb

Overview

A parameter used in a Last FM api method call.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, required, description) ⇒ Parameter

Returns a new instance of Parameter.



142
143
144
# File 'lib/shortwave/facade/build/facade_builder.rb', line 142

def initialize(name, required, description)
  @name, @required, @description = name, required, description.gsub(/\s+/, ' ')
end

Instance Attribute Details

#descriptionObject (readonly)

Returns the value of attribute description.



140
141
142
# File 'lib/shortwave/facade/build/facade_builder.rb', line 140

def description
  @description
end

#nameObject (readonly)

Returns the value of attribute name.



140
141
142
# File 'lib/shortwave/facade/build/facade_builder.rb', line 140

def name
  @name
end

Class Method Details

.parse(html) ⇒ Object

Returns an array of Parameters, given an HTML page from the Last FM API method documentation



148
149
150
151
152
153
154
155
156
157
158
159
160
161
# File 'lib/shortwave/facade/build/facade_builder.rb', line 148

def self.parse(html)
  doc = html.kind_of?(Nokogiri::HTML::Document) ? html : Nokogiri::HTML(html)

  doc.css(PARAMETER_CSS).map do |node|
    name = node.text.strip
    unless name.nil? || name.empty?
      if match = name.match(COMBINED_PARAMS)
        match[2].split("|").map {|v| make_parameter(node, match[1] + v) }
      else
        make_parameter(node, name)
      end
    end
  end.flatten.compact
end

Instance Method Details

#required?Boolean

Returns true if this parameter is required

Returns:

  • (Boolean)


164
165
166
# File 'lib/shortwave/facade/build/facade_builder.rb', line 164

def required?
  @required
end