Class: GreenStripes::Search

Inherits:
Object
  • Object
show all
Defined in:
lib/greenstripes.rb,
ext/greenstripes/greenstripes.c

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ Search

:nodoc:



65
66
# File 'lib/greenstripes.rb', line 65

def initialize(*args) # :nodoc:
end

Class Method Details

.new(session, query, offset, count) ⇒ nil

Returns a new search object.

Returns:

  • (nil)


518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
# File 'ext/greenstripes/greenstripes.c', line 518

static VALUE search_new(VALUE klass, VALUE session, VALUE query, VALUE offset, VALUE count)
{
  // TODO: search callback should not be hardcoded

  sp_session *sess;
  Data_Get_Struct(session, sp_session, sess);

  sp_search *search = NULL;
  search = sp_search_create(sess,
                            StringValuePtr(query),
                            FIX2INT(offset),
                            FIX2INT(count),
                            0,
                            100,
                            0,
                            100,
                            search_complete_callback,
                            NULL);

  if(!search)
    return Qnil;

  VALUE search_value = Data_Wrap_Struct(class_search, NULL, search_free, search);
  VALUE argv[4] = {session, query, offset, count};
  rb_obj_call_init(search_value, 4, argv);
  return search_value;
}

Instance Method Details

#==(other) ⇒ Object



72
73
74
# File 'lib/greenstripes.rb', line 72

def ==(other)
  self.to_link == other.to_link
end

#album(index) ⇒ nil

Returns:

  • (nil)


613
614
615
616
617
618
619
620
621
# File 'ext/greenstripes/greenstripes.c', line 613

static VALUE search_album(VALUE self, VALUE index)
{
  sp_search *search;
  Data_Get_Struct(self, sp_search, search);
  int i = FIX2INT(index);
  sp_album *album = NULL;
  album = sp_search_album(search, i);
  return album ? Data_Wrap_Struct(class_album, NULL, NULL, album) : Qnil;
}

#albumsObject



80
81
82
# File 'lib/greenstripes.rb', line 80

def albums
  FakeArray.new(self, :albums)
end

#artist(index) ⇒ nil

Returns:

  • (nil)


587
588
589
590
591
592
593
594
595
# File 'ext/greenstripes/greenstripes.c', line 587

static VALUE search_artist(VALUE self, VALUE index)
{
  sp_search *search;
  Data_Get_Struct(self, sp_search, search);
  int i = FIX2INT(index);
  sp_artist *artist = NULL;
  artist = sp_search_artist(search, i);
  return artist ? Data_Wrap_Struct(class_artist, NULL, NULL, artist) : Qnil;
}

#artistsObject



76
77
78
# File 'lib/greenstripes.rb', line 76

def artists
  FakeArray.new(self, :artists)
end

#did_you_meanString?

Returns the “did you mean” suggestion for the search object, or nil if no suggestion is available.

Returns:



681
682
683
684
685
686
687
# File 'ext/greenstripes/greenstripes.c', line 681

static VALUE search_did_you_mean(VALUE self)
{
  sp_search *search;
  Data_Get_Struct(self, sp_search, search);
  const char *d = sp_search_did_you_mean(search);
  return d ? rb_str_new2(d) : Qnil;
}

#errorObject

Returns one of the constants defined in Error.



563
564
565
566
567
568
569
# File 'ext/greenstripes/greenstripes.c', line 563

static VALUE search_error(VALUE self)
{
  sp_search *search;
  Data_Get_Struct(self, sp_search, search);
  sp_error error = sp_search_error(search);
  return INT2FIX(error);
}

#loaded?Boolean

Returns true if the search object is loaded, false otherwise.

Returns:

  • (Boolean)


551
552
553
554
555
556
# File 'ext/greenstripes/greenstripes.c', line 551

static VALUE search_loaded(VALUE self)
{
  sp_search *search;
  Data_Get_Struct(self, sp_search, search);
  return sp_search_is_loaded(search) ? Qtrue : Qfalse;
}

#num_albumsFixnum?

Returns:

  • (Fixnum, nil)


601
602
603
604
605
606
607
# File 'ext/greenstripes/greenstripes.c', line 601

static VALUE search_num_albums(VALUE self)
{
  sp_search *search;
  Data_Get_Struct(self, sp_search, search);
  int n = sp_search_num_albums(search);
  return (n >= 0) ? INT2FIX(n) : Qnil;
}

#num_artistsFixnum?

Returns:

  • (Fixnum, nil)


575
576
577
578
579
580
581
# File 'ext/greenstripes/greenstripes.c', line 575

static VALUE search_num_artists(VALUE self)
{
  sp_search *search;
  Data_Get_Struct(self, sp_search, search);
  int n = sp_search_num_artists(search);
  return (n >= 0) ? INT2FIX(n) : Qnil;
}

#num_tracksFixnum?

Returns:

  • (Fixnum, nil)


627
628
629
630
631
632
633
# File 'ext/greenstripes/greenstripes.c', line 627

static VALUE search_num_tracks(VALUE self)
{
  sp_search *search;
  Data_Get_Struct(self, sp_search, search);
  int n = sp_search_num_tracks(search);
  return (n >= 0) ? INT2FIX(n) : Qnil;
}

#queryString?

Returns the query for the search object.

Returns:



667
668
669
670
671
672
673
# File 'ext/greenstripes/greenstripes.c', line 667

static VALUE search_query(VALUE self)
{
  sp_search *search;
  Data_Get_Struct(self, sp_search, search);
  const char *q = sp_search_query(search);
  return q ? rb_str_new2(q) : Qnil;
}


68
69
70
# File 'lib/greenstripes.rb', line 68

def to_link
  Link.new(self)
end

#total_tracksFixnum?

Returns the total number of track hits for the search query.

Returns:

  • (Fixnum, nil)


654
655
656
657
658
659
660
# File 'ext/greenstripes/greenstripes.c', line 654

static VALUE search_total_tracks(VALUE self)
{
  sp_search *search;
  Data_Get_Struct(self, sp_search, search);
  int n = sp_search_total_tracks(search);
  return (n >= 0) ? INT2FIX(n) : Qnil;
}

#track(index) ⇒ nil

Returns:

  • (nil)


639
640
641
642
643
644
645
646
647
# File 'ext/greenstripes/greenstripes.c', line 639

static VALUE search_track(VALUE self, VALUE index)
{
  sp_search *search;
  Data_Get_Struct(self, sp_search, search);
  int i = FIX2INT(index);
  sp_track *track = NULL;
  track = sp_search_track(search, i);
  return track ? Data_Wrap_Struct(class_track, NULL, NULL, track) : Qnil;
}

#tracksObject



84
85
86
# File 'lib/greenstripes.rb', line 84

def tracks
  FakeArray.new(self, :tracks)
end