iqvoc 3.5.5 → 3.5.6

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.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 3.5.6 (2012-03-07)
2
+
3
+ * Refactored origin (URI slug) generation<br>
4
+ Now supports custom filters to extend generation logic. See more: https://github.com/innoq/iqvoc/blob/master/lib/iqvoc/origin.rb
5
+ * Bugfixes
6
+
1
7
  ## 3.5.4 (2012-02-08)
2
8
 
3
9
  * Top concepts<br>
data/Gemfile CHANGED
@@ -19,7 +19,7 @@ source 'http://rubygems.org'
19
19
  # TODO: The following dependencies could be included by the "gemspec" command.
20
20
  # There is only one problem: gemspec puts the dependencies automatically to a
21
21
  # group (:development by default). This is not what we need.
22
- gem 'rails', '3.2.1'
22
+ gem 'rails', '3.2.2'
23
23
 
24
24
  group :assets do
25
25
  gem 'uglifier', '>= 1.0.3'
@@ -42,14 +42,10 @@ end
42
42
 
43
43
  group :development, :test do
44
44
  gem 'awesome_print'
45
-
45
+
46
46
  platforms :ruby do
47
47
  gem 'mysql2'
48
48
  gem 'sqlite3'
49
- # v0.9 required for spork-testunit
50
- gem 'spork', '~> 0.9.0.rc'
51
- # head required for Ruby 1.9.3 compatibility; cf. https://github.com/sporkrb/spork-testunit/pull/17
52
- gem 'spork-testunit', :git => 'git://github.com/sporkrb/spork-testunit.git'
53
49
  end
54
50
 
55
51
  platforms :jruby do
@@ -59,12 +55,14 @@ group :development, :test do
59
55
  end
60
56
 
61
57
  group :test do
58
+ gem 'test-unit'
62
59
  gem 'nokogiri', '~> 1.5.0'
63
60
  gem 'capybara'
64
61
  gem 'capybara-webkit'
65
62
  gem 'database_cleaner'
66
63
  gem 'factory_girl_rails'
67
- gem 'minitest'
64
+ gem 'spork'
65
+ gem 'spork-testunit'
68
66
  end
69
67
 
70
68
  group :production do
data/Gemfile.lock CHANGED
@@ -1,19 +1,12 @@
1
- GIT
2
- remote: git://github.com/sporkrb/spork-testunit.git
3
- revision: fcf530694dd8c7fed752cf45e0d10db1ea55e3f6
4
- specs:
5
- spork-testunit (0.0.7)
6
- spork (>= 0.6.0)
7
-
8
1
  GEM
9
2
  remote: http://rubygems.org/
10
3
  specs:
11
- actionmailer (3.2.1)
12
- actionpack (= 3.2.1)
4
+ actionmailer (3.2.2)
5
+ actionpack (= 3.2.2)
13
6
  mail (~> 2.4.0)
14
- actionpack (3.2.1)
15
- activemodel (= 3.2.1)
16
- activesupport (= 3.2.1)
7
+ actionpack (3.2.2)
8
+ activemodel (= 3.2.2)
9
+ activesupport (= 3.2.2)
17
10
  builder (~> 3.0.0)
18
11
  erubis (~> 2.7.0)
19
12
  journey (~> 1.0.1)
@@ -21,13 +14,13 @@ GEM
21
14
  rack-cache (~> 1.1)
22
15
  rack-test (~> 0.6.1)
23
16
  sprockets (~> 2.1.2)
24
- activemodel (3.2.1)
25
- activesupport (= 3.2.1)
17
+ activemodel (3.2.2)
18
+ activesupport (= 3.2.2)
26
19
  builder (~> 3.0.0)
27
- activerecord (3.2.1)
28
- activemodel (= 3.2.1)
29
- activesupport (= 3.2.1)
30
- arel (~> 3.0.0)
20
+ activerecord (3.2.2)
21
+ activemodel (= 3.2.2)
22
+ activesupport (= 3.2.2)
23
+ arel (~> 3.0.2)
31
24
  tzinfo (~> 0.3.29)
