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.



136
137
138
139
140
# File 'lib/xdry/boxing.rb', line 136

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



142
143
144
145
146
147
148
149
150
151
# File 'lib/xdry/boxing.rb', line 142

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



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

def retain_policy; RetainPolicy::COPY; end

#unbox(out, object_expr, tempvar_prefix) ⇒ Object



153
154
155
# File 'lib/xdry/boxing.rb', line 153

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



157
158
159
# File 'lib/xdry/boxing.rb', line 157

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