mongoid_oslc 0.0.4 → 0.0.5

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.
@@ -0,0 +1,43 @@
1
+ require 'active_support/configurable'
2
+
3
+ module Mongoid::Oslc
4
+ # Configures global settings for Kaminari
5
+ # Kaminari.configure do |config|
6
+ # config.default_per_page = 10
7
+ # end
8
+ def self.configure(&block)
9
+ yield @config ||= Mongoid::Oslc::Configuration.new
10
+ end
11
+
12
+ # Global settings for Kaminari
13
+ def self.config
14
+ @config
15
+ end
16
+
17
+ # need a Class for 3.0
18
+ class Configuration #:nodoc:
19
+ include ActiveSupport::Configurable
20
+ config_accessor :default_namespace
21
+ config_accessor :fields_mapping
22
+
23
+ def param_name
24
+ config.param_name.respond_to?(:call) ? config.param_name.call : config.param_name
25
+ end
26
+
27
+ # define param_name writer (copied from AS::Configurable)
28
+ writer, line = 'def param_name=(value); config.param_name = value; end', __LINE__
29
+ singleton_class.class_eval writer, __FILE__, line
30
+ class_eval writer, __FILE__, line
31
+ end
32
+
33
+ # this is ugly. why can't we pass the default value to config_accessor...?
34
+ configure do |config|
35
+ config.default_namespace = :rtc
36
+ config.fields_mapping = {
37
+ "dcterms:title" => "title",
38
+ "dcterms:description" => "description",
39
+ "dcterms:created" => "created_at",
40
+ "oslc_cm:closed" => "closed"
41
+ }
42
+ end
43
+ end
@@ -72,7 +72,7 @@ module Mongoid
72
72
 
73
73
  class Condition < GrammarNode
74
74
  def to_mongo_query
75
- field = fields[elements[0].text_value]
75
+ field = field_for(elements[0].text_value)
76
76
  value = elements[2].to_mongo_query
77
77
  operator_with_value = elements[1].to_mongo_query_with_value(value)
78
78
  { field => operator_with_value }
@@ -80,18 +80,17 @@ module Mongoid
80
80
 
81
81
  private
82
82
 
83
- def fields
84
- @fields = if defined?(OSLC_FIELDS_MAPPING) && defined?(OSLC_ARRAYS_MAPPING)
85
- OSLC_FIELDS_MAPPING.merge OSLC_ARRAYS_MAPPING
83
+ def field_for(oslc_field)
84
+ if oslc_field.start_with?(Mongoid::Oslc.config.default_namespace.to_s)
85
+ oslc_field.split(":")[1]
86
86
  else
87
- {
88
- "dcterms:title" => "title",
89
- "dcterms:description" => "description",
90
- "dcterms:created" => "created_at",
91
- "oslc_cm:closed" => "closed"
92
- }
87
+ fields[oslc_field]
93
88
  end
94
89
  end
90
+
91
+ def fields
92
+ @fields ||= Mongoid::Oslc.config.fields_mapping
93
+ end
95
94
  end
96
95
  end
97
96
  end
@@ -1,5 +1,5 @@
1
1
  module Mongoid
2
2
  module Oslc
3
- VERSION = '0.0.4'
3
+ VERSION = '0.0.5'
4
4
  end
5
5
  end
data/lib/mongoid/oslc.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'mongoid'
2
+ require 'mongoid/oslc/config'
2
3
  require 'mongoid/oslc/version'
3
4
  require 'mongoid/oslc/strategy'
4
5
  require 'active_support/concern'
@@ -35,5 +35,9 @@ describe Mongoid::Oslc::Strategy do
35
35
  it "should parse query with boolean value" do
36
36
  parse_query('oslc_cm:closed=false').should eql({"closed"=> false})
37
37
  end
38
+
39
+ it "should parse query with custom namespace" do
40
+ parse_query('rtc:color="Black"').should eql({"color"=> "Black"})
41
+ end
38
42
  end
39
43
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid_oslc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
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-19 00:00:00.000000000 Z
12
+ date: 2012-10-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -110,6 +110,7 @@ files:
110
110
  - README.md
111
111
  - Rakefile
112
112
  - lib/mongoid/oslc.rb
113
+ - lib/mongoid/oslc/config.rb
113
114
  - lib/mongoid/oslc/grammar.rb
114
115
  - lib/mongoid/oslc/grammar.treetop
115
116
  - lib/mongoid/oslc/strategy.rb
@@ -133,7 +134,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
133
134
  version: '0'
134
135
  segments:
135
136
  - 0
136
- hash: -1050001277382581103
137
+ hash: 2130768269382147124
137
138
  required_rubygems_version: !ruby/object:Gem::Requirement
138
139
  none: false
139
140
  requirements:
@@ -142,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
142
143
  version: '0'
143
144
  segments:
144
145
  - 0
145
- hash: -1050001277382581103
146
+ hash: 2130768269382147124
146
147
  requirements: []
147
148
  rubyforge_project:
148
149
  rubygems_version: 1.8.24