32
25
  activerecord-jdbc-adapter (1.2.2)
33
26
  activerecord-jdbcmysql-adapter (1.2.2)
@@ -37,14 +30,14 @@ GEM
37
30
  activerecord-jdbc-adapter (~> 1.2.2)
38
31
  jdbc-sqlite3 (~> 3.7.2)
39
32
  activerecord-oracle_enhanced-adapter (1.4.1)
40
- activeresource (3.2.1)
41
- activemodel (= 3.2.1)
42
- activesupport (= 3.2.1)
43
- activesupport (3.2.1)
33
+ activeresource (3.2.2)
34
+ activemodel (= 3.2.2)
35
+ activesupport (= 3.2.2)
36
+ activesupport (3.2.2)
44
37
  i18n (~> 0.6)
45
38
  multi_json (~> 1.0)
46
- addressable (2.2.6)
47
- arel (3.0.0)
39
+ addressable (2.2.7)
40
+ arel (3.0.2)
48
41
  authlogic (3.1.0)
49
42
  activerecord (>= 3.0.7)
50
43
  activerecord (>= 3.0.7)
@@ -59,40 +52,41 @@ GEM
59
52
  rack-test (>= 0.5.4)
60
53
  selenium-webdriver (~> 2.0)
61
54
  xpath (~> 0.1.4)
62
- capybara-webkit (0.8.0)
55
+ capybara-webkit (0.10.0)
63
56
  capybara (>= 1.0.0, < 1.2)
64
57
  json
65
- childprocess (0.3.0)
58
+ childprocess (0.3.1)
66
59
  ffi (~> 1.0.6)
67
60
  database_cleaner (0.7.1)
68
61
  erubis (2.7.0)
69
62
  execjs (1.3.0)
70
63
  multi_json (~> 1.0)
71
- factory_girl (2.5.0)
72
- activesupport
73
- factory_girl_rails (1.6.0)
74
- factory_girl (~> 2.5.0)
64
+ factory_girl (2.6.0)
65
+ activesupport (>= 2.3.9)
66
+ factory_girl_rails (1.7.0)
67
+ factory_girl (~> 2.6.0)
75
68
  railties (>= 3.0.0)
76
69
  fastercsv (1.5.4)
77
70
  ffi (1.0.11)
78
71
  ffi (1.0.11-java)
79
- heroku (2.19.1)
72
+ heroku (2.20.1)
80
73
  launchy (>= 0.3.2)
81
74
  rest-client (~> 1.6.1)
82
75
  rubyzip
83
76
  term-ansicolor (~> 1.0.5)
84
77
  hike (1.2.1)
85
78
  i18n (0.6.0)
86
- iq_rdf (0.1.2)
79
+ iq_rdf (0.1.5)
87
80
  builder
88
81
  bundler
89
82
  jdbc-mysql (5.1.13)
90
83
  jdbc-sqlite3 (3.7.2)
91
- journey (1.0.1)
92
- jruby-openssl (0.7.5)
84
+ journey (1.0.3)
85
+ jruby-openssl (0.7.6.1)
93
86
  bouncy-castle-java (>= 1.5.0146.1)
94
87
  json (1.6.5)
95
88
  json (1.6.5-java)
89
+ json_pure (1.6.5)
96
90
  kaminari (0.13.0)
97
91
  actionpack (>= 3.0.0)
98
92
  activesupport (>= 3.0.0)
@@ -109,12 +103,11 @@ GEM
109
103
  mime-types (~> 1.16)
110
104
  treetop (~> 1.4.8)
111
105
  mime-types (1.17.2)
112
- minitest (2.11.1)
113
- multi_json (1.0.4)
106
+ multi_json (1.1.0)
114
107
  mysql2 (0.3.11)
115
108
  nokogiri (1.5.0)
116
109
  nokogiri (1.5.0-java)
