whistlepig 0.2 → 0.3

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -75,6 +75,14 @@ Features that Whistlepig does provide:
75
75
  q3 = Query.new "body", "bob ~funny"
76
76
  results3 = index.search q3 # => [2]
77
77
 
78
+ entry3 = Entry.new
79
+ entry3.add_string "body", "hello joe"
80
+ entry3.add_string "subject", "what do you know?"
81
+ docid3 = index.add_entry entry3 # => 3
82
+
83
+ q4 = Query.new "body", "subject:know hello"
84
+ results4 = index.search q4 # => [3]
85
+
78
86
  == A note on concurrency:
79
87
 
80
88
  Whistlepig is currently single-process and single-thread only. However, it is
@@ -0,0 +1,3 @@
1
+ #ifndef EXTCONF_H
2
+ #define EXTCONF_H
3
+ #endif
@@ -351,6 +351,22 @@ static VALUE query_to_s(VALUE self) {
351
351
  return rb_str_new2(buf);
352
352
  }
353
353
 
354
+ /*
355
+ * Returns a deep copy of the query, with any in-progress search state
356
+ * discarded. Useful for rerunning a query without interrupting any pagination
357
+ * state.
358
+ *
359
+ */
360
+ static VALUE query_clone(VALUE self) {
361
+ char buf[1024];
362
+
363
+ wp_query* query; Data_Get_Struct(self, wp_query, query);
364
+ wp_query* clone = wp_query_clone(query);
365
+
366
+ VALUE o_query = Data_Wrap_Struct(c_query, NULL, wp_query_free, clone);
367
+ return o_query;
368
+ }
369
+
354
370
  /*
355
371
  * call-seq: and(other)
356
372
  *
@@ -524,6 +540,7 @@ void Init_whistlepigc() {
524
540
  rb_define_method(c_query, "and", query_and, 1);
525
541
  rb_define_method(c_query, "or", query_or, 1);
526
542
  rb_define_method(c_query, "to_s", query_to_s, 0);
543
+ rb_define_method(c_query, "clone", query_clone, 0);
527
544
  rb_define_attr(c_query, "query", 1, 0);
528
545
 
529
546
  c_error = rb_define_class_under(m_whistlepig, "Error", rb_eStandardError);
metadata CHANGED
@@ -1,12 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: whistlepig
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
- - 2
9
- version: "0.2"
7
+ - 3
8
+ version: "0.3"
10
9
  platform: ruby
11
10
  authors:
12
11
  - William Morgan
@@ -14,7 +13,7 @@ autorequire:
14
13
  bindir: bin
15
14
  cert_chain: []
16
15
 
17
- date: 2011-02-09 20:32:41 -08:00
16
+ date: 2011-02-20 13:43:54 -08:00
18
17
  default_executable:
19
18
  dependencies: []
20
19
 
@@ -38,6 +37,7 @@ files:
38
37
  - ext/whistlepig/tokenizer.lex.h
39
38
  - ext/whistlepig/whistlepig.h
40
39
  - ext/whistlepig/error.c
40
+ - ext/whistlepig/extconf.h
41
41
  - ext/whistlepig/stringmap.h
42
42
  - ext/whistlepig/query-parser.lex.c
43
43
  - ext/whistlepig/defaults.h
@@ -82,7 +82,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
82
82
  requirements:
83
83
  - - ">="
84
84
  - !ruby/object:Gem::Version
85
- hash: 3
86
85
  segments:
87
86
  - 0
88
87
  version: "0"
@@ -91,7 +90,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
90
  requirements:
92
91
  - - ">="
93
92
  - !ruby/object:Gem::Version
94
- hash: 3
95
93
  segments:
96
94
  - 0
97
95
  version: "0"