a_a_n 0.2.5 → 0.2.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/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/Gemfile CHANGED
@@ -1,4 +1,25 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- # Specify your gem's dependencies in a_a_n.gemspec
4
- gemspec
3
+ group :development do
4
+ gem "rake", "~> 0.9.2"
5
+
6
+ gem "rspec"
7
+
8
+ gem "activerecord", :require => false
9
+ gem "activesupport", :require => false
10
+
11
+ gem "yard", "~> 0.6.0"
12
+ gem "jeweler", "~> 1.6.4"
13
+
14
+ gem 'shoulda-context'
15
+ gem "mocha"
16
+
17
+ gem "simplecov", "~> 0.6.4", :platform => :ruby_19
18
+ gem "rcov", "~> 1.0.0", :platform => :ruby_18
19
+
20
+ gem "debugger", "~> 1.1.3", :platform => :ruby_19
21
+ gem 'ruby-debug', :platform => :ruby_18
22
+
23
+ gem "database_cleaner", :group => :test
24
+ gem "sqlite3", :group => :test
25
+ end
@@ -0,0 +1,5 @@
1
+ guard 'rspec', :version => 2, :cli => "--color --format nested" do
2
+ watch(%r{^spec/.+_spec\.rb$})
3
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
4
+ watch('spec/spec_helper.rb') { "spec" }
5
+ end
data/Rakefile CHANGED
@@ -1 +1,31 @@
1
- require "bundler/gem_tasks"
1
+ require 'rubygems'
2
+ require 'bundler'
3
+
4
+ begin
5
+ Bundler.setup(:default, :development)
6
+ rescue Bundler::BundlerError => e
7
+ $stderr.puts e.message
8
+ $stderr.puts "Run `bundle install` to install missing gems"
9
+ exit e.status_code
10
+ end
11
+
12
+ require 'rake'
13
+
14
+ require 'jeweler'
15
+ Jeweler::Tasks.new do |gem|
16
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
+ gem.name = "a_a_n"
18
+ gem.homepage = "https://github.com/kot-begemot/association_as_name"
19
+ gem.license = "MIT"
20
+ gem.summary = %Q{Association as name}
21
+ gem.description = %Q{Whenever you need assign an association by its attribute,
22
+ like name, this gem comes to business.}
23
+ gem.email = "test@example.com"
24
+ gem.authors = ["E-Max"]
25
+ # dependencies defined in Gemfile
26
+ end
27
+ Jeweler::RubygemsDotOrgTasks.new
28
+
29
+
30
+ require 'yard'
31
+ YARD::Rake::YardocTask.new
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.2.6
@@ -1,35 +1,93 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
1
4
  # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
3
- require "a_a_n/version"
4
5
 
5
6
  Gem::Specification.new do |s|
6
- s.name = "a_a_n"
7
- s.version = AAN::VERSION
8
- s.authors = ["E-Max","shell"]
9
- s.email = ["developers@studentify.nl"]
10
- s.homepage = "https://github.com/Studentify/association_as_name"
11
- s.summary = %q{Association as name}
12
- s.description = %q{Whenever you need assign an association by its attribute,
13
- like name, this gem comes to busines.}
7
+ s.name = "a_a_n"
8
+ s.version = "0.2.6"
14
9
 
15
- s.rubyforge_project = "a_a_n"
16
-
17
- s.files = ["README",
18
- "a_a_n.gemspec",
19
- "Gemfile",
20
- "Rakefile",
21
- "lib/a_a_n.rb",
22
- "lib/a_a_n/association_as_name.rb",
23
- "lib/a_a_n/keeper.rb",
24
- "lib/a_a_n/version.rb"]
25
- #s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["E-Max"]
12
+ s.date = "2012-10-27"
13
+ s.description = "Whenever you need assign an association by its attribute,\n like name, this gem comes to business."
14
+ s.email = "test@example.com"
15
+ s.extra_rdoc_files = [
16
+ "README"
17
+ ]
18
+ s.files = [
19
+ ".rspec",
20
+ "Gemfile",
21
+ "Guardfile",
22
+ "README",
23
+ "Rakefile",
24
+ "VERSION",
25
+ "a_a_n.gemspec",
26
+ "db/seeds.rb",
27
+ "lib/a_a_n.rb",
28
+ "lib/a_a_n/association_as_name.rb",
29
+ "lib/a_a_n/keeper.rb",
30
+ "lib/a_a_n/version.rb",
31
+ "spec/aan_spec.rb",
32
+ "spec/aliases_spec.rb",
33
+ "spec/multiple_spec.rb",
34
+ "spec/spec_helper.rb"
35
+ ]
36
+ s.homepage = "https://github.com/kot-begemot/association_as_name"
37
+ s.licenses = ["MIT"]
26
38
  s.require_paths = ["lib"]