117
- pg (0.12.2)
110
+ pg (0.13.2)
118
111
  polyglot (0.3.3)
119
112
  rack (1.4.1)
120
113
  rack-cache (1.1)
@@ -123,19 +116,19 @@ GEM
123
116
  rack
124
117
  rack-test (0.6.1)
125
118
  rack (>= 1.0)
126
- rails (3.2.1)
127
- actionmailer (= 3.2.1)
128
- actionpack (= 3.2.1)
129
- activerecord (= 3.2.1)
130
- activeresource (= 3.2.1)
131
- activesupport (= 3.2.1)
119
+ rails (3.2.2)
120
+ actionmailer (= 3.2.2)
121
+ actionpack (= 3.2.2)
122
+ activerecord (= 3.2.2)
123
+ activeresource (= 3.2.2)
124
+ activesupport (= 3.2.2)
132
125
  bundler (~> 1.0)
133
- railties (= 3.2.1)
126
+ railties (= 3.2.2)
134
127
  rails_autolink (1.0.5)
135
128
  rails (~> 3.1)
136
- railties (3.2.1)
137
- actionpack (= 3.2.1)
138
- activesupport (= 3.2.1)
129
+ railties (3.2.2)
130
+ actionpack (= 3.2.2)
131
+ activesupport (= 3.2.2)
139
132
  rack-ssl (~> 1.3.2)
140
133
  rake (>= 0.8.7)
141
134
  rdoc (~> 3.4)
@@ -145,21 +138,24 @@ GEM
145
138
  json (~> 1.4)
146
139
  rest-client (1.6.7)
147
140
  mime-types (>= 1.16)
148
- rubyzip (0.9.5)
149
- selenium-webdriver (2.18.0)
150
- childprocess (>= 0.2.5)
141
+ rubyzip (0.9.6.1)
142
+ selenium-webdriver (2.13.0)
143
+ childprocess (>= 0.2.1)
151
144
  ffi (~> 1.0.9)
152
- multi_json (~> 1.0.4)
145
+ json_pure
153
146
  rubyzip
154
147
  spoon (0.0.1)
155
148
  spork (0.9.0)
149
+ spork-testunit (0.0.8)
150
+ spork (>= 0.6.0)
156
151
  sprockets (2.1.2)
157
152
  hike (~> 1.2)
158
153
  rack (~> 1.0)
159
154
  tilt (~> 1.1, != 1.3.0)
160
155
  sqlite3 (1.3.5)
161
156
  term-ansicolor (1.0.7)
162
- therubyracer (0.9.9)
157
+ test-unit (2.4.7)
158
+ therubyracer (0.9.10)
163
159
  libv8 (~> 3.3.10)
164
160
  thor (0.14.6)
165
161
  tilt (1.3.3)
@@ -196,15 +192,15 @@ DEPENDENCIES
196
192
  jruby-openssl
197
193
  json
198
194
  kaminari
199
- minitest
200
195
  mysql2
201
196
  nokogiri (~> 1.5.0)
202
197
  pg
203
- rails (= 3.2.1)
198
+ rails (= 3.2.2)
204
199
  rails_autolink
205
- spork (~> 0.9.0.rc)
206
- spork-testunit!
200
+ spork
201
+ spork-testunit
207
202
  sqlite3
203
+ test-unit
208
204
  therubyracer
209
205
  uglifier (>= 1.0.3)
210
206
  view_marker
