Module: NgOnRailsHelper

Defined in:
app/helpers/ng_on_rails_helper.rb

Instance Method Summary collapse

Instance Method Details

#locals_to_json(ng_data) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'app/helpers/ng_on_rails_helper.rb', line 2

def locals_to_json ng_data
  j = ActiveSupport::JSON
  locals_hash = {}
  instance_variable_names.each do |var_name|
    unless !!var_name.match(/^@_/)
      unless ignorables.include? var_name
        name = var_name.gsub("@","")
        instance_var = instance_variable_get(var_name)
        unless instance_var.blank?
          if ng_data.blank?
            rv = instance_var
          else
            unless ng_data[name] == "IGNORE"
              if !ng_data[name]
                if !!ng_data["BUILD"] 
                  rv = build(name,instance_var)
                else
                  rv = instance_var
                end
              elsif ng_data[name]=="BUILD"
                rv = build(name,instance_var)
              elsif ng_data[name].class==Hash
                path = ng_data[name][:path]
                model_name = ng_data[name][:as] || name
                rv = build(model_name,instance_var,path)
              end
            end        
          end
          unless !defined?(rv) || rv.blank?
            if (rv.is_a?(String) && !is_json?(rv)) || rv.is_a?(Numeric)
              locals_hash[name] = rv
            elsif is_json?(rv)
              locals_hash[name] = j.decode(rv)
            else
              locals_hash[name] = j.decode(rv.to_json)
            end
          end  
        end
      end
    end
  end
  return locals_hash.to_json
end