39
+ s.rubygems_version = "1.8.10"
40
+ s.summary = "Association as name"
41
+
42
+ if s.respond_to? :specification_version then
43
+ s.specification_version = 3
27
44
 
28
- s.add_dependency("activesupport", ">= 3.0.0")
29
- s.add_dependency("activerecord", ">= 3.0.0")
30
- s.add_development_dependency('sqlite3')
31
- s.add_development_dependency('rspec')
32
- s.add_development_dependency('guard')
33
- s.add_development_dependency('guard-rspec')
34
- s.add_development_dependency('ruby-debug19')
45
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
46
+ s.add_development_dependency(%q<rake>, ["~> 0.9.2"])
47
+ s.add_development_dependency(%q<rspec>, [">= 0"])
48
+ s.add_development_dependency(%q<activerecord>, [">= 0"])
49
+ s.add_development_dependency(%q<activesupport>, [">= 0"])
50
+ s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
51
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
52
+ s.add_development_dependency(%q<shoulda-context>, [">= 0"])
53
+ s.add_development_dependency(%q<mocha>, [">= 0"])
54
+ s.add_development_dependency(%q<simplecov>, ["~> 0.6.4"])
55
+ s.add_development_dependency(%q<rcov>, ["~> 1.0.0"])
56
+ s.add_development_dependency(%q<debugger>, ["~> 1.1.3"])
57
+ s.add_development_dependency(%q<ruby-debug>, [">= 0"])
58
+ s.add_development_dependency(%q<database_cleaner>, [">= 0"])
59
+ s.add_development_dependency(%q<sqlite3>, [">= 0"])
60
+ else
61
+ s.add_dependency(%q<rake>, ["~> 0.9.2"])
62
+ s.add_dependency(%q<rspec>, [">= 0"])
63
+ s.add_dependency(%q<activerecord>, [">= 0"])
64
+ s.add_dependency(%q<activesupport>, [">= 0"])
65
+ s.add_dependency(%q<yard>, ["~> 0.6.0"])
66
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
67
+ s.add_dependency(%q<shoulda-context>, [">= 0"])
68
+ s.add_dependency(%q<mocha>, [">= 0"])
69
+ s.add_dependency(%q<simplecov>, ["~> 0.6.4"])
70
+ s.add_dependency(%q<rcov>, ["~> 1.0.0"])
71
+ s.add_dependency(%q<debugger>, ["~> 1.1.3"])
72
+ s.add_dependency(%q<ruby-debug>, [">= 0"])
73
+ s.add_dependency(%q<database_cleaner>, [">= 0"])
74
+ s.add_dependency(%q<sqlite3>, [">= 0"])
75
+ end
76
+ else
77
+ s.add_dependency(%q<rake>, ["~> 0.9.2"])
78
+ s.add_dependency(%q<rspec>, [">= 0"])
79
+ s.add_dependency(%q<activerecord>, [">= 0"])
80
+ s.add_dependency(%q<activesupport>, [">= 0"])
81
+ s.add_dependency(%q<yard>, ["~> 0.6.0"])
82
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
83
+ s.add_dependency(%q<shoulda-context>, [">= 0"])
84
+ s.add_dependency(%q<mocha>, [">= 0"])
85
+ s.add_dependency(%q<simplecov>, ["~> 0.6.4"])
86
+ s.add_dependency(%q<rcov>, ["~> 1.0.0"])
87
+ s.add_dependency(%q<debugger>, ["~> 1.1.3"])
88
+ s.add_dependency(%q<ruby-debug>, [">= 0"])
89
+ s.add_dependency(%q<database_cleaner>, [">= 0"])
90
+ s.add_dependency(%q<sqlite3>, [">= 0"])
91
+ end
35
92
  end