@@ -59,6 +59,7 @@ var createNote = function(ev) {
59
59
  // FIXME: Hardcoded UMT stuff
60
60
  var isUsageNote = source.find("label:first")[0].getAttribute("for");
61
61
  isUsageNote = isUsageNote ? isUsageNote.match(/^concept_note_umt_usage_notes/) : false;
62
+ var noteSelector = isUsageNote ? "select" : "textarea, input";
62
63
 
63
64
  if(source.is(":hidden")) {
64
65
  source.show();
@@ -67,7 +68,7 @@ var createNote = function(ev) {
67
68
 
68
69
  var clone = source.clone();
69
70
 
70
- var count = source.find(isUsageNote ? "select" : "textarea")[0].id
71
+ var count = source.find(noteSelector)[0].id
71
72
  .match(/_(\d+)_/)[1];
72
73
  count = String(parseInt(count, 10) + 1);
73
74
  var newIdCount = "_" + count + "_",
@@ -83,15 +84,17 @@ var createNote = function(ev) {
83
84
 
84
85
  var src, el;
85
86
  if(!isUsageNote) {
86
- src = source.find("textarea")[0];
87
- el = clone.find("textarea").val("")[0];
87
+ src = source.find(noteSelector)[0];
88
+ el = clone.find(noteSelector).val("")[0];
88
89
  el.id = src.id.replace(/_\d+_/, newIdCount);
89
90
  el.name = src.name.replace(/\[\d+\]/, newNameCount);
90
91
  }
91
92
  src = source.find("select")[0];
92
- el = clone.find("select")[0];
93
- el.id = src.id.replace(/_\d+_/, newIdCount);
94
- el.name = src.name.replace(/\[\d+\]/, newNameCount);
93
+ if(src) {
94
+ el = clone.find("select")[0];
95
+ el.id = src.id.replace(/_\d+_/, newIdCount);
96
+ el.name = src.name.replace(/\[\d+\]/, newNameCount);
97
+ }
95
98
 
96
99
  clone.addClass("new");
97
100
  $("ol", container).append(clone);
@@ -18,7 +18,7 @@ class RdfController < ApplicationController
18
18
 
19
19
  skip_before_filter :require_user
20
20
  skip_before_filter :set_locale
21
-
21
+
22
22
  def scheme
23
23
  respond_to do |format|
24
24
  format.html { redirect_to about_path }
@@ -35,7 +35,7 @@ module RdfHelper
35
35
 
36
36
  c.Schema::expires(concept.expired_at) if concept.expired_at
37
37
  c.Owl::deprecated(true) if concept.expired_at and concept.expired_at <= Date.new
38
-
38
+
39
39
  c.Skos::topConceptOf IqRdf.build_uri(Iqvoc::Concept.root_class.instance.origin) if concept.top_term?
40
40
 
41
41
  concept.labelings.each do |labeling|
@@ -56,18 +56,18 @@ class Collection::Base < Concept::Base
56
56
 
57
57
  #********** Scopes
58
58
 
59
- scope :by_origin, lambda { |origin|
59
+ def self.by_origin(origin)
60
60
  where(:origin => origin)
61
- }
61
+ end
62
62
 
63
- scope :by_label_value, lambda { |val|
63
+ def self.by_label_value(val)
64
64
  includes(:labels).merge(Label::Base.by_query_value(val))
65
- }
65
+ end
66
66
 
67
- scope :tops, lambda {
67
+ def self.tops
68
68
  includes(:parent_collection_members).
69
69
  where("#{Collection::Member::Collection.table_name}.target_id IS NULL")
70
- }
70
+ end
71
71
 
72
72
  #********** Validations
73
73
 
@@ -233,26 +233,32 @@ class Concept::Base < ActiveRecord::Base
233
233
 
234
234
  # ********** Scopes
235
235
 
236
- scope :tops, where(:top_term => true)
236
+ def self.tops
237
+ where(:top_term => true)
238
+ end
237
239
 
238
- scope :broader_tops, includes(:narrower_relations, :pref_labels).
240
+ def self.broader_tops
241
+ includes(:narrower_relations, :pref_labels).
239
242
  where(:concept_relations => { :id => nil },
240
- :labelings => { :type => Iqvoc::Concept.pref_labeling_class_name }).
243
+ :labelings => { :type => Iqvoc::Concept.pref_labeling_class_name }).
241
244
  order("LOWER(#{Label::Base.table_name}.value)")
245
+ end
242
246
 
243
- scope :with_associations, includes([
247
+ def self.with_associations
248
+ includes([
244
249
  { :labelings => :target }, :relations, :matches, :notes
245
250
  ])
251
+ end
246
252
 
247
- scope :with_pref_labels,
253
+ def self.with_pref_labels
248
254
  includes(:pref_labels).
249
255
  order("LOWER(#{Label::Base.table_name}.value)").
250
256
  where(:labelings => { :type => Iqvoc::Concept.pref_labeling_class_name }) # This line is just a workaround for a Rails Bug. TODO: Delete it when the Bug is fixed
257
+ end
251
258
 
252
- scope :for_dashboard, lambda {
253
- unpublished_or_follow_up.
254
- includes(:pref_labels, :locking_user)
255
- }
259
+ def self.for_dashboard
260
+ unpublished_or_follow_up.includes(:pref_labels, :locking_user)
261
+ end
256
262
 
257
263
  # ********** Class methods
258
264
 
@@ -41,29 +41,29 @@ class Concept::Relation::Base < ActiveRecord::Base
41
41
 
42
42
  # ********* Scopes
43
43
 
44
- scope :by_owner, lambda { |owner_id|
44
+ def self.by_owner(owner_id)
45
45
  where(:owner_id => owner_id)
46
- }
46
+ end
47
47
 
48
- scope :by_owner_origin, lambda { |owner_id|
49
- includes(:owner).merge(Concept::Base.by_origin(owner_id))
50
- }
48
+ def self.by_owner_origin(owner_origin)
49
+ includes(:owner).merge(Concept::Base.by_origin(owner_origin))
50
+ end
51
51
 
52
- scope :by_target_origin, lambda { |owner_id|
53
- includes(:target).merge(Concept::Base.by_origin(owner_id))
54
- }
52
+ def self.by_target_origin(target_origin)
53
+ includes(:target).merge(Concept::Base.by_origin(target_origin))
54
+ end
55
55
 
56
- scope :target_editor_selectable, lambda { # Lambda because Concept::Base.editor_selectable is currently not known + we don't want to call it at load time!
56
+ def self.target_editor_selectable
57
57
  includes(:target).merge(Concept::Base.editor_selectable)
58
- }
58
+ end
59
59
 
60
- scope :published, lambda { # Lambda because Concept::Base.published is currently not known + we don't want to call it at load time!
60
+ def self.published
61
61
  includes(:target).merge(Concept::Base.published)
62
- }
62
+ end
63
63
 
64
- scope :target_in_edit_mode, lambda { # Lambda because Concept::Base.in_edit_mode is currently not known + we don't want to call it at load time!
64
+ def self.target_in_edit_mode
65
65
  joins(:target).merge(Concept::Base.in_edit_mode)
66
- }
66
+ end
67
67
 
68
68
  # ********* Methods
69
69
 
@@ -20,9 +20,16 @@ class Concept::SKOS::Base < Concept::Base
20
20
  self.rdf_class = "Concept"
21
21
 
22
22
  def build_rdf_subject(document, controller, &block)
23
- ns = IqRdf::Namespace.find_namespace_class(self.rdf_namespace.to_sym)
24
- raise "Namespace '#{rdf_namespace}' is not defined in IqRdf document." unless ns
25
- IqRdf.build_uri(self.origin, ns.build_uri(self.rdf_class), &block)
23
+ ns = IqRdf::Namespace.find_namespace_class(self.rdf_namespace)
24
+ raise "Namespace '#{base_namespace}' is not defined in IqRdf document." unless ns
25
+ subject = IqRdf.build_uri(self.origin, ns.build_uri(self.rdf_class), &block)
26
+
27
+ # ensure skos:Concept type is present
28
+ unless self.rdf_namespace == "skos" && self.rdf_class == "Concept"
29
+ subject.Rdf::type(IqRdf::Skos.build_uri("Concept"))
30
+ end
31
+
32
+ return subject
26
33
  end
27
34
 
28
35
  end