module NetSuite::Support::Fields::ClassMethods
Public Instance Methods
field(name, klass = nil)
click to toggle source
# File lib/netsuite/support/fields.rb, line 22 def field(name, klass = nil) name_sym = name.to_sym raise "#{name} already defined on #{self.name}" if fields.include?(name_sym) fields << name_sym if klass define_method(name_sym) do attributes[name_sym] ||= klass.new end define_method("#{name_sym}=") do |value| if value.nil? attributes.delete(name_sym) else attributes[name_sym] = value.kind_of?(klass) ? value : klass.new(value) end end else define_method(name_sym) do attributes[name_sym] end define_method("#{name_sym}=") do |value| attributes[name_sym] = value end end end
fields(*args)
click to toggle source
# File lib/netsuite/support/fields.rb, line 12 def fields(*args) if args.empty? @fields ||= Set.new else args.each do |arg| field arg end end end
read_only_field(name)
click to toggle source
# File lib/netsuite/support/fields.rb, line 59 def read_only_field(name) name_sym = name.to_sym read_only_fields << name_sym field name end
read_only_fields(*args)
click to toggle source
# File lib/netsuite/support/fields.rb, line 49 def read_only_fields(*args) if args.empty? @read_only_fields ||= Set.new else args.each do |arg| read_only_field arg end end end
search_only_field(name)
click to toggle source
# File lib/netsuite/support/fields.rb, line 75 def search_only_field(name) name_sym = name.to_sym search_only_fields << name_sym field name end
search_only_fields(*args)
click to toggle source
# File lib/netsuite/support/fields.rb, line 65 def search_only_fields(*args) if args.empty? @search_only_fields ||= Set.new else args.each do |arg| search_only_field arg end end end