93
+
@@ -0,0 +1,45 @@
1
+ [{:name => 'Afghanistan',:iso_3166_a2 => 'AF'},
2
+ {:name => 'Argentina',:iso_3166_a2 => 'AR'},
3
+ {:name => 'Australia',:iso_3166_a2 => 'AU'},
4
+ {:name => 'Austria',:iso_3166_a2 => 'AT'},
5
+ {:name => 'Belgium',:iso_3166_a2 => 'BE'},
6
+ {:name => 'Bolivia',:iso_3166_a2 => 'BO'},
7
+ {:name => 'Bosnia and Herzegovina',:iso_3166_a2 => 'BA'},
8
+ {:name => 'Bulgaria',:iso_3166_a2 => 'BG'},
9
+ {:name => 'Chile',:iso_3166_a2 => 'CL'},
10
+ {:name => 'China',:iso_3166_a2 => 'CN'},
11
+ {:name => 'Cote d\'Ivoire',:iso_3166_a2 => 'CI'},
12
+ {:name => 'Croatia',:iso_3166_a2 => 'HR'},
13
+ {:name => 'Cuba',:iso_3166_a2 => 'CU'},
14
+ {:name => 'Curacao',:iso_3166_a2 => 'CW'},
15
+ {:name => 'Cyprus',:iso_3166_a2 => 'CY'},
16
+ {:name => 'Czech Republic',:iso_3166_a2 => 'CZ'},
17
+ {:name => 'Denmark',:iso_3166_a2 => 'DK'},
18
+ {:name => 'Estonia',:iso_3166_a2 => 'EE'},
19
+ {:name => 'Gibraltar',:iso_3166_a2 => 'GI'},
20
+ {:name => 'Iran, Islamic Republic of',:iso_3166_a2 => 'IR'},
21
+ {:name => 'Iraq',:iso_3166_a2 => 'IQ'},
22
+ {:name => 'Ireland',:iso_3166_a2 => 'IE'},
23
+ {:name => 'Italy',:iso_3166_a2 => 'IT'},
24
+ {:name => 'Japan',:iso_3166_a2 => 'JP'},
25
+ {:name => 'Kazakhstan',:iso_3166_a2 => 'KZ'},
26
+ {:name => 'Latvia',:iso_3166_a2 => 'LV'},
27
+ {:name => 'Luxembourg',:iso_3166_a2 => 'LU'},
28
+ {:name => 'Mexico',:iso_3166_a2 => 'MX'},
29
+ {:name => 'Nepal',:iso_3166_a2 => 'NP'},
30
+ {:name => 'Nigeria',:iso_3166_a2 => 'NG'},
31
+ {:name => 'Peru',:iso_3166_a2 => 'PE'},
32
+ {:name => 'Romania',:iso_3166_a2 => 'RO'},
33
+ {:name => 'Russian Federation',:iso_3166_a2 => 'RU'},
34
+ {:name => 'Serbia',:iso_3166_a2 => 'RS'},
35
+ {:name => 'Spain',:iso_3166_a2 => 'ES'},
36
+ {:name => 'Swaziland',:iso_3166_a2 => 'SZ'},
37
+ {:name => 'Sweden',:iso_3166_a2 => 'SE'},
38
+ {:name => 'Switzerland',:iso_3166_a2 => 'CH'},
39
+ {:name => 'Thailand',:iso_3166_a2 => 'TH'},
40
+ {:name => 'Turkey',:iso_3166_a2 => 'TR'},
41
+ {:name => 'Uganda',:iso_3166_a2 => 'UG'},
42
+ {:name => 'Ukraine',:iso_3166_a2 => 'UA'},
43
+ {:name => 'United Arab Emirates',:iso_3166_a2 => 'AE'},
44
+ {:name => 'United Kingdom',:iso_3166_a2 => 'GB'},
45
+ {:name => 'Venezuela',:iso_3166_a2 => 'VE'},].each {|c| Country.create!(c)}
@@ -30,10 +30,11 @@ module AAN
30
30
  class_eval <<EOF
31
31
  # Could not use delegate for that, since attribute and aliased method could have different names
32
32
  def #{aliased_method}
33
- self.send(:#{association}).try(:#{attribute})
33
+ @#{aliased_method} ||= self.send(:#{association}).try(:#{attribute})
34
34
  end
35
35
 
36
36
  def #{aliased_method}=(value)
37
+ @#{aliased_method} = nil
37
38
  self.send(:#{association}_id=, association(:#{association}).klass.find_by_#{attribute}(value).try(:id))
38
39
  end
39
40
  EOF
@@ -1,3 +1,3 @@
1
1
  module AAN
2
- VERSION = "0.2.5"
2
+ VERSION = File.read(File.expand_path("./../../../VERSION", __FILE__))
3
3
  end
@@ -0,0 +1,99 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ ActiveRecord::Base.connection.execute("DROP TABLE IF EXISTS 'countries'")
4
+ ActiveRecord::Base.connection.create_table(:countries) do |t|
5
+ t.string :name
6
+ t.string :iso_3166_a2
7
+ end
8
+
9
+ ActiveRecord::Base.connection.execute("DROP TABLE IF EXISTS 'cities'")
10
+ ActiveRecord::Base.connection.create_table(:cities) do |t|
11
+ t.string :name
12
+ t.string :country_id
13
+ end
14
+
15
+ class Country < ActiveRecord::Base
16
+ validates :name, :presence => true
17
+ end
18
+
19
+ class City < ActiveRecord::Base
20
+ belongs_to :country
21
+
22
+ acts_as_aan do
23
+ association :country do
24
+ [:name]
25
+ end
26
+ end
27
+
28
+ validates :name, :presence => true
29
+ end
30
+
31
+ describe AAN do
32
+
33
+ it "Should assign a correct association by name for existed object" do
34
+ city = City.create!(:name => 'Roma')
35
+ city.country_name = 'Italy'
36
+ city.save
37
+
38
+ city.country.should == Country.find_by_name('Italy')
39
+ city.reload
40
+ city.country.should == Country.find_by_name('Italy')
41
+ end
42
+
43
+ it "Should not assign anything if record does not exists for existed object" do
44
+ city = City.create!(:name => 'Roma')
45
+ city.country_name = 'Country of OZ'
46
+ city.save
47
+
48
+ city.country.should be_nil
49
+ city.reload
50
+ city.country.should be_nil
51
+ end
52
+
53
+ it "Should assign a correct association by name for new object" do
54
+ city = City.create!(:name => 'Roma', :country_name => 'Italy')
55
+
56
+ city.country.should == Country.find_by_name('Italy')
57
+ end
58
+
59
+ it "Should not assign anything if record does not exists for new object" do
60
+ city = City.create!(:name => 'Roma', :country_name => 'Country of OZ')
61
+
62
+ city.country.should be_nil
63
+ city.reload
64
+ city.country.should be_nil
65
+ end
66
+
67
+ it "Should assign a correct association" do
68
+ country = Country.find_by_name('Italy')
69
+ city = City.create!(:name => 'Roma')
70
+ city.country = country
71
+ city.save
72
+
73
+ city.country.should == Country.find_by_name('Italy')
74
+ city.country_name == 'Italy'
75
+ city.reload
76
+ city.country.should == Country.find_by_name('Italy')
77
+ city.country_name == 'Italy'
78
+ end
79
+
80
+ it "Should be overwritten by new object assigement" do
81
+ country_1 = Country.find_by_name('Italy')
82
+ city = City.create!(:name => 'Paris', :country => country_1)
83
+
84
+ country_2 = Country.find_by_name('Denmark')
85
+ city.country = country_2
86
+ city.country_name.should == 'Denmark'
87
+ city.save!
88
+ city.reload
89
+ city.country_name.should == 'Denmark'
90
+ end
91
+
92
+ it "Should react on object nulification" do
93
+ country_1 = Country.find_by_name('Italy')
94
+ city = City.create!(:name => 'Paris', :country_id => country_1.id)
95
+
96
+ city.country = nil
97
+ city.country_name == nil
98
+ end
99
+ end
@@ -0,0 +1,100 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ ActiveRecord::Base.connection.execute("DROP TABLE IF EXISTS 'countries'")
4
+ ActiveRecord::Base.connection.create_table(:countries) do |t|
5
+ t.string :name
6
+ t.string :iso_3166_a2
7
+ end
8
+
9
+ ActiveRecord::Base.connection.execute("DROP TABLE IF EXISTS 'cities'")
10
+ ActiveRecord::Base.connection.create_table(:cities) do |t|
11
+ t.string :name
12
+ t.string :country_id
13
+ end
14
+
15
+ class Country < ActiveRecord::Base
16
+ validates_presence_of :name, :iso_3166_a2
17
+ end
18
+
19
+ class City < ActiveRecord::Base
20
+ belongs_to :country
21
+
22
+ acts_as_aan do
23
+ association :country do
24
+ [{ :iso_3166_a2 => :country_code}]
25
+ end
26
+ end
27
+
28
+ validates :name, :presence => true
29
+ end
30
+
31
+ describe "Aliases" do
32
+
33
+ it "Should assign a correct association by alias for existed object" do
34
+ city = City.create!(:name => 'Roma')
35
+ city.country_code = 'IT'
36
+ city.save
37
+
38
+ city.country.should == Country.find_by_name('Italy')
39
+ city.reload
40
+ city.country.should == Country.find_by_name('Italy')
41
+ end
42
+
43
+ it "Should not assign anything if record does not exists for existed object" do
44
+ city = City.create!(:name => 'Roma')
45
+ city.country_code = 'OZ'
46
+ city.save
47
+
48
+ city.country.should be_nil
49
+ city.reload
50
+ city.country.should be_nil
51
+ end
52
+
53
+ it "Should assign a correct association by alias for new object" do
54
+ city = City.create!(:name => 'Roma', :country_code => 'IT')
55
+
56
+ city.country.should == Country.find_by_name('Italy')
57
+ end
58
+
59
+ it "Should not assign anything if record does not exists for new object" do
60
+ city = City.create!(:name => 'Roma', :country_code => 'OZ')
61
+
62
+ city.country.should be_nil
63
+ city.reload
64
+ city.country.should be_nil
65
+ end
66
+
67
+ it "Should assign a correct association" do
68
+ country = Country.find_by_name('Italy')
69
+ city = City.create!(:name => 'Roma')
70
+ city.country = country
71
+ city.save
72
+
73
+ city.country.should == Country.find_by_name('Italy')
74
+ city.country_code == 'IT'
75
+ city.reload
76
+ city.country.should == Country.find_by_name('Italy')
77
+ city.country_code == 'IT'
78
+ end
79
+
80
+ it "Should be overwritten by new object assigement" do
81
+ country_1 = Country.find_by_name('Italy')
82
+ city = City.create!(:name => 'Paris', :country_id => country_1.id)
83
+
84
+ country_2 = Country.find_by_name('France')
85
+
86
+ city.country = country_2
87
+ city.country_code == 'FR'
88
+ city.save
89
+ city.reload
90
+ city.country_code == 'FR'
91
+ end
92
+
93
+ it "Should react on object nulification" do
94
+ country_1 = Country.find_by_name('Italy')
95
+ city = City.create!(:name => 'Paris', :country_id => country_1.id)
96
+
97
+ city.country = nil
98
+ city.country_code == nil
99
+ end
100
+ end
@@ -0,0 +1,122 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ ActiveRecord::Base.connection.execute("DROP TABLE IF EXISTS 'countries'")
4
+ ActiveRecord::Base.connection.create_table(:countries) do |t|
5
+ t.string :name
6
+ t.string :iso_3166_a2
7
+ end
8
+
9
+ ActiveRecord::Base.connection.execute("DROP TABLE IF EXISTS 'cities'")
10
+ ActiveRecord::Base.connection.create_table(:cities) do |t|
11
+ t.string :name
12
+ t.string :country_id
13
+ end
14
+
15
+ class Country < ActiveRecord::Base
16
+ validates :name, :iso_3166_a2, :presence => true
17
+ end
18
+
19
+ class City < ActiveRecord::Base
20
+ belongs_to :country
21
+
22
+ acts_as_aan do
23
+ association :country do
24
+ [:name, { :iso_3166_a2 => :country_code}]
25
+ end
26
+ end
27
+
28
+ validates :name, :presence => true
29
+ end
30
+
31
+ describe "Multiple" do
32
+ it "Should assign a correct association by alias for existed object" do
33
+ city = City.create!(:name => 'Roma')
34
+ city.country_code = 'IT'
35
+ city.save
36
+
37
+ city.country.should == Country.find_by_name('Italy')
38
+ city.country_name.should == 'Italy'
39
+ city.reload
40
+ city.country.should == Country.find_by_name('Italy')
41
+ city.country_name.should == 'Italy'
42
+ end
43
+
44
+ it "Should not assign anything if record does not exists for existed object" do
45
+ city = City.create!(:name => 'Roma')
46
+ city.country_name = 'Country of OZ'
47
+ city.save
48
+
49
+ city.country.should be_nil
50
+ city.reload
51
+ city.country.should be_nil
52
+ end
53
+
54
+ it "Should not assign anything if record does not exists for existed object" do
55
+ city = City.create!(:name => 'Roma')
56
+ city.country_code = 'OZ'
57
+ city.save
58
+
59
+ city.country.should be_nil
60
+ city.reload
61
+ city.country.should be_nil
62
+ end
63
+
64
+ it "Should assign a correct association by name for new object" do
65
+ city = City.create!(:name => 'Roma', :country_code => 'IT')
66
+
67
+ city.country.should == Country.find_by_name('Italy')
68
+ end
69
+
70
+ it "Should assign a correct association by name for new object" do
71
+ city = City.create!(:name => 'Roma', :country_name => 'Italy')
72
+
73
+ city.country.should == Country.find_by_name('Italy')
74
+ end
75
+
76
+ it "Should not assign anything if record does not exists for new object" do
77
+ city = City.create!(:name => 'Roma', :country_code => 'OZ')
78
+
79
+ city.country.should be_nil
80
+ city.reload
81
+ city.country.should be_nil
82
+ end
83
+
84
+ it "Should assign a correct association" do
85
+ country = Country.find_by_name('Italy')
86
+ city = City.create!(:name => 'Roma')
87
+ city.country = country
88
+ city.save
89
+
90
+ city.country.should == Country.find_by_name('Italy')
91
+ city.country_code == 'IT'
92
+ city.country_code == 'Italy'
93
+ city.reload
94
+ city.country.should == Country.find_by_name('Italy')
95
+ city.country_code == 'IT'
96
+ city.country_code == 'Italy'
97
+ end
98
+
99
+ it "Should be overwritten by new object assigement" do
100
+ country_1 = Country.find_by_name('Italy')
101
+ city = City.create!(:name => 'Paris', :country_id => country_1.id)
102
+
103
+ country_2 = Country.find_by_name('France')
104
+
105
+ city.country = country_2
106
+ city.country_code == 'FR'
107
+ city.country_name == 'France'
108
+ city.save
109
+ city.reload
110
+ city.country_code == 'FR'
111
+ city.country_name == 'France'
112
+ end
113
+
114
+ it "Should react on object nullification" do
115
+ country_1 = Country.find_by_name('Italy')
116
+ city = City.create!(:name => 'Paris', :country_id => country_1.id)
117
+
118
+ city.country = nil
119
+ city.country_code == nil
120
+ city.country_name == nil
121
+ end
122
+ end
@@ -0,0 +1,29 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ require 'logger'
4
+ Bundler.setup(:default, :development)
5
+
6
+ require 'active_record'
7
+ require 'a_a_n'
8
+ require 'rspec'
9
+ require 'ruby-debug'
10
+
11
+ ActiveRecord::Base.establish_connection(
12
+ :adapter => "sqlite3",
13
+ :database => ':memory:'
14
+ )
15
+
16
+ #ActiveRecord::Base.logger = Logger.new(STDOUT)
17
+
18
+ RSpec.configure do |config|
19
+ config.before(:each) do
20
+ ActiveRecord::Base.connection.increment_open_transactions
21
+ ActiveRecord::Base.connection.begin_db_transaction
22
+ load File.join(File.dirname(__FILE__),'..', 'db', 'seeds.rb')
23
+ end
24
+
25
+ config.after(:each) do
26
+ ActiveRecord::Base.connection.rollback_db_transaction
27
+ ActiveRecord::Base.connection.decrement_open_transactions
28
+ end
29
+ end
metadata CHANGED
@@ -1,42 +1,52 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: a_a_n
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - E-Max
9
- - shell
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2012-02-07 00:00:00.000000000Z
12
+ date: 2012-10-27 00:00:00.000000000Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
- name: activesupport
17
- requirement: &85815950 !ruby/object:Gem::Requirement
15
+ name: rake
16
+ requirement: &86410520 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 0.9.2
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *86410520
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ requirement: &86410160 !ruby/object:Gem::Requirement
18
28
  none: false
19
29
  requirements:
20
30
  - - ! '>='
21
31
  - !ruby/object:Gem::Version
22
- version: 3.0.0
23
- type: :runtime
32
+ version: '0'
33
+ type: :development
24
34
  prerelease: false
25
- version_requirements: *85815950
35
+ version_requirements: *86410160
26
36
  - !ruby/object:Gem::Dependency
27
37
  name: activerecord
28
- requirement: &85815570 !ruby/object:Gem::Requirement
38
+ requirement: &86409840 !ruby/object:Gem::Requirement
29
39
  none: false
30
40
  requirements:
31
41
  - - ! '>='
32
42
  - !ruby/object:Gem::Version
33
- version: 3.0.0
34
- type: :runtime
43
+ version: '0'
44
+ type: :development
35
45
  prerelease: false
36
- version_requirements: *85815570
46
+ version_requirements: *86409840
37
47
  - !ruby/object:Gem::Dependency
38
- name: sqlite3
39
- requirement: &85815250 !ruby/object:Gem::Requirement
48
+ name: activesupport
49
+ requirement: &86409520 !ruby/object:Gem::Requirement
40
50
  none: false
41
51
  requirements:
42
52
  - - ! '>='
@@ -44,10 +54,32 @@ dependencies:
44
54
  version: '0'
45
55
  type: :development
46
56
  prerelease: false
47
- version_requirements: *85815250
57
+ version_requirements: *86409520
48
58
  - !ruby/object:Gem::Dependency
49
- name: rspec
50
- requirement: &85815020 !ruby/object:Gem::Requirement
59
+ name: yard
60
+ requirement: &86409160 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: 0.6.0
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *86409160
69
+ - !ruby/object:Gem::Dependency
70
+ name: jeweler
71
+ requirement: &86408810 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: 1.6.4
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *86408810
80
+ - !ruby/object:Gem::Dependency
81
+ name: shoulda-context
82
+ requirement: &86408480 !ruby/object:Gem::Requirement
51
83
  none: false
52
84
  requirements:
53
85
  - - ! '>='
@@ -55,10 +87,10 @@ dependencies:
55
87
  version: '0'
56
88
  type: :development
57
89
  prerelease: false
58
- version_requirements: *85815020
90
+ version_requirements: *86408480
59
91
  - !ruby/object:Gem::Dependency
60
- name: guard
61
- requirement: &85771780 !ruby/object:Gem::Requirement
92
+ name: mocha
93
+ requirement: &86408140 !ruby/object:Gem::Requirement
62
94
  none: false
63
95
  requirements:
64
96
  - - ! '>='
@@ -66,10 +98,43 @@ dependencies:
66
98
  version: '0'
67
99
  type: :development
68
100
  prerelease: false
69
- version_requirements: *85771780
101
+ version_requirements: *86408140
70
102
  - !ruby/object:Gem::Dependency
71
- name: guard-rspec
72
- requirement: &85771560 !ruby/object:Gem::Requirement
103
+ name: simplecov
104
+ requirement: &86407850 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 0.6.4
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: *86407850
113
+ - !ruby/object:Gem::Dependency
114
+ name: rcov
115
+ requirement: &86407520 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ~>
119
+ - !ruby/object:Gem::Version
120
+ version: 1.0.0
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: *86407520
124
+ - !ruby/object:Gem::Dependency
125
+ name: debugger
126
+ requirement: &86407210 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ version: 1.1.3
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: *86407210
135
+ - !ruby/object:Gem::Dependency
136
+ name: ruby-debug
137
+ requirement: &86406960 !ruby/object:Gem::Requirement
73
138
  none: false
74
139
  requirements:
75
140
  - - ! '>='
@@ -77,10 +142,10 @@ dependencies:
77
142
  version: '0'
78
143
  type: :development
79
144
  prerelease: false
80
- version_requirements: *85771560
145
+ version_requirements: *86406960
81
146
  - !ruby/object:Gem::Dependency
82
- name: ruby-debug19
83
- requirement: &85771220 !ruby/object:Gem::Requirement
147
+ name: database_cleaner
148
+ requirement: &86406650 !ruby/object:Gem::Requirement
84
149
  none: false
85
150
  requirements:
86
151
  - - ! '>='
@@ -88,25 +153,45 @@ dependencies:
88
153
  version: '0'
89
154
  type: :development
90
155
  prerelease: false
91
- version_requirements: *85771220
156
+ version_requirements: *86406650
157
+ - !ruby/object:Gem::Dependency
158
+ name: sqlite3
159
+ requirement: &86406310 !ruby/object:Gem::Requirement
160
+ none: false
161
+ requirements:
162
+ - - ! '>='
163
+ - !ruby/object:Gem::Version
164
+ version: '0'
165
+ type: :development
166
+ prerelease: false
167
+ version_requirements: *86406310
92
168
  description: ! "Whenever you need assign an association by its attribute,\n like name,
93
- this gem comes to busines."
94
- email:
95
- - developers@studentify.nl
169
+ this gem comes to business."
170
+ email: test@example.com
96
171
  executables: []
97
172
  extensions: []
98
- extra_rdoc_files: []
99
- files:
173
+ extra_rdoc_files:
100
174
  - README
101
- - a_a_n.gemspec
175
+ files:
176
+ - .rspec
102
177
  - Gemfile
178
+ - Guardfile
179
+ - README
103
180
  - Rakefile
181
+ - VERSION
182
+ - a_a_n.gemspec
183
+ - db/seeds.rb
104
184
  - lib/a_a_n.rb
105
185
  - lib/a_a_n/association_as_name.rb
106
186
  - lib/a_a_n/keeper.rb
107
187
  - lib/a_a_n/version.rb
108
- homepage: https://github.com/Studentify/association_as_name
109
- licenses: []
188
+ - spec/aan_spec.rb
189
+ - spec/aliases_spec.rb
190
+ - spec/multiple_spec.rb
191
+ - spec/spec_helper.rb
192
+ homepage: https://github.com/kot-begemot/association_as_name
193
+ licenses:
194
+ - MIT
110
195
  post_install_message:
111
196
  rdoc_options: []
112
197
  require_paths:
@@ -117,6 +202,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
117
202
  - - ! '>='
118
203
  - !ruby/object:Gem::Version
119
204
  version: '0'
205
+ segments:
206
+ - 0
207
+ hash: 345555137
120
208
  required_rubygems_version: !ruby/object:Gem::Requirement
121
209
  none: false
122
210
  requirements:
@@ -124,7 +212,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
212
  - !ruby/object:Gem::Version
125
213
  version: '0'
126
214
  requirements: []
127
- rubyforge_project: a_a_n
215
+ rubyforge_project:
128
216
  rubygems_version: 1.8.10
129
217
  signing_key:
130
218
  specification_version: 3