Class: Glimmer::Util::UrlQueryStringBuilder
- Inherits:
-
Object
- Object
- Glimmer::Util::UrlQueryStringBuilder
- Defined in:
- lib/glimmer/util/url_query_string_builder.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize ⇒ UrlQueryStringBuilder
constructor
A new instance of UrlQueryStringBuilder.
- #param(name, value) ⇒ Object
- #params(params_hash) ⇒ Object
- #query(value) ⇒ Object
- #to_query_string ⇒ Object (also: #to_s, #build)
- #with_question_mark ⇒ Object (also: #with_prefix)
Constructor Details
#initialize ⇒ UrlQueryStringBuilder
Returns a new instance of UrlQueryStringBuilder.
13 14 15 |
# File 'lib/glimmer/util/url_query_string_builder.rb', line 13 def initialize @params = {} end |
Class Method Details
.current ⇒ Object
8 9 10 |
# File 'lib/glimmer/util/url_query_string_builder.rb', line 8 def current new.query($$.document.location.search) if RUBY_ENGINE == 'opal' end |
Instance Method Details
#param(name, value) ⇒ Object
23 24 25 26 |
# File 'lib/glimmer/util/url_query_string_builder.rb', line 23 def param(name, value) @params[name.to_s] = value self end |
#params(params_hash) ⇒ Object
28 29 30 31 |
# File 'lib/glimmer/util/url_query_string_builder.rb', line 28 def params(params_hash) @params = @params.merge(params_hash) self end |
#query(value) ⇒ Object
33 34 35 36 37 38 39 40 41 42 |
# File 'lib/glimmer/util/url_query_string_builder.rb', line 33 def query(value) return self if value.nil? value = value.sub('?', '') if value.start_with?('?') value.split('&').each do |param_pair| name, value = param_pair.split('=') @params[name.to_s] = value end self end |
#to_query_string ⇒ Object Also known as: to_s, build
44 45 46 47 48 |
# File 'lib/glimmer/util/url_query_string_builder.rb', line 44 def to_query_string computed_query = @params.reject { |name, value| value.nil? || value.to_s.empty? }.map { |name, value| "#{name}=#{value}" }.join('&') computed_query = "?#{computed_query}" if @with_question_mark && !computed_query.empty? computed_query end |
#with_question_mark ⇒ Object Also known as: with_prefix
17 18 19 20 |
# File 'lib/glimmer/util/url_query_string_builder.rb', line 17 def with_question_mark @with_question_mark = true self end |