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 ADDED
@@ -0,0 +1,3 @@
1
+ rvm:
2
+ - 1.9.2
3
+ script: "bundle exec rspec spec"
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- ransack-abbreviator
1
+ ## Ransack Abbreviator [![Build Status](https://secure.travis-ci.org/jhdavids8/ransack-abbreviator.png)](http://travis-ci.org/jhdavids8/ransack-abbreviator)
2
2
  ===================
3
3
 
4
4
 
@@ -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
 
@@ -1,3 +1,3 @@
1
1
  module RansackAbbreviator
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -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
- parsed_config = OpenStruct.new((YAML.load_file(config.config_dir.join("ransack_abbreviator.yml")) rescue {}))
14
- ransack_abbreviations = parsed_config.ransack_abbreviations
15
- if !(ransack_abbreviations["columns"].values & RansackAbbreviator::Constants::RESERVED_KEYWORDS).blank? ||
16
- !(ransack_abbreviations["associations"].values & RansackAbbreviator::Constants::RESERVED_KEYWORDS).blank?
17
- fail "You used a reserved keyword as an abbreviation. Reserverd keywords: #{RansackAbbreviator::Constants::RESERVED_KEYWORDS.join(", ")}"
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
- context "parsing a config.yml" do
6
- it "initializes the abbreviations" do
7
- RansackAbbreviator.column_abbreviations.should_not be_blank
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) { Sham.reset(: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.1
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