enju_purchase_request 0.1.0.pre4 → 0.1.0.pre5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. data/app/models/order.rb +5 -5
  2. data/app/models/order_list.rb +6 -6
  3. data/app/models/purchase_request.rb +5 -5
  4. data/app/views/purchase_requests/_index.html.erb +1 -1
  5. data/app/views/purchase_requests/_index_order_list.html.erb +1 -1
  6. data/lib/enju_purchase_request/version.rb +1 -1
  7. data/spec/dummy/config/initializers/mime_types.rb +0 -1
  8. data/spec/dummy/db/development.sqlite3 +0 -0
  9. data/spec/dummy/db/test.sqlite3 +0 -0
  10. data/spec/dummy/solr/conf/schema.xml +2 -14
  11. data/spec/dummy/solr/conf/xslt/example.xsl +132 -0
  12. data/spec/dummy/solr/conf/xslt/example_atom.xsl +67 -0
  13. data/spec/dummy/solr/conf/xslt/example_rss.xsl +66 -0
  14. data/spec/dummy/solr/conf/xslt/luke.xsl +337 -0
  15. data/spec/dummy/solr/data/test/index/segments.gen +0 -0
  16. data/spec/dummy/solr/data/test/index/segments_m +0 -0
  17. data/spec/dummy/solr/data/test/spellchecker/segments_1 +0 -0
  18. data/spec/dummy/solr/pids/test/sunspot-solr-test.pid +1 -0
  19. data/spec/fixtures/order_lists.yml +6 -6
  20. data/spec/fixtures/orders.yml +5 -5
  21. data/spec/fixtures/purchase_requests.yml +5 -5
  22. data/spec/models/order_list_spec.rb +6 -6
  23. data/spec/models/order_spec.rb +5 -5
  24. data/spec/models/purchase_request_spec.rb +5 -5
  25. metadata +37 -22
  26. data/spec/dummy/solr/data/test/index/segments_l +0 -0
  27. /data/spec/dummy/solr/data/test/index/{_9.fdt → _a.fdt} +0 -0
  28. /data/spec/dummy/solr/data/test/index/{_9.fdx → _a.fdx} +0 -0
  29. /data/spec/dummy/solr/data/test/index/{_9.fnm → _a.fnm} +0 -0
  30. /data/spec/dummy/solr/data/test/index/{_9.frq → _a.frq} +0 -0
  31. /data/spec/dummy/solr/data/test/index/{_9.nrm → _a.nrm} +0 -0
  32. /data/spec/dummy/solr/data/test/index/{_9.prx → _a.prx} +0 -0
  33. /data/spec/dummy/solr/data/test/index/{_9.tii → _a.tii} +0 -0
  34. /data/spec/dummy/solr/data/test/index/{_9.tis → _a.tis} +0 -0
data/app/models/order.rb CHANGED
@@ -23,12 +23,12 @@ end
23
23
  #
24
24
  # Table name: orders
25
25
  #
26
- # id :integer not null, primary key
27
- # order_list_id :integer not null
28
- # purchase_request_id :integer not null
26
+ # id :integer not null, primary key
27
+ # order_list_id :integer not null
28
+ # purchase_request_id :integer not null
29
29
  # position :integer
30
30
  # state :string(255)
31
- # created_at :datetime
32
- # updated_at :datetime
31
+ # created_at :datetime not null
32
+ # updated_at :datetime not null
33
33
  #
34
34
 
@@ -38,15 +38,15 @@ end
38
38
  #
39
39
  # Table name: order_lists
40
40
  #
41
- # id :integer not null, primary key
42
- # user_id :integer not null
43
- # bookstore_id :integer not null
44
- # title :text not null
41
+ # id :integer not null, primary key
42
+ # user_id :integer not null
43
+ # bookstore_id :integer not null
44
+ # title :text not null
45
45
  # note :text
46
46
  # ordered_at :datetime
47
47
  # deleted_at :datetime
48
48
  # state :string(255)
49
- # created_at :datetime
50
- # updated_at :datetime
49
+ # created_at :datetime not null
50
+ # updated_at :datetime not null
51
51
  #
52
52
 
@@ -67,9 +67,9 @@ end
67
67
  #
68
68
  # Table name: purchase_requests
69
69
  #
70
- # id :integer not null, primary key
71
- # user_id :integer not null
72
- # title :text not null
70
+ # id :integer not null, primary key
71
+ # user_id :integer not null
72
+ # title :text not null
73
73
  # author :text
74
74
  # publisher :text
75
75
  # isbn :string(255)
@@ -79,8 +79,8 @@ end
79
79
  # note :text
80
80
  # accepted_at :datetime
81
81
  # denied_at :datetime
82
- # created_at :datetime
83
- # updated_at :datetime
82
+ # created_at :datetime not null
83
+ # updated_at :datetime not null
84
84
  # deleted_at :datetime
85
85
  # state :string(255)
86
86
  # pub_date :string(255)
@@ -5,7 +5,7 @@
5
5
  <div class="search_form">
6
6
  <%= form_for :purchase_requests, :url => purchase_requests_path, :html => {:method => 'get'} do -%>
7
7
  <p>
