my_tags 0.0.7 → 0.0.8

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 94415751f71e3baa689383c591173e8b54bfc291
4
- data.tar.gz: 7f3311c257ac7fc1582210fa72a748b03babf27b
3
+ metadata.gz: 062a5a4a787ecbcf03d223c920378b2a1378a723
4
+ data.tar.gz: f7f643b711ef24e1de3df1613d0afebc55981939
5
5
  SHA512:
6
- metadata.gz: f5639f1b9b90c3725b33d9072e15a20d8b74a9ea8bac553f5a429c3e7e41b533f467f536637a5281d0448c527d7d0856774d0759874a51767e8f2f9aa6aeb9da
7
- data.tar.gz: dfd792fe86b1a2629e4c3bfbdf9517e18d8ddc729a85b4e3afb35e8f2b7a59b709f640935893f8f2ca6ebbce14dae7ff6fccebd9ded40f4d797eebd59e160ac8
6
+ metadata.gz: 987d9c05b56dfb6cc364f2fc726aecf38ee6893d79be092debb3eb80f9c52f63a16c61914e058f87864e75946bea17b4ee1e40ddc79fda002189c5003a9d9f05
7
+ data.tar.gz: a27aea70f6eab8f74078752cda4777b4e9118d4cd36690c70a9446543fd045b1771cd9f312a6d340e81ba37acb9c0e1efc578cc9002c8ea6ffa216ddb077bec3
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ Gemfile.lock
2
+ spec/internal/db/*.sqlite
3
+
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
@@ -1,4 +1,4 @@
1
- class MyTag::Tag < ActiveRecord::Base
1
+ class MyTags::Tag < ActiveRecord::Base
2
2
  has_many :taggings, :class_name => 'MyTags::Tagging', :dependent => :destroy
3
3
 
4
4
  validates :name, :presence => true, :uniqueness => true
data/my_tags.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'my_tags'
3
- s.version = '0.0.7'
3
+ s.version = '0.0.8'
4
4
  s.authors = ['Vitaly Omelchenko']
5
5
  s.email = ['prosto.vint@gmail.com']
6
6
  s.homepage = 'https://github.com/vintyara/my_tags'
@@ -12,4 +12,9 @@ Gem::Specification.new do |s|
12
12
  s.require_paths = ['lib']
13
13
 
14
14
  s.required_ruby_version = '>=1.9.2'
15
+
16
+ s.add_runtime_dependency 'activerecord', '>= 3.2.0'
17
+ s.add_development_dependency 'combustion', '~> 0.4.0'
18
+ s.add_development_dependency 'rspec-rails', '~> 2.13'
19
+ s.add_development_dependency 'sqlite3', '~> 1.3.7'
15
20
  end
@@ -0,0 +1,64 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Managing tags via names" do
4
+ let(:article) { Article.create }
5
+
6
+ it "returns tag names" do
7
+ article.tags << MyTags::Tag.create(:name => 'melbourne')
8
+
9
+ article.tag_list.to_a.should == ['melbourne']
10
+ end
11
+
12
+ it "adds tags via their names" do
13
+ article.tag_list << 'melbourne'
14
+
15
+ article.tags.collect(&:name).should == ['melbourne']
16
+ end
17
+
18
+ it "accepts a completely new set of tags" do
19
+ article.tag_list = ['portland', 'oregon']
20
+
21
+ article.tags.collect(&:name).should == ['portland', 'oregon']
22
+ end
23
+
24
+ it "enumerates through tag names" do
25
+ article.tag_list = ['melbourne', 'victoria']
26
+ names = []
27
+
28
+ article.tag_list.each do |name|
29
+ names << name
30
+ end
31
+
32
+ names.should == ['melbourne', 'victoria']
33
+ end
34
+
35
+ it "does not allow duplication of tags" do
36
+ existing = Article.create
37
+ existing.tags << MyTags::Tag.create(:name => 'portland')
38
+
39
+ article.tag_list = ['portland']
40
+
41
+ existing.tag_ids.should == article.tag_ids
42
+ end
43
+
44
+ it "appends tag names" do
45
+ article.tag_list = ['portland']
46
+ article.tag_list += ['oregon', 'ruby']
47
+
48
+ article.tags.collect(&:name).should == ['portland', 'oregon', 'ruby']
49
+ end
50
+
51
+ it "removes a single tag name" do
52
+ article.tag_list = ['portland', 'oregon']
53
+ article.tag_list.delete 'oregon'
54
+
55
+ article.tags.collect(&:name).should == ['portland']
56
+ end
57
+
58
+ it "removes tag names" do
59
+ article.tag_list = ['portland', 'oregon', 'ruby']
60
+ article.tag_list -= ['oregon', 'ruby']
61
+
62
+ article.tags.collect(&:name).should == ['portland']
63
+ end
64
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Adding and removing tags' do
4
+ let(:article) { Article.create }
5
+ let(:pancakes) { MyTags::Tag.create :name => 'pancakes' }
6
+
7
+ it "stores new tags" do
8
+ article.tags << pancakes
9
+
10
+ article.tags.reload.should == [pancakes]
11
+ end
12
+
13
+ it "removes existing tags" do
14
+ article.tags << pancakes
15
+
16
+ article.tags.delete pancakes
17
+
18
+ article.tags.reload.should == []
19
+ end
20
+ end
@@ -0,0 +1,3 @@
1
+ class Article < ActiveRecord::Base
2
+ has_many_tags
3
+ end
@@ -0,0 +1,4 @@
1
+ test:
2
+ adapter: sqlite3
3
+ database: db/combustion_test.sqlite
4
+
@@ -0,0 +1,6 @@
1
+ ActiveRecord::Schema.define do
2
+ create_table :articles, :force => true do |t|
3
+ t.string :title
4
+ t.timestamps
5
+ end
6
+ end
@@ -0,0 +1,2 @@
1
+ *.log
2
+
@@ -0,0 +1,11 @@
1
+ require 'bundler'
2
+
3
+ Bundler.require :default, :development
4
+
5
+ Combustion.initialize! :active_record
6
+
7
+ require 'rspec/rails'
8
+
9
+ RSpec.configure do |config|
10
+ config.use_transactional_fixtures = true
11
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: my_tags
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vitaly Omelchenko
@@ -9,7 +9,63 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2014-08-06 00:00:00.000000000 Z
12
- dependencies: []
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activerecord
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 3.2.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 3.2.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: combustion
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.4.0
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.4.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec-rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.13'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.13'
55
+ - !ruby/object:Gem::Dependency
56
+ name: sqlite3
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.3.7
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.3.7
13
69
  description: Simple Tags for rails app
14
70
  email:
15
71
  - prosto.vint@gmail.com
@@ -17,6 +73,8 @@ executables: []
17
73
  extensions: []
18
74
  extra_rdoc_files: []
19
75
  files:
76
+ - ".gitignore"
77
+ - Gemfile
20
78
  - app/models/my_tags/tag.rb
21
79
  - app/models/my_tags/tagging.rb
22
80
  - db/migrate/1_tag_tables.rb
@@ -25,6 +83,13 @@ files:
25
83
  - lib/my_tags/engine.rb
26
84
  - lib/my_tags/tag_list.rb
27
85
  - my_tags.gemspec
86
+ - spec/acceptance/tags_list_spec.rb
87
+ - spec/acceptance/tags_spec.rb
88
+ - spec/internal/app/models/article.rb
89
+ - spec/internal/config/database.yml
90
+ - spec/internal/db/schema.rb
91
+ - spec/internal/log/.gitignore
92
+ - spec/spec_helper.rb
28
93
  homepage: https://github.com/vintyara/my_tags
29
94
  licenses: []
30
95
  metadata: {}