Class: RESTfulLoaders::MqlExecutor
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- RESTfulLoaders::MqlExecutor
- Includes:
- LoaderHelper
- Defined in:
- lib/mingle_macro_development_toolkit/loaders/restful_loaders/base.rb
Instance Method Summary collapse
- #can_be_cached?(mql) ⇒ Boolean
- #execute_mql(mql) ⇒ Object
- #format_date_with_project_date_format(date) ⇒ Object
- #format_number_with_project_precision(number) ⇒ Object
- #from_xml_data(data) ⇒ Object
-
#initialize(resource, error_handler, delegator) ⇒ MqlExecutor
constructor
A new instance of MqlExecutor.
- #url_for(params) ⇒ Object
Methods included from LoaderHelper
Constructor Details
#initialize(resource, error_handler, delegator) ⇒ MqlExecutor
Returns a new instance of MqlExecutor.
37 38 39 40 41 42 |
# File 'lib/mingle_macro_development_toolkit/loaders/restful_loaders/base.rb', line 37 def initialize(resource, error_handler, delegator) super(delegator) @uri = URI.parse(resource) @error_handler = error_handler @version = /(\/api\/([^\/]*))\//.match(@uri.request_uri)[2] end |
Instance Method Details
#can_be_cached?(mql) ⇒ Boolean
51 52 53 54 55 56 |
# File 'lib/mingle_macro_development_toolkit/loaders/restful_loaders/base.rb', line 51 def can_be_cached?(mql) from_xml_data(get(url_for(:action => "can_be_cached", :query => "mql=#{mql}"))) rescue => e @error_handler.alert(e.) [] end |
#execute_mql(mql) ⇒ Object
44 45 46 47 48 49 |
# File 'lib/mingle_macro_development_toolkit/loaders/restful_loaders/base.rb', line 44 def execute_mql(mql) from_xml_data(get(url_for(:action => "execute_mql", :query => "mql=#{mql}"))) rescue => e @error_handler.alert(e.) [] end |
#format_date_with_project_date_format(date) ⇒ Object
65 66 67 68 69 70 |
# File 'lib/mingle_macro_development_toolkit/loaders/restful_loaders/base.rb', line 65 def format_date_with_project_date_format(date) from_xml_data(get(url_for(:action => "format_string_to_date_format", :query => "date=#{date}"))) rescue => e @error_handler.alert(e.) [] end |
#format_number_with_project_precision(number) ⇒ Object
58 59 60 61 62 63 |
# File 'lib/mingle_macro_development_toolkit/loaders/restful_loaders/base.rb', line 58 def format_number_with_project_precision(number) from_xml_data(get(url_for(:action => "format_number_to_project_precision", :query => "number=#{number}"))) rescue => e @error_handler.alert(e.) [] end |
#from_xml_data(data) ⇒ Object
77 78 79 80 81 82 83 |
# File 'lib/mingle_macro_development_toolkit/loaders/restful_loaders/base.rb', line 77 def from_xml_data(data) if data.is_a?(Hash) && data.keys.size == 1 from_xml_data(data.values.first) else data end end |
#url_for(params) ⇒ Object
72 73 74 75 |
# File 'lib/mingle_macro_development_toolkit/loaders/restful_loaders/base.rb', line 72 def url_for(params) relative_path = URI.escape("/api/#{@version}/projects/#{identifier}/cards/#{params[:action]}.xml?#{params[:query]}") @uri.merge(relative_path).to_s end |