ransack_abbreviator 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +3 -0
- data/README.md +1 -1
- data/lib/ransack_abbreviator/configuration.rb +12 -0
- data/lib/ransack_abbreviator/version.rb +1 -1
- data/lib/ransack_abbreviator.rb +9 -9
- data/spec/ransack_abbreviator/configuration_spec.rb +23 -6
- data/spec/spec_helper.rb +16 -1
- metadata +2 -1
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -9,19 +9,31 @@ module RansackAbbreviator
|
|
9
9
|
yield self
|
10
10
|
end
|
11
11
|
|
12
|
+
def add_column_abbreviation(column, abbr)
|
13
|
+
self.column_abbreviations[column.to_s] = abbr.to_s
|
14
|
+
end
|
15
|
+
|
16
|
+
def add_assoc_abbreviation(assoc, abbr)
|
17
|
+
self.assoc_abbreviations[assoc.to_s] = abbr.to_s
|
18
|
+
end
|
19
|
+
|
12
20
|
def column_abbreviation_for(column)
|
21
|
+
column = column.to_s
|
13
22
|
self.column_abbreviations.has_key?(column) ? self.column_abbreviations[column] : column
|
14
23
|
end
|
15
24
|
|
16
25
|
def column_name_for(column_abbr)
|
26
|
+
column_abbr = column_abbr.to_s
|
17
27
|
self.column_abbreviations.has_value?(column_abbr) ? self.column_abbreviations.key(column_abbr) : column_abbr
|
18
28
|
end
|
19
29
|
|
20
30
|
def assoc_abbreviation_for(assoc)
|
31
|
+
assoc = assoc.to_s
|
21
32
|
self.assoc_abbreviations.has_key?(assoc) ? self.assoc_abbreviations[assoc] : assoc
|
22
33
|
end
|
23
34
|
|
24
35
|
def assoc_name_for(assoc_abbr)
|
36
|
+
assoc_abbr = assoc_abbr.to_s
|
25
37
|
self.assoc_abbreviations.has_value?(assoc_abbr) ? self.assoc_abbreviations.key(assoc_abbr) : assoc_abbr
|
26
38
|
end
|
27
39
|
|
data/lib/ransack_abbreviator.rb
CHANGED
@@ -5,19 +5,19 @@ require 'ransack_abbreviator/constants'
|
|
5
5
|
|
6
6
|
module RansackAbbreviator
|
7
7
|
extend Configuration
|
8
|
-
|
9
|
-
class DuplicateColumnAbbreviation < StandardError; end;
|
10
8
|
end
|
11
9
|
|
12
10
|
RansackAbbreviator.configure do |config|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
!(ransack_abbreviations["
|
17
|
-
|
11
|
+
if File.exist?(config.config_dir.join("ransack_abbreviator.yml"))
|
12
|
+
parsed_config = OpenStruct.new(YAML.load_file(config.config_dir.join("ransack_abbreviator.yml")))
|
13
|
+
ransack_abbreviations = parsed_config.ransack_abbreviations
|
14
|
+
if !(ransack_abbreviations["columns"].values & RansackAbbreviator::Constants::RESERVED_KEYWORDS).blank? ||
|
15
|
+
!(ransack_abbreviations["associations"].values & RansackAbbreviator::Constants::RESERVED_KEYWORDS).blank?
|
16
|
+
fail "You used a reserved keyword as an abbreviation. Reserverd keywords: #{RansackAbbreviator::Constants::RESERVED_KEYWORDS.join(", ")}"
|
17
|
+
end
|
18
|
+
config.column_abbreviations = ransack_abbreviations["columns"] if ransack_abbreviations["columns"]
|
19
|
+
config.assoc_abbreviations = ransack_abbreviations["associations"] if ransack_abbreviations["associations"]
|
18
20
|
end
|
19
|
-
config.column_abbreviations = ransack_abbreviations["columns"] if ransack_abbreviations["columns"]
|
20
|
-
config.assoc_abbreviations = ransack_abbreviations["associations"] if ransack_abbreviations["associations"]
|
21
21
|
end
|
22
22
|
|
23
23
|
require "ransack_abbreviator/ransack_extensions/nodes/condition"
|
@@ -2,13 +2,30 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
module RansackAbbreviator
|
4
4
|
describe Configuration do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
RansackAbbreviator.column_abbreviations["name"].should == "nm"
|
9
|
-
RansackAbbreviator.assoc_abbreviations.should_not be_blank
|
10
|
-
RansackAbbreviator.assoc_abbreviations[:authored_article_comments].should == "a_ac"
|
5
|
+
it 'yields RansackAbbreviator on configure' do
|
6
|
+
RansackAbbreviator.configure do |config|
|
7
|
+
config.should eq RansackAbbreviator
|
11
8
|
end
|
9
|
+
end
|
10
|
+
|
11
|
+
it "adds column abbreviations" do
|
12
|
+
RansackAbbreviator.configure do |config|
|
13
|
+
config.add_column_abbreviation(:tag_id, :tid)
|
14
|
+
end
|
15
|
+
|
16
|
+
RansackAbbreviator.column_abbreviations.should have_key('tag_id')
|
17
|
+
RansackAbbreviator.column_abbreviation_for(:tag_id).should eq 'tid'
|
18
|
+
RansackAbbreviator.assoc_name_for('tid').should eq 'tag_id'
|
19
|
+
end
|
20
|
+
|
21
|
+
it "adds association abbreviations" do
|
22
|
+
RansackAbbreviator.configure do |config|
|
23
|
+
config.add_assoc_abbreviation(:notes, :ns)
|
24
|
+
end
|
25
|
+
|
26
|
+
RansackAbbreviator.assoc_abbreviations.should have_key('notes')
|
27
|
+
RansackAbbreviator.assoc_abbreviation_for('notes').should eq 'ns'
|
28
|
+
RansackAbbreviator.assoc_name_for(:ns).should eq 'notes'
|
12
29
|
end
|
13
30
|
end
|
14
31
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -29,7 +29,22 @@ RSpec.configure do |config|
|
|
29
29
|
Schema.create
|
30
30
|
end
|
31
31
|
|
32
|
-
config.before(:all)
|
32
|
+
config.before(:all) do
|
33
|
+
Sham.reset(:before_all)
|
34
|
+
RansackAbbreviator.configure do |config|
|
35
|
+
config.add_column_abbreviation(:name, :nm)
|
36
|
+
config.add_column_abbreviation(:title, :tl)
|
37
|
+
config.add_column_abbreviation(:middle_name, :mn)
|
38
|
+
config.add_column_abbreviation(:vote_count, :vc)
|
39
|
+
config.add_assoc_abbreviation(:person, :pr)
|
40
|
+
config.add_assoc_abbreviation(:parent, :pa)
|
41
|
+
config.add_assoc_abbreviation(:children, :ch)
|
42
|
+
config.add_assoc_abbreviation(:comments, :cm)
|
43
|
+
config.add_assoc_abbreviation(:authored_article_comments, :a_ac)
|
44
|
+
config.add_assoc_abbreviation(:notable, :nbl)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
33
48
|
config.before(:each) { Sham.reset(:before_each) }
|
34
49
|
end
|
35
50
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: ransack_abbreviator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.2
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jamie Davidson
|
@@ -89,6 +89,7 @@ extra_rdoc_files: []
|
|
89
89
|
|
90
90
|
files:
|
91
91
|
- .gitignore
|
92
|
+
- .travis.yml
|
92
93
|
- CHANGELOG.md
|
93
94
|
- Gemfile
|
94
95
|
- LICENSE
|