8
- <%= t('page.search_term') -%>: <%= search_field_tag 'query', h(@query), {:id => 'search_form_top', :class => 'search_form', :placeholder => t('page.search_term')} -%>
8
+ <%= label_tag :search_form_top, t('page.search_term') -%>: <%= search_field_tag 'query', h(@query), {:id => 'search_form_top', :class => 'search_form', :placeholder => t('page.search_term')} -%>
9
9
  <%= submit_tag t('page.search') -%>
10
10
  </p>
11
11
  <%- end -%>
@@ -13,7 +13,7 @@
13
13
  <div class="search_form">
14
14
  <%= form_for :purchase_requests, :url => order_list_purchase_requests_path(@order_list), :html => {:method => 'get'} do -%>
15
15
  <p>
16
- <%= t('page.search_term') -%>: <%= search_field_tag 'query', h(@query), {:id => 'search_form_top', :class => 'search_form', :placeholder => t('page.search_term')} -%>
16
+ <%= label_tag :search_form_top, t('page.search_term') -%>: <%= search_field_tag 'query', h(@query), {:id => 'search_form_top', :class => 'search_form', :placeholder => t('page.search_term')} -%>
17
17
  <%= submit_tag t('page.search') -%>
18
18
  </p>
19
19
  <%- end -%>
@@ -1,3 +1,3 @@
1
1
  module EnjuPurchaseRequest
2
- VERSION = "0.1.0.pre4"
2
+ VERSION = "0.1.0.pre5"
3
3
  end
@@ -3,4 +3,3 @@
3
3
  # Add new mime types for use in respond_to blocks:
4
4
  # Mime::Type.register "text/richtext", :rtf
5
5
  # Mime::Type.register_alias "text/html", :iphone
6
- Mime::Type.register_alias "text/html", :mobile
Binary file
Binary file
@@ -84,14 +84,11 @@
84
84
  <fieldType name="tfloat" class="solr.TrieFloatField" omitNorms="true"/>
85
85
  <!-- *** This fieldType is used by Sunspot! *** -->
86
86
  <fieldType name="tdate" class="solr.TrieDateField" omitNorms="true"/>
87
-
88
- <!-- A specialized field for geospatial search. If indexed, this fieldType must not be multivalued. -->
89
- <fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>
90
87
  </types>
91
88
  <fields>
92
89
  <!-- Valid attributes for fields:
93
90
  name: mandatory - the name for the field
94
- type: mandatory - the name of a previously defined type from the
91
+ type: mandatory - the name of a previously defined type from the
95
92
  <types> section
96
93
  indexed: true if this field should be indexed (searchable or sortable)
97
94
  stored: true if this field should be retrievable
@@ -226,17 +223,8 @@
226
223
  <dynamicField name="*_ets" stored="true" termVectors="true" type="tdouble" multiValued="false" indexed="true"/>
227
224
  <!-- *** This dynamicField is used by Sunspot! *** -->
228
225
  <dynamicField name="*_etms" stored="true" termVectors="true" type="tdouble" multiValued="true" indexed="true"/>
229
-
230
- <!-- Type used to index the lat and lon components for the "location" FieldType -->
231
- <dynamicField name="*_coordinate" type="tdouble" indexed="true" stored="false" multiValued="false"/>
232
- <dynamicField name="*_p" type="location" indexed="true" stored="true" multiValued="false"/>
233
-
234
- <dynamicField name="*_ll" stored="false" type="location" multiValued="false" indexed="true"/>
235
- <dynamicField name="*_llm" stored="false" type="location" multiValued="true" indexed="true"/>
236
- <dynamicField name="*_lls" stored="true" type="location" multiValued="false" indexed="true"/>
237
- <dynamicField name="*_llms" stored="true" type="location" multiValued="true" indexed="true"/>
238
226
  </fields>
239
- <!-- Field to use to determine and enforce document uniqueness.
227
+ <!-- Field to use to determine and enforce document uniqueness.
240
228
  Unless this field is marked with required="false", it will be a required field
241
229
  -->
242
230
  <uniqueKey>id</uniqueKey>
