my_tags 0.0.7 → 0.0.8

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