simple_hashtag_2 0.2.0

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.
Files changed (63) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +20 -0
  3. data/.rspec +2 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +191 -0
  7. data/Rakefile +6 -0
  8. data/lib/generators/simple_hashtag/migration_generator.rb +20 -0
  9. data/lib/generators/simple_hashtag/templates/migrations/create_hashtaggings_migration.rb +11 -0
  10. data/lib/generators/simple_hashtag/templates/migrations/create_hashtags_migration.rb +10 -0
  11. data/lib/generators/simple_hashtag/templates/views/hashtags_controller.rb +12 -0
  12. data/lib/generators/simple_hashtag/templates/views/hashtags_helper.rb +16 -0
  13. data/lib/generators/simple_hashtag/templates/views/hashtags_index.html.erb +6 -0
  14. data/lib/generators/simple_hashtag/templates/views/hashtags_show.html.erb +8 -0
  15. data/lib/generators/simple_hashtag/views_generator.rb +18 -0
  16. data/lib/simple_hashtag/hashtag.rb +64 -0
  17. data/lib/simple_hashtag/hashtaggable.rb +45 -0
  18. data/lib/simple_hashtag/hashtagging.rb +8 -0
  19. data/lib/simple_hashtag/version.rb +3 -0
  20. data/lib/simple_hashtag.rb +6 -0
  21. data/simple_hashtag.gemspec +29 -0
  22. data/spec/dummy/README.rdoc +261 -0
  23. data/spec/dummy/Rakefile +7 -0
  24. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  25. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  26. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  27. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  28. data/spec/dummy/app/mailers/.gitkeep +0 -0
  29. data/spec/dummy/app/models/.gitkeep +0 -0
  30. data/spec/dummy/app/models/picture.rb +5 -0
  31. data/spec/dummy/app/models/post.rb +4 -0
  32. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  33. data/spec/dummy/config/application.rb +56 -0
  34. data/spec/dummy/config/boot.rb +10 -0
  35. data/spec/dummy/config/database.yml +25 -0
  36. data/spec/dummy/config/environment.rb +5 -0
  37. data/spec/dummy/config/environments/development.rb +37 -0
  38. data/spec/dummy/config/environments/production.rb +67 -0
  39. data/spec/dummy/config/environments/test.rb +37 -0
  40. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  41. data/spec/dummy/config/initializers/inflections.rb +15 -0
  42. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  43. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  44. data/spec/dummy/config/initializers/session_store.rb +8 -0
  45. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  46. data/spec/dummy/config/locales/en.yml +5 -0
  47. data/spec/dummy/config/routes.rb +2 -0
  48. data/spec/dummy/config.ru +4 -0
  49. data/spec/dummy/db/migrate/20130919041824_create_posts.rb +9 -0
  50. data/spec/dummy/db/migrate/20130919041825_create_pictures.rb +9 -0
  51. data/spec/dummy/db/migrate/20131004085836_create_simple_hashtag_hashtags.rb +9 -0
  52. data/spec/dummy/db/migrate/20131004085907_create_simple_hashtag_hashtaggings.rb +10 -0
  53. data/spec/dummy/db/schema.rb +43 -0
  54. data/spec/dummy/lib/assets/.gitkeep +0 -0
  55. data/spec/dummy/log/.gitkeep +0 -0
  56. data/spec/dummy/public/404.html +26 -0
  57. data/spec/dummy/public/422.html +26 -0
  58. data/spec/dummy/public/500.html +25 -0
  59. data/spec/dummy/public/favicon.ico +0 -0
  60. data/spec/dummy/script/rails +6 -0
  61. data/spec/simple_hashtag_spec.rb +145 -0
  62. data/spec/spec_helper.rb +13 -0
  63. metadata +231 -0
@@ -0,0 +1,9 @@
1
+ class CreatePosts < ActiveRecord::Migration
2
+ def change
3
+ create_table :posts do |t|
4
+ t.text :body
5
+
6
+ t.timestamps
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class CreatePictures < ActiveRecord::Migration
2
+ def change
3
+ create_table :pictures do |t|
4
+ t.text :caption
5
+
6
+ t.timestamps
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class CreateSimpleHashtagHashtags < ActiveRecord::Migration
2
+ def change
3
+ create_table :simple_hashtag_hashtags do |t|
4
+ t.string :name, :index => true
5
+
6
+ t.timestamps
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,10 @@
1
+ class CreateSimpleHashtagHashtaggings < ActiveRecord::Migration
2
+ def change
3
+ create_table :simple_hashtag_hashtaggings do |t|
4
+ t.references :hashtag, :index => true
5
+ t.references :hashtaggable, :polymorphic => true
6
+ end
7
+ add_index :simple_hashtag_hashtaggings, ["hashtaggable_id", "hashtaggable_type"],
8
+ :name => 'index_hashtaggings_hashtaggable_id_hashtaggable_type'
9
+ end
10
+ end
@@ -0,0 +1,43 @@
1
+ # encoding: UTF-8
2
+ # This file is auto-generated from the current state of the database. Instead
3
+ # of editing this file, please use the migrations feature of Active Record to
4
+ # incrementally modify your database, and then regenerate this schema definition.
5
+ #
6
+ # Note that this schema.rb definition is the authoritative source for your
7
+ # database schema. If you need to create the application database on another
8
+ # system, you should be using db:schema:load, not running all the migrations
9
+ # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10
+ # you'll amass, the slower it'll run and the greater likelihood for issues).
11
+ #
12
+ # It's strongly recommended that you check this file into your version control system.
13
+
14
+ ActiveRecord::Schema.define(version: 20131004085907) do
15
+
16
+ create_table "pictures", force: true do |t|
17
+ t.text "caption"
18
+ t.datetime "created_at"
19
+ t.datetime "updated_at"
20
+ end
21
+
22
+ create_table "posts", force: true do |t|
23
+ t.text "body"
24
+ t.datetime "created_at"
25
+ t.datetime "updated_at"
26
+ end
27
+
28
+ create_table "simple_hashtag_hashtaggings", force: true do |t|
29
+ t.integer "hashtag_id"
30
+ t.integer "hashtaggable_id"
31
+ t.string "hashtaggable_type"
32
+ end
33
+
34
+ add_index "simple_hashtag_hashtaggings", ["hashtag_id"], name: "index_simple_hashtag_hashtaggings_on_hashtag_id"
35
+ add_index "simple_hashtag_hashtaggings", ["hashtaggable_id", "hashtaggable_type"], name: "index_hashtaggings_hashtaggable_id_hashtaggable_type"
36
+
37
+ create_table "simple_hashtag_hashtags", force: true do |t|
38
+ t.string "name"
39
+ t.datetime "created_at"
40
+ t.datetime "updated_at"
41
+ end
42
+
43
+ end
File without changes
File without changes
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/404.html -->
21
+ <div class="dialog">
22
+ <h1>The page you were looking for doesn't exist.</h1>
23
+ <p>You may have mistyped the address or the page may have moved.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/422.html -->
21
+ <div class="dialog">
22
+ <h1>The change you wanted was rejected.</h1>
23
+ <p>Maybe you tried to change something you didn't have access to.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,25 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/500.html -->
21
+ <div class="dialog">
22
+ <h1>We're sorry, but something went wrong.</h1>
23
+ </div>
24
+ </body>
25
+ </html>
File without changes
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
@@ -0,0 +1,145 @@
1
+ require 'spec_helper'
2
+
3
+ describe SimpleHashtag do
4
+
5
+ describe ".hashtag" do
6
+ context "regex" do
7
+ it "match valid hashtags" do
8
+ text = "#It is a dangerous business, #Frodo, going out your door."
9
+ text += "You step onto #the-road,"
10
+ text += "and if you don't keep #your_feet,"
11
+ text += "there's no #know1ng where you might be swept off to."
12
+ match = Post.new().scan_for_hashtags(text)
13
+ match.should eq [["#It", "It"], ["#Frodo", "Frodo"], ["#the-road", "the-road"], ["#your_feet", "your_feet"], ["#know1ng", "know1ng"]]
14
+ end
15
+
16
+ it "doesn't match things that look like hashtags but are not" do
17
+ text = "And some things that should not # have been forgotten were lost."
18
+ text += "History became legend#. Legend became myth."
19
+ text += "And for #2500 years, the ring passed out of all knowledge."
20
+ match = Post.new().scan_for_hashtags(text)
21
+ match.should eq []
22
+ end
23
+ end
24
+
25
+ it "returns a string when asked to" do
26
+ tag = SimpleHashtag::Hashtag.new(name: "RubyRocks")
27
+ tag.to_s.should eq "rubyrocks"
28
+ tag.to_s.should be_a(String)
29
+ end
30
+
31
+ it "downcase a parsed tag" do
32
+ tag = SimpleHashtag::Hashtag.new(name: "WEirDcasE")
33
+ tag.name.should eq "weirdcase"
34
+ end
35
+
36
+ it "finds a mis-cased tag" do
37
+ SimpleHashtag::Hashtag.connection.execute("INSERT INTO simple_hashtag_hashtags (name) values ('WEirDcasE')")
38
+ tag = SimpleHashtag::Hashtag.find_by_name("WEIRDCASE")
39
+ tag.should_not eq nil
40
+ tag.should be_a(SimpleHashtag::Hashtag)
41
+ tag.name.should eq "weirdcase"
42
+ end
43
+
44
+ context "knows about its hashtaggables" do
45
+ before do
46
+ Post.create(body: "I thought up an ending for my #book.")
47
+ Picture.create(caption: "Some who have read the #book.")
48
+ end
49
+ it "their numbers" do
50
+ tag = SimpleHashtag::Hashtag.find_by_name("book")
51
+ tag.hashtaggables.size.should eq 2
52
+ tag.hashtaggables.first.body.should eq "I thought up an ending for my #book."
53
+ tag.hashtaggables.last.caption.should eq "Some who have read the #book."
54
+ end
55
+
56
+ it "their types" do
57
+ tag = SimpleHashtag::Hashtag.find_by_name("book")
58
+ tag.hashtagged_types.size.should eq 2
59
+ tag.hashtagged_types.should eq ["Post", "Picture"]
60
+ tag.hashtagged_ids_for_type("Post").should include(Post.last.id)
61
+ tag.hashtagged_ids_for_type("Picture").should include(Picture.last.id)
62
+ end
63
+
64
+ it "with there conditions" do
65
+ tag = SimpleHashtag::Hashtag.find_by_name("book")
66
+ tag.hashtaggables.size.should eq 2
67
+ tag.hashtaggables(:hashtaggable_id => Post.last.id, :hashtaggable_type => 'Post').size.should eq 1
68
+ end
69
+
70
+ end
71
+
72
+ it "is destroyed whith parent" do
73
+ ActiveRecord::Base.subclasses.each(&:delete_all)
74
+ Post.create(body: "Certainty of death, small chance of #success.")
75
+ Post.create(body: "Certainty of death, small chance of #success.")
76
+ p = Post.last
77
+ p.destroy
78
+
79
+ tag = SimpleHashtag::Hashtag.find_by_name("success")
80
+ tag.hashtaggables.size.should eq 1
81
+ tag.hashtaggings.size.should eq 1
82
+ end
83
+
84
+ it "can clean the DB from orphan tags" do
85
+ ActiveRecord::Base.subclasses.each(&:delete_all)
86
+ Post.create(body: "Certainty of death, small #chance of success.")
87
+ p = Post.last
88
+ p.body = "What are we #waiting for?"
89
+ p.save
90
+ SimpleHashtag::Hashtag.clean_orphans
91
+
92
+ SimpleHashtag::Hashtag.all.map(&:name).should_not include "chance"
93
+ end
94
+ end
95
+
96
+ describe ".hashtaggable" do
97
+ it "store a hashtag" do
98
+ Post.create(body: "Don't go where I can't #follow.")
99
+ p = Post.last
100
+ p.hashtags.count.should eq 1
101
+ p.hashtags.last.name.should eq "follow"
102
+ end
103
+
104
+ it "reflect a change" do
105
+ Post.create(body: "Certainty of death, small #chance of success.")
106
+ p = Post.last
107
+ p.body += "What are we #waiting for?"
108
+ p.save
109
+
110
+ p.hashtags.count.should eq 2
111
+ p.hashtags.last.name.should eq "waiting"
112
+ end
113
+
114
+ it "can have an empty attribute" do
115
+ Post.create()
116
+ end
117
+
118
+ it "can have multiple hashtags" do
119
+ Post.create(body: "The grey #rain-curtain of this world rolls back, and all turns to #silver glass, and then you #see it.")
120
+ p = Post.last
121
+
122
+ p.hashtags.count.should eq 3
123
+ p.hashtags.map(&:to_s).should eq ["rain-curtain", "silver", "see"]
124
+ end
125
+
126
+ it "handles a model with custom attribute" do
127
+ Picture.create(caption: "The grey #rain-curtain of this world rolls back, and all turns to #silver glass, and then you #see it.")
128
+ p = Picture.last
129
+
130
+ p.hashtags.count.should eq 3
131
+ p.hashtags.map(&:to_s).should eq ["rain-curtain", "silver", "see"]
132
+ end
133
+
134
+ it "doesn't duplicate on mixed case" do
135
+ ActiveRecord::Base.subclasses.each(&:delete_all)
136
+ Post.create(body: "Certainty of death, small #chance of success.")
137
+ Post.create(body: "Certainty of death, small #Chance of success.")
138
+
139
+ SimpleHashtag::Hashtag.count.should eq 1
140
+ h = SimpleHashtag::Hashtag.last
141
+ h.name.should eq "chance"
142
+ h.hashtaggables.count.should eq 2
143
+ end
144
+ end
145
+ end
@@ -0,0 +1,13 @@
1
+ ENV["RAILS_ENV"] = "test"
2
+
3
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
4
+ require 'rspec/rails'
5
+ require "rails/test_help"
6
+ require 'simple_hashtag'
7
+
8
+ RSpec.configure do |config|
9
+ config.use_transactional_fixtures = true
10
+ config.after :all do
11
+ ActiveRecord::Base.subclasses.each(&:delete_all)
12
+ end
13
+ end
metadata ADDED
@@ -0,0 +1,231 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: simple_hashtag_2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Raphael Campardou
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-05-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
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: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '1.3'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '1.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec-rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: sqlite3
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: protected_attributes
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: Parse, store retreive and format hashtags in your text.
98
+ email:
99
+ - ralovely@gmail.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - .gitignore
105
+ - .rspec
106
+ - Gemfile
107
+ - LICENSE.txt
108
+ - README.md
109
+ - Rakefile
110
+ - lib/generators/simple_hashtag/migration_generator.rb
111
+ - lib/generators/simple_hashtag/templates/migrations/create_hashtaggings_migration.rb
112
+ - lib/generators/simple_hashtag/templates/migrations/create_hashtags_migration.rb
113
+ - lib/generators/simple_hashtag/templates/views/hashtags_controller.rb
114
+ - lib/generators/simple_hashtag/templates/views/hashtags_helper.rb
115
+ - lib/generators/simple_hashtag/templates/views/hashtags_index.html.erb
116
+ - lib/generators/simple_hashtag/templates/views/hashtags_show.html.erb
117
+ - lib/generators/simple_hashtag/views_generator.rb
118
+ - lib/simple_hashtag.rb
119
+ - lib/simple_hashtag/hashtag.rb
120
+ - lib/simple_hashtag/hashtaggable.rb
121
+ - lib/simple_hashtag/hashtagging.rb
122
+ - lib/simple_hashtag/version.rb
123
+ - simple_hashtag.gemspec
124
+ - spec/dummy/README.rdoc
125
+ - spec/dummy/Rakefile
126
+ - spec/dummy/app/assets/javascripts/application.js
127
+ - spec/dummy/app/assets/stylesheets/application.css
128
+ - spec/dummy/app/controllers/application_controller.rb
129
+ - spec/dummy/app/helpers/application_helper.rb
130
+ - spec/dummy/app/mailers/.gitkeep
131
+ - spec/dummy/app/models/.gitkeep
132
+ - spec/dummy/app/models/picture.rb
133
+ - spec/dummy/app/models/post.rb
134
+ - spec/dummy/app/views/layouts/application.html.erb
135
+ - spec/dummy/config.ru
136
+ - spec/dummy/config/application.rb
137
+ - spec/dummy/config/boot.rb
138
+ - spec/dummy/config/database.yml
139
+ - spec/dummy/config/environment.rb
140
+ - spec/dummy/config/environments/development.rb
141
+ - spec/dummy/config/environments/production.rb
142
+ - spec/dummy/config/environments/test.rb
143
+ - spec/dummy/config/initializers/backtrace_silencers.rb
144
+ - spec/dummy/config/initializers/inflections.rb
145
+ - spec/dummy/config/initializers/mime_types.rb
146
+ - spec/dummy/config/initializers/secret_token.rb
147
+ - spec/dummy/config/initializers/session_store.rb
148
+ - spec/dummy/config/initializers/wrap_parameters.rb
149
+ - spec/dummy/config/locales/en.yml
150
+ - spec/dummy/config/routes.rb
151
+ - spec/dummy/db/migrate/20130919041824_create_posts.rb
152
+ - spec/dummy/db/migrate/20130919041825_create_pictures.rb
153
+ - spec/dummy/db/migrate/20131004085836_create_simple_hashtag_hashtags.rb
154
+ - spec/dummy/db/migrate/20131004085907_create_simple_hashtag_hashtaggings.rb
155
+ - spec/dummy/db/schema.rb
156
+ - spec/dummy/lib/assets/.gitkeep
157
+ - spec/dummy/log/.gitkeep
158
+ - spec/dummy/public/404.html
159
+ - spec/dummy/public/422.html
160
+ - spec/dummy/public/500.html
161
+ - spec/dummy/public/favicon.ico
162
+ - spec/dummy/script/rails
163
+ - spec/simple_hashtag_spec.rb
164
+ - spec/spec_helper.rb
165
+ homepage: https://github.com/ralovely/simple_hashtag
166
+ licenses:
167
+ - MIT
168
+ metadata: {}
169
+ post_install_message:
170
+ rdoc_options: []
171
+ require_paths:
172
+ - lib
173
+ required_ruby_version: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - '>='
176
+ - !ruby/object:Gem::Version
177
+ version: 1.9.3
178
+ required_rubygems_version: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - '>='
181
+ - !ruby/object:Gem::Version
182
+ version: '0'
183
+ requirements: []
184
+ rubyforge_project:
185
+ rubygems_version: 2.2.2
186
+ signing_key:
187
+ specification_version: 4
188
+ summary: Simple Hashtag is a mix between–well–hashtags as we know them and categories.
189
+ It will scan your Active Record attribute for a tag and store it in an index.
190
+ test_files:
191
+ - spec/dummy/README.rdoc
192
+ - spec/dummy/Rakefile
193
+ - spec/dummy/app/assets/javascripts/application.js
194
+ - spec/dummy/app/assets/stylesheets/application.css
195
+ - spec/dummy/app/controllers/application_controller.rb
196
+ - spec/dummy/app/helpers/application_helper.rb
197
+ - spec/dummy/app/mailers/.gitkeep
198
+ - spec/dummy/app/models/.gitkeep
199
+ - spec/dummy/app/models/picture.rb
200
+ - spec/dummy/app/models/post.rb
201
+ - spec/dummy/app/views/layouts/application.html.erb
202
+ - spec/dummy/config.ru
203
+ - spec/dummy/config/application.rb
204
+ - spec/dummy/config/boot.rb
205
+ - spec/dummy/config/database.yml
206
+ - spec/dummy/config/environment.rb
207
+ - spec/dummy/config/environments/development.rb
208
+ - spec/dummy/config/environments/production.rb
209
+ - spec/dummy/config/environments/test.rb
210
+ - spec/dummy/config/initializers/backtrace_silencers.rb
211
+ - spec/dummy/config/initializers/inflections.rb
212
+ - spec/dummy/config/initializers/mime_types.rb
213
+ - spec/dummy/config/initializers/secret_token.rb
214
+ - spec/dummy/config/initializers/session_store.rb
215
+ - spec/dummy/config/initializers/wrap_parameters.rb
216
+ - spec/dummy/config/locales/en.yml
217
+ - spec/dummy/config/routes.rb
218
+ - spec/dummy/db/migrate/20130919041824_create_posts.rb
219
+ - spec/dummy/db/migrate/20130919041825_create_pictures.rb
220
+ - spec/dummy/db/migrate/20131004085836_create_simple_hashtag_hashtags.rb
221
+ - spec/dummy/db/migrate/20131004085907_create_simple_hashtag_hashtaggings.rb
222
+ - spec/dummy/db/schema.rb
223
+ - spec/dummy/lib/assets/.gitkeep
224
+ - spec/dummy/log/.gitkeep
225
+ - spec/dummy/public/404.html
226
+ - spec/dummy/public/422.html
227
+ - spec/dummy/public/500.html
228
+ - spec/dummy/public/favicon.ico
229
+ - spec/dummy/script/rails
230
+ - spec/simple_hashtag_spec.rb
231
+ - spec/spec_helper.rb