@@ -0,0 +1,132 @@
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
+
3
+ <!--
4
+ * Licensed to the Apache Software Foundation (ASF) under one or more
5
+ * contributor license agreements. See the NOTICE file distributed with
6
+ * this work for additional information regarding copyright ownership.
7
+ * The ASF licenses this file to You under the Apache License, Version 2.0
8
+ * (the "License"); you may not use this file except in compliance with
9
+ * the License. You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ -->
19
+
20
+ <!--
21
+ Simple transform of Solr query results to HTML
22
+ -->
23
+ <xsl:stylesheet version='1.0'
24
+ xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
25
+ >
26
+
27
+ <xsl:output media-type="text/html; charset=UTF-8" encoding="UTF-8"/>
28
+
29
+ <xsl:variable name="title" select="concat('Solr search results (',response/result/@numFound,' documents)')"/>
30
+
31
+ <xsl:template match='/'>
32
+ <html>
33
+ <head>
34
+ <title><xsl:value-of select="$title"/></title>
35
+ <xsl:call-template name="css"/>
36
+ </head>
37
+ <body>
38
+ <h1><xsl:value-of select="$title"/></h1>
39
+ <div class="note">
40
+ This has been formatted by the sample "example.xsl" transform -
41
+ use your own XSLT to get a nicer page
42
+ </div>
43
+ <xsl:apply-templates select="response/result/doc"/>
44
+ </body>
45
+ </html>
46
+ </xsl:template>
47
+
48
+ <xsl:template match="doc">
49
+ <xsl:variable name="pos" select="position()"/>
50
+ <div class="doc">
51
+ <table width="100%">
52
+ <xsl:apply-templates>
53
+ <xsl:with-param name="pos"><xsl:value-of select="$pos"/></xsl:with-param>
54
+ </xsl:apply-templates>
55
+ </table>
56
+ </div>
57
+ </xsl:template>
58
+
59
+ <xsl:template match="doc/*[@name='score']" priority="100">
60
+ <xsl:param name="pos"></xsl:param>
61
+ <tr>
62
+ <td class="name">
63
+ <xsl:value-of select="@name"/>
64
+ </td>
65
+ <td class="value">
66
+ <xsl:value-of select="."/>
67
+
68
+ <xsl:if test="boolean(//lst[@name='explain'])">
69
+ <xsl:element name="a">
70
+ <!-- can't allow whitespace here -->
71
+ <xsl:attribute name="href">javascript:toggle("<xsl:value-of select="concat('exp-',$pos)" />");</xsl:attribute>?</xsl:element>
72
+ <br/>
73
+ <xsl:element name="div">
74
+ <xsl:attribute name="class">exp</xsl:attribute>
75
+ <xsl:attribute name="id">
76
+ <xsl:value-of select="concat('exp-',$pos)" />
77
+ </xsl:attribute>
78
+ <xsl:value-of select="//lst[@name='explain']/str[position()=$pos]"/>
79
+ </xsl:element>
80
+ </xsl:if>
81
+ </td>
82
+ </tr>
83
+ </xsl:template>
84
+
85
+ <xsl:template match="doc/arr" priority="100">
86
+ <tr>
87
+ <td class="name">
88
+ <xsl:value-of select="@name"/>
89
+ </td>
90
+ <td class="value">
91
+ <ul>
92
+ <xsl:for-each select="*">
93
+ <li><xsl:value-of select="."/></li>
94
+ </xsl:for-each>
95
+ </ul>
96
+ </td>
97
+ </tr>
98
+ </xsl:template>
99
+
100
+
101
+ <xsl:template match="doc/*">
102
+ <tr>
103
+ <td class="name">
104
+ <xsl:value-of select="@name"/>
105
+ </td>
106
+ <td class="value">
107
+ <xsl:value-of select="."/>
108
+ </td>
109
+ </tr>
110
+ </xsl:template>
111
+
112
+ <xsl:template match="*"/>
113
+
114
+ <xsl:template name="css">
115
+ <script>
116
+ function toggle(id) {
117
+ var obj = document.getElementById(id);
118
+ obj.style.display = (obj.style.display != 'block') ? 'block' : 'none';
119
+ }
120
+ </script>
121
+ <style type="text/css">
122
+ body { font-family: "Lucida Grande", sans-serif }
123
+ td.name { font-style: italic; font-size:80%; }
124
+ td { vertical-align: top; }
125
+ ul { margin: 0px; margin-left: 1em; padding: 0px; }
126
+ .note { font-size:80%; }
127
+ .doc { margin-top: 1em; border-top: solid grey 1px; }
128
+ .exp { display: none; font-family: monospace; white-space: pre; }
129
+ </style>
130
+ </xsl:template>
131
+
132
+ </xsl:stylesheet>
@@ -0,0 +1,67 @@
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
+
3
+ <!--
4
+ * Licensed to the Apache Software Foundation (ASF) under one or more
5
+ * contributor license agreements. See the NOTICE file distributed with
6
+ * this work for additional information regarding copyright ownership.
7
+ * The ASF licenses this file to You under the Apache License, Version 2.0
8
+ * (the "License"); you may not use this file except in compliance with
9
+ * the License. You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ -->
19
+
20
+ <!--
21
+ Simple transform of Solr query results to Atom
22
+ -->
23
+
24
+ <xsl:stylesheet version='1.0'
25
+ xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
26
+
27
+ <xsl:output
28
+ method="xml"
29
+ encoding="utf-8"
30
+ media-type="text/xml; charset=UTF-8"
31
+ />
32
+
33
+ <xsl:template match='/'>
34
+ <xsl:variable name="query" select="response/lst[@name='responseHeader']/lst[@name='params']/str[@name='q']"/>
35
+ <feed xmlns="http://www.w3.org/2005/Atom">
36
+ <title>Example Solr Atom 1.0 Feed</title>
37
+ <subtitle>
38
+ This has been formatted by the sample "example_atom.xsl" transform -
39
+ use your own XSLT to get a nicer Atom feed.
40
+ </subtitle>
41
+ <author>
42
+ <name>Apache Solr</name>
43
+ <email>solr-user@lucene.apache.org</email>
44
+ </author>
45
+ <link rel="self" type="application/atom+xml"
46
+ href="http://localhost:8983/solr/q={$query}&amp;wt=xslt&amp;tr=atom.xsl"/>
47
+ <updated>
48
+ <xsl:value-of select="response/result/doc[position()=1]/date[@name='timestamp']"/>
49
+ </updated>
50
+ <id>tag:localhost,2007:example</id>
51
+ <xsl:apply-templates select="response/result/doc"/>
52
+ </feed>
53
+ </xsl:template>
54
+
55
+ <!-- search results xslt -->
56
+ <xsl:template match="doc">
57
+ <xsl:variable name="id" select="str[@name='id']"/>
58
+ <entry>
59
+ <title><xsl:value-of select="str[@name='name']"/></title>
60
+ <link href="http://localhost:8983/solr/select?q={$id}"/>
61
+ <id>tag:localhost,2007:<xsl:value-of select="$id"/></id>
62
+ <summary><xsl:value-of select="arr[@name='features']"/></summary>
63
+ <updated><xsl:value-of select="date[@name='timestamp']"/></updated>
64
+ </entry>
65
+ </xsl:template>
66
+
67
+ </xsl:stylesheet>
@@ -0,0 +1,66 @@
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
+
3
+ <!--
4
+ * Licensed to the Apache Software Foundation (ASF) under one or more
5
+ * contributor license agreements. See the NOTICE file distributed with
6
+ * this work for additional information regarding copyright ownership.
7
+ * The ASF licenses this file to You under the Apache License, Version 2.0
8
+ * (the "License"); you may not use this file except in compliance with
9
+ * the License. You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ -->
19
+
20
+ <!--
21
+ Simple transform of Solr query results to RSS
22
+ -->
23
+
24
+ <xsl:stylesheet version='1.0'
25
+ xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
26
+
27
+ <xsl:output
28
+ method="xml"
29
+ encoding="utf-8"
30
+ media-type="text/xml; charset=UTF-8"
31
+ />
32
+ <xsl:template match='/'>
33
+ <rss version="2.0">
34
+ <channel>
35
+ <title>Example Solr RSS 2.0 Feed</title>
36
+ <link>http://localhost:8983/solr</link>
37
+ <description>
38
+ This has been formatted by the sample "example_rss.xsl" transform -
39
+ use your own XSLT to get a nicer RSS feed.
40
+ </description>
41
+ <language>en-us</language>
42
+ <docs>http://localhost:8983/solr</docs>
43
+ <xsl:apply-templates select="response/result/doc"/>
44
+ </channel>
45
+ </rss>
46
+ </xsl:template>
47
+
48
+ <!-- search results xslt -->
49
+ <xsl:template match="doc">
50
+ <xsl:variable name="id" select="str[@name='id']"/>
51
+ <xsl:variable name="timestamp" select="date[@name='timestamp']"/>
52
+ <item>
53
+ <title><xsl:value-of select="str[@name='name']"/></title>
54
+ <link>
55
+ http://localhost:8983/solr/select?q=id:<xsl:value-of select="$id"/>
56
+ </link>
57
+ <description>
58
+ <xsl:value-of select="arr[@name='features']"/>
59
+ </description>
60
+ <pubDate><xsl:value-of select="$timestamp"/></pubDate>
61
+ <guid>
62
+ http://localhost:8983/solr/select?q=id:<xsl:value-of select="$id"/>
63
+ </guid>
64
+ </item>
65
+ </xsl:template>
66
+ </xsl:stylesheet>
@@ -0,0 +1,337 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ Licensed to the Apache Software Foundation (ASF) under one or more
4
+ contributor license agreements. See the NOTICE file distributed with
5
+ this work for additional information regarding copyright ownership.
6
+ The ASF licenses this file to You under the Apache License, Version 2.0
7
+ (the "License"); you may not use this file except in compliance with
8
+ the License. You may obtain a copy of the License at
9
+
10
+ http://www.apache.org/licenses/LICENSE-2.0
11
+
12
+ Unless required by applicable law or agreed to in writing, software
13
+ distributed under the License is distributed on an "AS IS" BASIS,
14
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ See the License for the specific language governing permissions and
16
+ limitations under the License.
17
+ -->
18
+
19
+
20
+ <!--
21
+ Display the luke request handler with graphs
22
+ -->
23
+ <xsl:stylesheet
24
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
25
+ xmlns="http://www.w3.org/1999/xhtml"
26
+ version="1.0"
27
+ >
28
+ <xsl:output
29
+ method="html"
30
+ encoding="UTF-8"
31
+ media-type="text/html; charset=UTF-8"
32
+ doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
33
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
34
+ />
35
+
36
+ <xsl:variable name="title">Solr Luke Request Handler Response</xsl:variable>
37
+
38
+ <xsl:template match="/">
39
+ <html xmlns="http://www.w3.org/1999/xhtml">
40
+ <head>
41
+ <link rel="stylesheet" type="text/css" href="solr-admin.css"/>
42
+ <link rel="icon" href="favicon.ico" type="image/ico"/>
43
+ <link rel="shortcut icon" href="favicon.ico" type="image/ico"/>
44
+ <title>
45
+ <xsl:value-of select="$title"/>
46
+ </title>
47
+ <xsl:call-template name="css"/>
48
+
49
+ </head>
50
+ <body>
51
+ <h1>
52
+ <xsl:value-of select="$title"/>
53
+ </h1>
54
+ <div class="doc">
55
+ <ul>
56
+ <xsl:if test="response/lst[@name='index']">
57
+ <li>
58
+ <a href="#index">Index Statistics</a>
59
+ </li>
60
+ </xsl:if>
61
+ <xsl:if test="response/lst[@name='fields']">
62
+ <li>
63
+ <a href="#fields">Field Statistics</a>
64
+ <ul>
65
+ <xsl:for-each select="response/lst[@name='fields']/lst">
66
+ <li>
67
+ <a href="#{@name}">
68
+ <xsl:value-of select="@name"/>
69
+ </a>
70
+ </li>
71
+ </xsl:for-each>
72
+ </ul>
73
+ </li>
74
+ </xsl:if>
75
+ <xsl:if test="response/lst[@name='doc']">
76
+ <li>
77
+ <a href="#doc">Document statistics</a>
78
+ </li>
79
+ </xsl:if>
80
+ </ul>
81
+ </div>
82
+ <xsl:if test="response/lst[@name='index']">
83
+ <h2><a name="index"/>Index Statistics</h2>
84
+ <xsl:apply-templates select="response/lst[@name='index']"/>
85
+ </xsl:if>
86
+ <xsl:if test="response/lst[@name='fields']">
87
+ <h2><a name="fields"/>Field Statistics</h2>
88
+ <xsl:apply-templates select="response/lst[@name='fields']"/>
89
+ </xsl:if>
90
+ <xsl:if test="response/lst[@name='doc']">
91
+ <h2><a name="doc"/>Document statistics</h2>
92
+ <xsl:apply-templates select="response/lst[@name='doc']"/>
93
+ </xsl:if>
94
+ </body>
95
+ </html>
96
+ </xsl:template>
97
+
98
+ <xsl:template match="lst">
99
+ <xsl:if test="parent::lst">
100
+ <tr>
101
+ <td colspan="2">
102
+ <div class="doc">
103
+ <xsl:call-template name="list"/>
104
+ </div>
105
+ </td>
106
+ </tr>
107
+ </xsl:if>
108
+ <xsl:if test="not(parent::lst)">
109
+ <div class="doc">
110
+ <xsl:call-template name="list"/>
111
+ </div>
112
+ </xsl:if>
113
+ </xsl:template>
114
+
115
+ <xsl:template name="list">
116
+ <xsl:if test="count(child::*)>0">
117
+ <table>
118
+ <thead>
119
+ <tr>
120
+ <th colspan="2">
121
+ <p>
122
+ <a name="{@name}"/>
123
+ </p>
124
+ <xsl:value-of select="@name"/>
125
+ </th>
126
+ </tr>
127
+ </thead>
128
+ <tbody>
129
+ <xsl:choose>
130
+ <xsl:when
131
+ test="@name='histogram'">
132
+ <tr>
133
+ <td colspan="2">
134
+ <xsl:call-template name="histogram"/>
135
+ </td>
136
+ </tr>
137
+ </xsl:when>
138
+ <xsl:otherwise>
139
+ <xsl:apply-templates/>
140
+ </xsl:otherwise>
141
+ </xsl:choose>
142
+ </tbody>
143
+ </table>
144
+ </xsl:if>
145
+ </xsl:template>
146
+
147
+ <xsl:template name="histogram">
148
+ <div class="doc">
149
+ <xsl:call-template name="barchart">
150
+ <xsl:with-param name="max_bar_width">50</xsl:with-param>
151
+ <xsl:with-param name="iwidth">800</xsl:with-param>
152
+ <xsl:with-param name="iheight">160</xsl:with-param>
153
+ <xsl:with-param name="fill">blue</xsl:with-param>
154
+ </xsl:call-template>
155
+ </div>
156
+ </xsl:template>
157
+
158
+ <xsl:template name="barchart">
159
+ <xsl:param name="max_bar_width"/>
160
+ <xsl:param name="iwidth"/>
161
+ <xsl:param name="iheight"/>
162
+ <xsl:param name="fill"/>
163
+ <xsl:variable name="max">
164
+ <xsl:for-each select="int">
165
+ <xsl:sort data-type="number" order="descending"/>
166
+ <xsl:if test="position()=1">
167
+ <xsl:value-of select="."/>
168
+ </xsl:if>
169
+ </xsl:for-each>
170
+ </xsl:variable>
171
+ <xsl:variable name="bars">
172
+ <xsl:value-of select="count(int)"/>
173
+ </xsl:variable>
174
+ <xsl:variable name="bar_width">
175
+ <xsl:choose>
176
+ <xsl:when test="$max_bar_width &lt; ($iwidth div $bars)">
177
+ <xsl:value-of select="$max_bar_width"/>
178
+ </xsl:when>
179
+ <xsl:otherwise>
180
+ <xsl:value-of select="$iwidth div $bars"/>
181
+ </xsl:otherwise>
182
+ </xsl:choose>
183
+ </xsl:variable>
184
+ <table class="histogram">
185
+ <tbody>
186
+ <tr>
187
+ <xsl:for-each select="int">
188
+ <td>
189
+ <xsl:value-of select="."/>
190
+ <div class="histogram">
191
+ <xsl:attribute name="style">background-color: <xsl:value-of select="$fill"/>; width: <xsl:value-of select="$bar_width"/>px; height: <xsl:value-of select="($iheight*number(.)) div $max"/>px;</xsl:attribute>
192
+ </div>
193
+ </td>
194
+ </xsl:for-each>
195
+ </tr>
196
+ <tr>
197
+ <xsl:for-each select="int">
198
+ <td>
199
+ <xsl:value-of select="@name"/>
200
+ </td>
201
+ </xsl:for-each>
202
+ </tr>
203
+ </tbody>
204
+ </table>
205
+ </xsl:template>
206
+
207
+ <xsl:template name="keyvalue">
208
+ <xsl:choose>
209
+ <xsl:when test="@name">
210
+ <tr>
211
+ <td class="name">
212
+ <xsl:value-of select="@name"/>
213
+ </td>
214
+ <td class="value">
215
+ <xsl:value-of select="."/>
216
+ </td>
217
+ </tr>
218
+ </xsl:when>
219
+ <xsl:otherwise>
220
+ <xsl:value-of select="."/>
221
+ </xsl:otherwise>
222
+ </xsl:choose>
223
+ </xsl:template>
224
+
225
+ <xsl:template match="int|bool|long|float|double|uuid|date">
226
+ <xsl:call-template name="keyvalue"/>
227
+ </xsl:template>
228
+
229
+ <xsl:template match="arr">
230
+ <tr>
231
+ <td class="name">
232
+ <xsl:value-of select="@name"/>
233
+ </td>
234
+ <td class="value">
235
+ <ul>
236
+ <xsl:for-each select="child::*">
237
+ <li>
238
+ <xsl:apply-templates/>
239
+ </li>
240
+ </xsl:for-each>
241
+ </ul>
242
+ </td>
243
+ </tr>
244
+ </xsl:template>
245
+
246
+ <xsl:template match="str">
247
+ <xsl:choose>
248
+ <xsl:when test="@name='schema' or @name='index' or @name='flags'">
249
+ <xsl:call-template name="schema"/>
250
+ </xsl:when>
251
+ <xsl:otherwise>
252
+ <xsl:call-template name="keyvalue"/>
253
+ </xsl:otherwise>
254
+ </xsl:choose>
255
+ </xsl:template>
256
+
257
+ <xsl:template name="schema">
258
+ <tr>
259
+ <td class="name">
260
+ <xsl:value-of select="@name"/>
261
+ </td>
262
+ <td class="value">
263
+ <xsl:if test="contains(.,'unstored')">
264
+ <xsl:value-of select="."/>
265
+ </xsl:if>
266
+ <xsl:if test="not(contains(.,'unstored'))">
267
+ <xsl:call-template name="infochar2string">
268
+ <xsl:with-param name="charList">
269
+ <xsl:value-of select="."/>
270
+ </xsl:with-param>
271
+ </xsl:call-template>
272
+ </xsl:if>
273
+ </td>
274
+ </tr>
275
+ </xsl:template>
276
+
277
+ <xsl:template name="infochar2string">
278
+ <xsl:param name="i">1</xsl:param>
279
+ <xsl:param name="charList"/>
280
+
281
+ <xsl:variable name="char">
282
+ <xsl:value-of select="substring($charList,$i,1)"/>
283
+ </xsl:variable>
284
+ <xsl:choose>
285
+ <xsl:when test="$char='I'">
286
+ <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='I']"/> - </xsl:when>
287
+ <xsl:when test="$char='T'">
288
+ <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='T']"/> - </xsl:when>
289
+ <xsl:when test="$char='S'">
290
+ <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='S']"/> - </xsl:when>
291
+ <xsl:when test="$char='M'">
292
+ <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='M']"/> - </xsl:when>
293
+ <xsl:when test="$char='V'">
294
+ <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='V']"/> - </xsl:when>
295
+ <xsl:when test="$char='o'">
296
+ <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='o']"/> - </xsl:when>
297
+ <xsl:when test="$char='p'">
298
+ <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='p']"/> - </xsl:when>
299
+ <xsl:when test="$char='O'">
300
+ <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='O']"/> - </xsl:when>
301
+ <xsl:when test="$char='L'">
302
+ <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='L']"/> - </xsl:when>
303
+ <xsl:when test="$char='B'">
304
+ <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='B']"/> - </xsl:when>
305
+ <xsl:when test="$char='C'">
306
+ <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='C']"/> - </xsl:when>
307
+ <xsl:when test="$char='f'">
308
+ <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='f']"/> - </xsl:when>
309
+ <xsl:when test="$char='l'">
310
+ <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='l']"/> -
311
+ </xsl:when>
312
+ </xsl:choose>
313
+
314
+ <xsl:if test="not($i>=string-length($charList))">
315
+ <xsl:call-template name="infochar2string">
316
+ <xsl:with-param name="i">
317
+ <xsl:value-of select="$i+1"/>
318
+ </xsl:with-param>
319
+ <xsl:with-param name="charList">
320
+ <xsl:value-of select="$charList"/>
321
+ </xsl:with-param>
322
+ </xsl:call-template>
323
+ </xsl:if>
324
+ </xsl:template>
325
+ <xsl:template name="css">
326
+ <style type="text/css">
327
+ <![CDATA[
328
+ td.name {font-style: italic; font-size:80%; }
329
+ .doc { margin: 0.5em; border: solid grey 1px; }
330
+ .exp { display: none; font-family: monospace; white-space: pre; }
331
+ div.histogram { background: none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;}
332
+ table.histogram { width: auto; vertical-align: bottom; }
333
+ table.histogram td, table.histogram th { text-align: center; vertical-align: bottom; border-bottom: 1px solid #ff9933; width: auto; }
334
+ ]]>
335
+ </style>
336
+ </xsl:template>
337
+ </xsl:stylesheet>
@@ -26,15 +26,15 @@ order_list_00003:
26
26
  #
27
27
  # Table name: order_lists
28
28
  #
29
- # id :integer not null, primary key
30
- # user_id :integer not null
31
- # bookstore_id :integer not null
32
- # title :text not null
29
+ # id :integer not null, primary key
30
+ # user_id :integer not null
31
+ # bookstore_id :integer not null
32
+ # title :text not null
33
33
  # note :text
34
34
  # ordered_at :datetime
35
35
  # deleted_at :datetime
36
36
  # state :string(255)
37
- # created_at :datetime
38
- # updated_at :datetime
37
+ # created_at :datetime not null
38
+ # updated_at :datetime not null
39
39
  #
40
40
 
@@ -39,12 +39,12 @@ order_00005:
39
39
  #
40
40
  # Table name: orders
41
41
  #
42
- # id :integer not null, primary key
43
- # order_list_id :integer not null
44
- # purchase_request_id :integer not null
42
+ # id :integer not null, primary key
43
+ # order_list_id :integer not null
44
+ # purchase_request_id :integer not null
45
45
  # position :integer
46
46
  # state :string(255)
47
- # created_at :datetime
48
- # updated_at :datetime
47
+ # created_at :datetime not null
48
+ # updated_at :datetime not null
49
49
  #
50
50
 
@@ -108,9 +108,9 @@ purchase_request_00005:
108
108
  #
109
109
  # Table name: purchase_requests
110
110
  #
111
- # id :integer not null, primary key
112
- # user_id :integer not null
113
- # title :text not null
111
+ # id :integer not null, primary key
112
+ # user_id :integer not null
113
+ # title :text not null
114
114
  # author :text
115
115
  # publisher :text
116
116
  # isbn :string(255)
@@ -120,8 +120,8 @@ purchase_request_00005:
120
120
  # note :text
121
121
  # accepted_at :datetime
122
122
  # denied_at :datetime
123
- # created_at :datetime
124
- # updated_at :datetime
123
+ # created_at :datetime not null
124
+ # updated_at :datetime not null
125
125
  # deleted_at :datetime
126
126
  # state :string(255)
127
127
  # pub_date :string(255)
@@ -10,15 +10,15 @@ end
10
10
  #
11
11
  # Table name: order_lists
12
12
  #
13
- # id :integer not null, primary key
14
- # user_id :integer not null
15
- # bookstore_id :integer not null
16
- # title :text not null
13
+ # id :integer not null, primary key
14
+ # user_id :integer not null
15
+ # bookstore_id :integer not null
16
+ # title :text not null
17
17
  # note :text
18
18
  # ordered_at :datetime
19
19
  # deleted_at :datetime
20
20
  # state :string(255)
21
- # created_at :datetime
22
- # updated_at :datetime
21
+ # created_at :datetime not null
22
+ # updated_at :datetime not null
23
23
  #
24
24
 
@@ -10,12 +10,12 @@ end
10
10
  #
11
11
  # Table name: orders
12
12
  #
13
- # id :integer not null, primary key
14
- # order_list_id :integer not null
15
- # purchase_request_id :integer not null
13
+ # id :integer not null, primary key
14
+ # order_list_id :integer not null
15
+ # purchase_request_id :integer not null
16
16
  # position :integer
17
17
  # state :string(255)
18
- # created_at :datetime
19
- # updated_at :datetime
18
+ # created_at :datetime not null
19
+ # updated_at :datetime not null
20
20
  #
21
21
 
@@ -10,9 +10,9 @@ end
10
10
  #
11
11
  # Table name: purchase_requests
12
12
  #
13
- # id :integer not null, primary key
14
- # user_id :integer not null
15
- # title :text not null
13
+ # id :integer not null, primary key
14
+ # user_id :integer not null
15
+ # title :text not null
16
16
  # author :text
17
17
  # publisher :text
18
18
  # isbn :string(255)
@@ -22,8 +22,8 @@ end
22
22
  # note :text
23
23
  # accepted_at :datetime
24
24
  # denied_at :datetime
25
- # created_at :datetime
26
- # updated_at :datetime
25
+ # created_at :datetime not null
26
+ # updated_at :datetime not null
27
27
  # deleted_at :datetime
28
28
  # state :string(255)
29
29
  # pub_date :string(255)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enju_purchase_request
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.pre4
4
+ version: 0.1.0.pre5
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-23 00:00:00.000000000 Z
12
+ date: 2012-12-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -50,7 +50,7 @@ dependencies:
50
50
  requirements:
51
51
  - - ~>
52
52
  - !ruby/object:Gem::Version
53
- version: 0.1.0.pre8
53
+ version: 0.1.0.pre13
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,7 +58,7 @@ dependencies:
58
58
  requirements:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: 0.1.0.pre8
61
+ version: 0.1.0.pre13
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: sqlite3
64
64
  requirement: !ruby/object:Gem::Requirement
@@ -215,6 +215,7 @@ files:
215
215
  - spec/dummy/config/locales/en.yml
216
216
  - spec/dummy/config/routes.rb
217
217
  - spec/dummy/config.ru
218
+ - spec/dummy/db/development.sqlite3
218
219
  - spec/dummy/db/migrate/006_create_items.rb
219
220
  - spec/dummy/db/migrate/124_create_bookstores.rb
220
221
  - spec/dummy/db/migrate/20111201121844_create_roles.rb
@@ -240,18 +241,23 @@ files:
240
241
  - spec/dummy/solr/conf/spellings.txt
241
242
  - spec/dummy/solr/conf/stopwords.txt
242
243
  - spec/dummy/solr/conf/synonyms.txt
243
- - spec/dummy/solr/data/test/index/_9.fdt
244
- - spec/dummy/solr/data/test/index/_9.fdx
245
- - spec/dummy/solr/data/test/index/_9.fnm
246
- - spec/dummy/solr/data/test/index/_9.frq
247
- - spec/dummy/solr/data/test/index/_9.nrm
248
- - spec/dummy/solr/data/test/index/_9.prx
249
- - spec/dummy/solr/data/test/index/_9.tii
250
- - spec/dummy/solr/data/test/index/_9.tis
244
+ - spec/dummy/solr/conf/xslt/example.xsl
245
+ - spec/dummy/solr/conf/xslt/example_atom.xsl
246
+ - spec/dummy/solr/conf/xslt/example_rss.xsl
247
+ - spec/dummy/solr/conf/xslt/luke.xsl
248
+ - spec/dummy/solr/data/test/index/_a.fdt
249
+ - spec/dummy/solr/data/test/index/_a.fdx
250
+ - spec/dummy/solr/data/test/index/_a.fnm
251
+ - spec/dummy/solr/data/test/index/_a.frq
252
+ - spec/dummy/solr/data/test/index/_a.nrm
253
+ - spec/dummy/solr/data/test/index/_a.prx
254
+ - spec/dummy/solr/data/test/index/_a.tii
255
+ - spec/dummy/solr/data/test/index/_a.tis
251
256
  - spec/dummy/solr/data/test/index/segments.gen
252
- - spec/dummy/solr/data/test/index/segments_l
257
+ - spec/dummy/solr/data/test/index/segments_m
253
258
  - spec/dummy/solr/data/test/spellchecker/segments.gen
254
259
  - spec/dummy/solr/data/test/spellchecker/segments_1
260
+ - spec/dummy/solr/pids/test/sunspot-solr-test.pid
255
261
  - spec/factories/bookstore.rb
256
262
  - spec/factories/order.rb
257
263
  - spec/factories/order_list.rb
@@ -281,6 +287,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
281
287
  - - ! '>='
282
288
  - !ruby/object:Gem::Version
283
289
  version: '0'
290
+ segments:
291
+ - 0
292
+ hash: 4484353463674324587
284
293
  required_rubygems_version: !ruby/object:Gem::Requirement
285
294
  none: false
286
295
  requirements:
@@ -334,6 +343,7 @@ test_files:
334
343
  - spec/dummy/config/locales/en.yml
335
344
  - spec/dummy/config/routes.rb
336
345
  - spec/dummy/config.ru
346
+ - spec/dummy/db/development.sqlite3
337
347
  - spec/dummy/db/migrate/006_create_items.rb
338
348
  - spec/dummy/db/migrate/124_create_bookstores.rb
339
349
  - spec/dummy/db/migrate/20111201121844_create_roles.rb
@@ -359,18 +369,23 @@ test_files:
359
369
  - spec/dummy/solr/conf/spellings.txt
360
370
  - spec/dummy/solr/conf/stopwords.txt
361
371
  - spec/dummy/solr/conf/synonyms.txt
362
- - spec/dummy/solr/data/test/index/_9.fdt
363
- - spec/dummy/solr/data/test/index/_9.fdx
364
- - spec/dummy/solr/data/test/index/_9.fnm
365
- - spec/dummy/solr/data/test/index/_9.frq
366
- - spec/dummy/solr/data/test/index/_9.nrm
367
- - spec/dummy/solr/data/test/index/_9.prx
368
- - spec/dummy/solr/data/test/index/_9.tii
369
- - spec/dummy/solr/data/test/index/_9.tis
372
+ - spec/dummy/solr/conf/xslt/example.xsl
373
+ - spec/dummy/solr/conf/xslt/example_atom.xsl
374
+ - spec/dummy/solr/conf/xslt/example_rss.xsl
375
+ - spec/dummy/solr/conf/xslt/luke.xsl
376
+ - spec/dummy/solr/data/test/index/_a.fdt
377
+ - spec/dummy/solr/data/test/index/_a.fdx
378
+ - spec/dummy/solr/data/test/index/_a.fnm
379
+ - spec/dummy/solr/data/test/index/_a.frq
380
+ - spec/dummy/solr/data/test/index/_a.nrm
381
+ - spec/dummy/solr/data/test/index/_a.prx
382
+ - spec/dummy/solr/data/test/index/_a.tii
383
+ - spec/dummy/solr/data/test/index/_a.tis
370
384
  - spec/dummy/solr/data/test/index/segments.gen
371
- - spec/dummy/solr/data/test/index/segments_l
385
+ - spec/dummy/solr/data/test/index/segments_m
372
386
  - spec/dummy/solr/data/test/spellchecker/segments.gen
373
387
  - spec/dummy/solr/data/test/spellchecker/segments_1
388
+ - spec/dummy/solr/pids/test/sunspot-solr-test.pid
374
389
  - spec/factories/bookstore.rb
375
390
  - spec/factories/order.rb
376
391
  - spec/factories/order_list.rb
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes