a_a_n 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
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