Class: XDry::Boxing::ArrayConverter

Inherits:
Boxer
  • Object
show all
Defined in:
lib/xdry/boxing.rb

Instance Method Summary collapse

Constructor Details

#initialize(item_type, init_selector, repr_selector) ⇒ ArrayConverter

Returns a new instance of ArrayConverter.



123
124
125
126
127
# File 'lib/xdry/boxing.rb', line 123

def initialize item_type, init_selector, repr_selector
  @item_type = item_type
  @init_selector = init_selector
  @repr_selector = repr_selector
end

Instance Method Details

#box(out, data_expr, tempvar_prefix) ⇒ Object



129
130
131
132
133
134
135
136
137
138
# File 'lib/xdry/boxing.rb', line 129

def box out, data_expr, tempvar_prefix
  array_var = "#{tempvar_prefix}Array"
  item_var  = "#{tempvar_prefix}Item"

  out << "NSMutableArray *#{array_var} = [NSMutableArray array];"
  out.block "for (#{@item_type} *#{item_var} in #{data_expr})" do
    out << "[#{array_var} addObject:[#{item_var} #{@repr_selector}]];"
  end
  "#{array_var}"
end

#retain_policyObject



148
# File 'lib/xdry/boxing.rb', line 148

def retain_policy; RetainPolicy::COPY; end

#unbox(out, object_expr, tempvar_prefix) ⇒ Object



140
141
142
# File 'lib/xdry/boxing.rb', line 140

def unbox out, object_expr, tempvar_prefix
  unbox_internal out, object_expr, tempvar_prefix, "[NSMutableArray array]"
end

#unbox_retained(out, object_expr, tempvar_prefix) ⇒ Object



144
145
146
# File 'lib/xdry/boxing.rb', line 144

def unbox_retained out, object_expr, tempvar_prefix
  unbox_internal out, object_expr, tempvar_prefix, "[[NSMutableArray alloc] init]"
end