annotator_store 1.0.0.pre → 1.0.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c6ddd11b4ff25f3477a7c2ef180080c135f192ba
4
- data.tar.gz: 40c0857fbb2adc58ec90f65622f91ca463016d9d
3
+ metadata.gz: 43b816e26d213ee0689e56a6b43c70faac7e4b89
4
+ data.tar.gz: 33b50d049831ea7d930d46696a62fa22883967d6
5
5
  SHA512:
6
- metadata.gz: 9dde1c468bcdeb6c3a6bd7069b9bb1176e479036b3e1b4b3b4bff26b756368d4fde382ffd863596fd5dd11ed04cd6995565bb8e5191b1d23080dd5212d5b067c
7
- data.tar.gz: 39a4e0020f14898a1d0e3b730fa4adba062baa338fdf317c10214935b357f7235637d109a067319e0c87068d4ed78b603683c4ae0a4f732d6ca6ae54d17e9470
6
+ metadata.gz: 61825fac6af6a847c1fda2f5607e52a4a99af8c9095bb4eb5eeaf4f4f638e11da0a9c03990ab0e4ce1cea7c4435be3233029f8a0c24eaf3ac817336763941958
7
+ data.tar.gz: 2499df60e7292ffafd03175e1acd8172b62e6c00fe5a92891355f65f665921252892402043c325cad831d1276813bb0c6ef94f4b34cc037cfe50e86c6eea68e5
@@ -1,6 +1,12 @@
1
1
  CHANGELOG
2
2
  =========
3
3
 
4
+ v1.0.0
5
+ ------
6
+
7
+ * Drop complexity brought in by UUIDs
8
+
9
+
4
10
  v1.0.0.pre
5
11
  ----------
6
12
 
data/README.md CHANGED
@@ -78,22 +78,13 @@ And then from the `APP_ROOT` execute:
78
78
 
79
79
  $ bundle install
80
80
 
81
- Configure your database credentials in `config/database.yml` and then run the
82
- migrations to create the tables to store the annotations. Depending on the
83
- database of choice you'll need to set the `DB` environment variable when running
84
- the migrations. There are slight variations in the structure of the DB when
85
- using MySQL and PostgreSQL. The default setting is PostgreSQL if not set.
81
+ Configure your database credentials in your `config/database.yml` file and then run the
82
+ migrations to create the tables to store the annotations.
86
83
 
87
84
  # Copy migrations over from the engine
88
85
  $ rake annotator_store:install:migrations
89
86
 
90
- # To run the copied migration when using MySQL
91
- $ DB=mysql rake db:migrate
92
-
93
- # To run the copied migration when using PostgreSQL
94
- $ DB=postgres rake db:migrate
95
-
96
- # To run the copied migration without specifying type (defaults to postgres)
87
+ # To run the copied migration
97
88
  $ rake db:migrate
98
89
 
99
90
  Then mount it in `config/routes.rb`:
@@ -112,7 +103,7 @@ An annotation is a JSON document that contains a number of fields describing the
112
103
  position and content of an annotation within a specified document:
113
104
 
114
105
  {
115
- "id": "39fc339cf058bd22176771b3e3187329", # unique id (added by backend)
106
+ "id": 1, # unique id (added by backend)
116
107
  "annotator_schema_version": "v1.0", # schema version: default v1.0
117
108
  "created": "2011-05-24T18:52:08.036814", # created datetime in iso8601 format (added by backend)
118
109
  "updated": "2011-05-26T12:17:05.012544", # updated datetime in iso8601 format (added by backend)
@@ -129,9 +120,6 @@ position and content of an annotation within a specified document:
129
120
  ]
130
121
  }
131
122
 
132
- For PostgreSQL the primary key of the annotation will be a UUID while for MySQL it
133
- will be a normal integer id.
134
-
135
123
 
136
124
  API Endpoints
137
125
  -------------
@@ -192,7 +180,7 @@ Returns (example):
192
180
 
193
181
  $ curl http://example.com/annotator_store/annotations
194
182
  {
195
- "id": "d41d8cd98f00b204e9800998ecf8427e",
183
+ "id": 1,
196
184
  "text": "Annotation text",
197
185
  ...
198
186
  }
@@ -208,7 +196,7 @@ Returns (example):
208
196
 
209
197
  $ curl http://example.com/annotator_store/annotations/d41d8cd98f00b204e9800998ecf8427e
210
198
  {
211
- "id": "d41d8cd98f00b204e9800998ecf8427e",
199
+ "id": 1,
212
200
  "text": "Annotation text",
213
201
  ...
214
202
  }
@@ -226,7 +214,7 @@ Returns (example):
226
214
 
227
215
  $ curl http://example.com/annotator_store/annotations/d41d8cd98f00b204e9800998ecf8427e
228
216
  {
229
- "id": "d41d8cd98f00b204e9800998ecf8427e",
217
+ "id": 1,
230
218
  "text": "Annotation text",
231
219
  ...
232
220
  }
@@ -261,7 +249,7 @@ Returns (example):
261
249
  "total": 43127,
262
250
  "rows": [
263
251
  {
264
- "id": "d41d8cd98f00b204e9800998ecf8427e",
252
+ "id": 1,
265
253
  "text": "Updated annotation text",
266
254
  ...
267
255
  },
@@ -1,5 +1,4 @@
1
1
  AnnotatorStore::Engine.routes.draw do
2
-
3
2
  # Root path
4
3
  root 'pages#index', defaults: { format: :json }
5
4
 
@@ -1,43 +1,20 @@
1
- # This migration executes differently depending on the database set via the DB
2
- # environment variable. For PostgreSQL we use UUIDs ... for MySQL we use normal
3
- # primary keys.
4
1
  class CreateAnnotatorStore < ActiveRecord::Migration
5
2
  def self.up
6
- # If using PostgreSQL database these are extensions are necessary
7
- database_type = ENV['DB'] || 'postgres'
8
- if database_type == 'postgres'
9
- enable_extension 'plpgsql' unless extension_enabled?('plpgsql')
10
- enable_extension 'uuid-ossp' unless extension_enabled?('uuid-ossp')
11
- options = { id: :uuid, default: 'uuid_generate_v4()' }
12
- else
13
- options = {}
14
- end
15
-
16
- # Table to store annotations
17
- create_table :annotator_store_annotations, options do |t|
3
+ create_table :annotator_store_annotations do |t|
18
4
  t.string :version # Schema version
19
5
  t.text :text # Content of annotation
20
6
  t.text :quote # The annotated text
21
7
  t.string :uri # URI of annotated document
22
- t.timestamps # Time created_at and updated_at
8
+ t.timestamps # Time created_at and updated_at for annotation
23
9
  end
24
10
 
25
- # Table to store ranges covered by an annotation since each annotation could
26
- # have many ranges ... at least by design in annotator.js but not yet
27
- # implemented. Since the associated annotation's primary could be a UUID, at
28
- # least in the case of PostgreSQL, we'll have to apply some logic to cater
29
- # for the different scenarios.
30
11
  create_table :annotator_store_ranges do |t|
31
- if database_type == 'postgres'
32
- t.uuid :annotation_id, index: true # Associated annotation's UUID
33
- else
34
- t.references :annotation, index: true # Associated annotation's normal id
35
- end
36
- t.string :start # Relative XPath to start element
37
- t.string :end # Relative XPath to end element
38
- t.integer :start_offset # Character offset within start element
39
- t.integer :end_offset # Character offset within end element
40
- t.timestamps
12
+ t.references :annotation, index: true # Associated annotation's id
13
+ t.string :start # Relative XPath to start element
14
+ t.string :end # Relative XPath to end element
15
+ t.integer :start_offset # Character offset within start element
16
+ t.integer :end_offset # Character offset within end element
17
+ t.timestamps # Time created_at and updated_at for range
41
18
  end
42
19
  end
43
20
 
@@ -1,3 +1,3 @@
1
1
  module AnnotatorStore
2
- VERSION = '1.0.0.pre'
2
+ VERSION = '1.0.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: annotator_store
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.pre
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Job King'ori Maina
@@ -122,6 +122,20 @@ dependencies:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rubocop
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: jbuilder
127
141
  requirement: !ruby/object:Gem::Requirement
@@ -200,12 +214,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
200
214
  version: 1.9.3
201
215
  required_rubygems_version: !ruby/object:Gem::Requirement
202
216
  requirements:
203
- - - ">"
217
+ - - ">="
204
218
  - !ruby/object:Gem::Version
205
- version: 1.3.1
219
+ version: '0'
206
220
  requirements: []
207
221
  rubyforge_project:
208
- rubygems_version: 2.2.2
222
+ rubygems_version: 2.4.5
209
223
  signing_key:
210
224
  specification_version: 4
211
225
  summary: Rails engine to implement a Ruby backend store implementation for Annotator.