visit_card 0.0.1

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 (43) hide show
  1. data/.document +5 -0
  2. data/.gitignore +21 -0
  3. data/LICENSE +20 -0
  4. data/README.rdoc +31 -0
  5. data/Rakefile +46 -0
  6. data/VERSION +1 -0
  7. data/app/controllers/vcards_controller.rb +3 -0
  8. data/app/helpers/vcards_helper.rb +3 -0
  9. data/app/models/vcard.rb +3 -0
  10. data/app/models/vcard_adr.rb +3 -0
  11. data/app/models/vcard_categorization.rb +3 -0
  12. data/app/models/vcard_dictionary.rb +3 -0
  13. data/app/models/vcard_email.rb +3 -0
  14. data/app/models/vcard_tel.rb +3 -0
  15. data/app/views/visit_card/vcard_adrs/_form_fields.html.erb +38 -0
  16. data/app/views/visit_card/vcard_emails/_form_fields.html.erb +14 -0
  17. data/app/views/visit_card/vcard_tels/_form_fields.html.erb +14 -0
  18. data/app/views/visit_card/vcards/_form.html.erb +115 -0
  19. data/app/views/visit_card/vcards/_hcard.html.erb +1 -0
  20. data/app/views/visit_card/vcards/_static.html +39 -0
  21. data/app/views/visit_card/vcards/edit.html.erb +7 -0
  22. data/app/views/visit_card/vcards/index.html.erb +20 -0
  23. data/app/views/visit_card/vcards/new.html.erb +7 -0
  24. data/app/views/visit_card/vcards/show.html.erb +7 -0
  25. data/config/routes.rb +3 -0
  26. data/lib/generators/visit_card/vcard/templates/migration.rb +94 -0
  27. data/lib/generators/visit_card/vcard/templates/seeds.rb +14 -0
  28. data/lib/generators/visit_card/vcard/vcard_generator.rb +83 -0
  29. data/lib/generators/visit_card/views/views_generator.rb +63 -0
  30. data/lib/visit_card/controllers/vcards_controller.rb +65 -0
  31. data/lib/visit_card/helpers/vcards_helper.rb +66 -0
  32. data/lib/visit_card/models/vcard.rb +57 -0
  33. data/lib/visit_card/models/vcard_adr.rb +20 -0
  34. data/lib/visit_card/models/vcard_categorization.rb +18 -0
  35. data/lib/visit_card/models/vcard_dictionary.rb +25 -0
  36. data/lib/visit_card/models/vcard_email.rb +21 -0
  37. data/lib/visit_card/models/vcard_tel.rb +21 -0
  38. data/lib/visit_card.rb +33 -0
  39. data/spec/spec.opts +1 -0
  40. data/spec/spec_helper.rb +9 -0
  41. data/spec/visit_card_spec.rb +7 -0
  42. data/visit_card.gemspec +89 -0
  43. metadata +141 -0
@@ -0,0 +1,63 @@
1
+ module VisitCard
2
+ module Generators
3
+ class ViewsGenerator < Rails::Generators::Base
4
+ source_root File.expand_path("../../../../../app/views", __FILE__)
5
+ desc "Copies all Vcard views to your application."
6
+
7
+ argument :scope, :required => false, :default => nil,
8
+ :desc => "The scope to copy views to"
9
+
10
+ class_option :template_engine, :type => :string, :aliases => "-t", :default => "erb",
11
+ :desc => "Template engine for the views. Available options are 'erb' and 'haml'."
12
+
13
+ def copy_views
14
+ case options[:template_engine]
15
+ when "haml"
16
+ verify_haml_existence
17
+ verify_haml_version
18
+ create_and_copy_haml_views
19
+ else
20
+ directory "vcards", "app/views/#{scope || :vcards}"
21
+ end
22
+ end
23
+
24
+ protected
25
+
26
+ def verify_haml_existence
27
+ begin
28
+ require 'haml'
29
+ rescue LoadError
30
+ say "HAML is not installed, or it is not specified in your Gemfile."
31
+ exit
32
+ end
33
+ end
34
+
35
+ def verify_haml_version
36
+ unless Haml.version[:major] == 2 and Haml.version[:minor] >= 3 or Haml.version[:major] >= 3
37
+ say "To generate HAML templates, you need to install HAML 2.3 or above."
38
+ exit
39
+ end
40
+ end
41
+
42
+ def create_and_copy_haml_views
43
+ require 'tmpdir'
44
+ html_root = "#{self.class.source_root}/vcard"
45
+
46
+ Dir.mktmpdir("vcard-haml.") do |haml_root|
47
+ Dir["#{html_root}/**/*"].each do |path|
48
+ relative_path = path.sub(html_root, "")
49
+ source_path = (haml_root + relative_path).sub(/erb$/, "haml")
50
+
51
+ if File.directory?(path)
52
+ FileUtils.mkdir_p(source_path)
53
+ else
54
+ `html2haml -r #{path} #{source_path}`
55
+ end
56
+ end
57
+
58
+ directory haml_root, "app/views/#{scope || :vcard}"
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,65 @@
1
+ module VisitCard
2
+ module Controllers
3
+ module VcardsController
4
+ extend ActiveSupport::Concern
5
+
6
+ included do
7
+ respond_to :html
8
+ end
9
+
10
+ module InstanceMethods
11
+ def index
12
+ @vcards ||= Vcard.all
13
+ respond_with(@vcards)
14
+ end
15
+
16
+ def show
17
+ @vcard ||= Vcard.find(params[:id])
18
+ respond_with(@vcards)
19
+ end
20
+
21
+ def new
22
+ @vcard ||= Vcard.new
23
+ build_relations
24
+ respond_with(@vcard)
25
+ end
26
+
27
+ def edit
28
+ @vcard ||= Vcard.find(params[:id])
29
+ build_relations
30
+ respond_with(@vcard)
31
+ end
32
+
33
+ def create
34
+ @vcard ||= Vcard.new(params[:vcard])
35
+ build_relations unless @vcard.save
36
+ respond_with(@vcard)
37
+ end
38
+
39
+ def update
40
+ @vcard ||= Vcard.find(params[:id])
41
+ build_relations unless @vcard.update_attributes(params[:vcard])
42
+ respond_with(@vcard)
43
+ end
44
+
45
+ def destroy
46
+ @vcard ||= Vcard.find(params[:id])
47
+ @vcard.destroy
48
+ respond_with(@vcard)
49
+ end
50
+
51
+ private
52
+
53
+ def build_relations
54
+ @vcard.vcard_adrs.build if @vcard.vcard_adrs.empty?
55
+ @vcard.vcard_tels.build if @vcard.vcard_tels.empty?
56
+ @vcard.vcard_emails.build if @vcard.vcard_emails.empty?
57
+ @vcard.vcard_extensions.build if @vcard.vcard_extensions.empty?
58
+ end
59
+ end
60
+
61
+ module ClassMethods
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,66 @@
1
+ # if using gem russian or something what replace original to_label_tag then you need re-replace this method back by yourself
2
+ module VisitCard
3
+ module Helpers
4
+ module VcardsHelper
5
+ extend ActiveSupport::Concern
6
+
7
+ included do
8
+ ActionView::Helpers::FormBuilder.send :include, VcardsHelper::FormBuilder
9
+ ActionView::Helpers::InstanceTag.send :include, VcardsHelper::InstanceTag
10
+ end
11
+
12
+ module FormBuilder
13
+ def check_box_collection(method, collection, options = {})
14
+ output = "<fieldset class='#{method.to_s.downcase}'><legend>#{method.to_s.humanize}</legend>"
15
+ if collection.is_a? Array # array collection - hbtm through bit mask
16
+ collection.each do |value|
17
+ options.delete(:id)
18
+ output << check_box_collection_check_box(method, value, options) << "\n"
19
+ output << label(method, value.humanize, :value => value.downcase) << "\n"
20
+ end
21
+ output << check_box_collection_hidden_field(method)
22
+ else # hash collection - hbtm through join table
23
+ collection.each do |key, value|
24
+ options[:id] = "#{object_name}_#{method}_#{value}"
25
+ output << check_box_collection_check_box(method, key, options) << "\n"
26
+ output << label(method, value.humanize, :value => value.downcase) << "\n"
27
+ end
28
+ end
29
+ output << '</fieldset>'
30
+ output.html_safe
31
+ end
32
+
33
+ def check_box_collection_check_box(method, value, options = {})
34
+ if options[:id] # hbtm through join table
35
+ name = "#{object_name}[#{method.to_s.singularize}_ids][]"
36
+ checked = object.send(:"#{method.to_s.singularize}_ids").include?(value)
37
+ else # hbtm through bit mask
38
+ name = "#{object_name}[#{method}][]"
39
+ checked = object.send("#{method}?", value)
40
+ end
41
+ ActionView::Helpers::InstanceTag.new(object_name, method, self, options.delete(:object)).
42
+ to_check_box_collection_check_box_tag(name, value, checked, options)
43
+ end
44
+
45
+ def check_box_collection_hidden_field(method, options = {})
46
+ options[:name] ||= "#{object_name}[#{method}][]"
47
+ ActionView::Helpers::InstanceTag.new(object_name, method, self, options.delete(:object)).to_input_field_tag("hidden", options)
48
+ end
49
+ end
50
+
51
+ module InstanceTag
52
+ def to_check_box_collection_check_box_tag(name, value, checked, options)
53
+ options[:id] ||= name.dup << value.to_s
54
+ options[:id] = sanitize_to_id(options[:id])
55
+ check_box_tag name, value, checked, options
56
+ end
57
+ end
58
+
59
+ module InstanceMethods
60
+ end
61
+
62
+ module ClassMethods
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,57 @@
1
+ module VisitCard
2
+ module Models
3
+ module Vcard
4
+ extend ActiveSupport::Concern
5
+
6
+ VCARD_KLASSES = %w{public private confidential}
7
+ VCARD_NESTED_ATTRIBUTES_REJECT_IF = lambda {|a| a.reject{|k,v| k.include?('types') || k.include?('_id')}.all? {|_, v| v.blank?}}
8
+
9
+ included do
10
+ has_many :vcard_adrs, :dependent => :destroy
11
+ has_many :vcard_emails, :dependent => :destroy
12
+ has_many :vcard_tels, :dependent => :destroy
13
+ has_many :vcard_categorizations, :dependent => :destroy
14
+ has_many :vcard_categories, :class_name => 'VcardDictionary', :through => :vcard_categorizations
15
+ has_many :vcard_extensions, :dependent => :destroy
16
+ belongs_to :agent, :class_name => 'Vcard', :foreign_key => 'agent_id'
17
+
18
+ validates :family_name, :given_name, :presence => true
19
+ validates_numericality_of :latitude, :longitude, :allow_nil => true
20
+ validates_format_of :photo, :logo, :url, :with => URI::regexp(%w{http https}), :allow_blank => true, :allow_nil => true
21
+
22
+ # Setup accessible (or protected) attributes for your model
23
+ # attr_accessible :given_name, :last_name, :additional_name
24
+
25
+ scope :except, lambda {|id| id.blank? ? where('1 = 1') : where('id <> ?', (::Vcard.find(id).id rescue 0))} # for slugs support
26
+ # scope :excepts, lambda {|*ids| ids.compact.blank? ? where('1 = 1') : where('id NOT IN(?)', ids.join(','))}
27
+
28
+ accepts_nested_attributes_for :vcard_adrs, :vcard_tels, :vcard_emails, :vcard_extensions,
29
+ :reject_if => VCARD_NESTED_ATTRIBUTES_REJECT_IF, :allow_destroy => true
30
+ end
31
+
32
+ module InstanceMethods
33
+ def fn
34
+ "#{honorific_prefix} #{given_name} #{additional_name ? additional_name << ' ': ''}#{family_name} #{honorific_suffix}".strip
35
+ end
36
+
37
+ def n
38
+ "#{family_name};#{given_name};#{additional_name};#{honorific_prefix};#{honorific_suffix}"
39
+ end
40
+
41
+ def fga
42
+ "#{family_name} #{given_name} #{additional_name}".strip
43
+ end
44
+
45
+ # TODO move to separate builder class
46
+ def to_hcard
47
+ out = ''
48
+ out << (url? ? "<a href='#{url}' class='fn url'>#{fn}</a>" : "<span class='fn'>#{fn}</span>")
49
+ out.html_safe
50
+ end
51
+ end
52
+
53
+ module ClassMethods
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,20 @@
1
+ module VisitCard
2
+ module Models
3
+ module VcardAdr
4
+ extend ActiveSupport::Concern
5
+
6
+ TYPES = %w{dom intl postal parcel home work pref}
7
+
8
+ included do
9
+ belongs_to :vcard
10
+ bitmask :types, :as => TYPES
11
+ end
12
+
13
+ module InstanceMethods
14
+ end
15
+
16
+ module ClassMethods
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,18 @@
1
+ module VisitCard
2
+ module Models
3
+ module VcardCategorization
4
+ extend ActiveSupport::Concern
5
+
6
+ included do
7
+ belongs_to :vcard
8
+ belongs_to :vcard_category, :class_name => 'VcardDictionary', :foreign_key => :vcard_dictionary_id
9
+ end
10
+
11
+ module InstanceMethods
12
+ end
13
+
14
+ module ClassMethods
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,25 @@
1
+ module VisitCard
2
+ module Models
3
+ module VcardDictionary
4
+ extend ActiveSupport::Concern
5
+
6
+ KLASSES = %w{category extension_type}
7
+
8
+ included do
9
+ validates :klass, :name, :presence => true
10
+ validates_uniqueness_of :name, :scope => :klass
11
+
12
+ scope :ordered, order('name ASC')
13
+ scope :categories, where(:klass => 'category')
14
+ scope :extension_types, where(:klass => 'extension_type')
15
+ default_scope ordered
16
+ end
17
+
18
+ module InstanceMethods
19
+ end
20
+
21
+ module ClassMethods
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,21 @@
1
+ module VisitCard
2
+ module Models
3
+ module VcardEmail
4
+ extend ActiveSupport::Concern
5
+
6
+ TYPES = %w{internet x400 pref}
7
+
8
+ included do
9
+ belongs_to :vcard
10
+ validates_format_of :value, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, :allow_blank => true, :allow_nil => true
11
+ bitmask :types, :as => TYPES
12
+ end
13
+
14
+ module InstanceMethods
15
+ end
16
+
17
+ module ClassMethods
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ module VisitCard
2
+ module Models
3
+ module VcardTel
4
+ extend ActiveSupport::Concern
5
+
6
+ TYPES = %w{home msg work pref voice fax cell video pager bbs modem car isdn pcs}
7
+
8
+ included do
9
+ belongs_to :vcard
10
+ # TODO phone format parse and validate
11
+ bitmask :types, :as => TYPES
12
+ end
13
+
14
+ module InstanceMethods
15
+ end
16
+
17
+ module ClassMethods
18
+ end
19
+ end
20
+ end
21
+ end
data/lib/visit_card.rb ADDED
@@ -0,0 +1,33 @@
1
+ require 'bitmask-attribute'
2
+
3
+ module VisitCard
4
+ VCARD_VERSION = '3.0'
5
+
6
+ module Models
7
+ extend ActiveSupport::Autoload
8
+
9
+ autoload :Vcard
10
+ autoload :VcardAdr
11
+ autoload :VcardCategorization
12
+ autoload :VcardDictionary
13
+ autoload :VcardEmail
14
+ autoload :VcardExtension
15
+ autoload :VcardTel
16
+ end
17
+
18
+ module Controllers
19
+ extend ActiveSupport::Autoload
20
+
21
+ autoload :VcardsController
22
+ end
23
+
24
+ module Helpers
25
+ extend ActiveSupport::Autoload
26
+
27
+ autoload :VcardsHelper
28
+ end
29
+
30
+ class Engine < Rails::Engine
31
+ paths.app.views = 'app/views/visit_card'
32
+ end
33
+ end
data/spec/spec.opts ADDED
@@ -0,0 +1 @@
1
+ --color
@@ -0,0 +1,9 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+ require 'visit_card'
4
+ require 'spec'
5
+ require 'spec/autorun'
6
+
7
+ Spec::Runner.configure do |config|
8
+
9
+ end
@@ -0,0 +1,7 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "VisitCard" do
4
+ it "fails" do
5
+ fail "hey buddy, you should probably rename this file and start specing for real"
6
+ end
7
+ end
@@ -0,0 +1,89 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{visit_card}
8
+ s.version = "0.0.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Pavel Chipiga"]
12
+ s.date = %q{2010-07-02}
13
+ s.description = %q{Rails 3 engines plugin for VCard store and managment}
14
+ s.email = %q{pavel.chipiga@gmail.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".gitignore",
22
+ "LICENSE",
23
+ "README.rdoc",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "app/controllers/vcards_controller.rb",
27
+ "app/helpers/vcards_helper.rb",
28
+ "app/models/vcard.rb",
29
+ "app/models/vcard_adr.rb",
30
+ "app/models/vcard_categorization.rb",
31
+ "app/models/vcard_dictionary.rb",
32
+ "app/models/vcard_email.rb",
33
+ "app/models/vcard_tel.rb",
34
+ "app/views/visit_card/vcard_adrs/_form_fields.html.erb",
35
+ "app/views/visit_card/vcard_emails/_form_fields.html.erb",
36
+ "app/views/visit_card/vcard_tels/_form_fields.html.erb",
37
+ "app/views/visit_card/vcards/_form.html.erb",
38
+ "app/views/visit_card/vcards/_hcard.html.erb",
39
+ "app/views/visit_card/vcards/_static.html",
40
+ "app/views/visit_card/vcards/edit.html.erb",
41
+ "app/views/visit_card/vcards/index.html.erb",
42
+ "app/views/visit_card/vcards/new.html.erb",
43
+ "app/views/visit_card/vcards/show.html.erb",
44
+ "config/routes.rb",
45
+ "lib/generators/visit_card/vcard/templates/migration.rb",
46
+ "lib/generators/visit_card/vcard/templates/seeds.rb",
47
+ "lib/generators/visit_card/vcard/vcard_generator.rb",
48
+ "lib/generators/visit_card/views/views_generator.rb",
49
+ "lib/visit_card.rb",
50
+ "lib/visit_card/controllers/vcards_controller.rb",
51
+ "lib/visit_card/helpers/vcards_helper.rb",
52
+ "lib/visit_card/models/vcard.rb",
53
+ "lib/visit_card/models/vcard_adr.rb",
54
+ "lib/visit_card/models/vcard_categorization.rb",
55
+ "lib/visit_card/models/vcard_dictionary.rb",
56
+ "lib/visit_card/models/vcard_email.rb",
57
+ "lib/visit_card/models/vcard_tel.rb",
58
+ "spec/spec.opts",
59
+ "spec/spec_helper.rb",
60
+ "spec/visit_card_spec.rb",
61
+ "visit_card.gemspec"
62
+ ]
63
+ s.homepage = %q{http://github.com/chipiga/visit_card}
64
+ s.rdoc_options = ["--charset=UTF-8"]
65
+ s.require_paths = ["lib"]
66
+ s.rubygems_version = %q{1.3.7}
67
+ s.summary = %q{VCard implementation for Rails 3}
68
+ s.test_files = [
69
+ "spec/spec_helper.rb",
70
+ "spec/visit_card_spec.rb"
71
+ ]
72
+
73
+ if s.respond_to? :specification_version then
74
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
75
+ s.specification_version = 3
76
+
77
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
78
+ s.add_runtime_dependency(%q<bitmask-attribute>, [">= 1.2.0"])
79
+ s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
80
+ else
81
+ s.add_dependency(%q<bitmask-attribute>, [">= 1.2.0"])
82
+ s.add_dependency(%q<rspec>, [">= 1.2.9"])
83
+ end
84
+ else
85
+ s.add_dependency(%q<bitmask-attribute>, [">= 1.2.0"])
86
+ s.add_dependency(%q<rspec>, [">= 1.2.9"])
87
+ end
88
+ end
89
+
metadata ADDED
@@ -0,0 +1,141 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: visit_card
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Pavel Chipiga
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-07-02 00:00:00 +03:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: bitmask-attribute
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 31
30
+ segments:
31
+ - 1
32
+ - 2
33
+ - 0
34
+ version: 1.2.0
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: rspec
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 13
46
+ segments:
47
+ - 1
48
+ - 2
49
+ - 9
50
+ version: 1.2.9
51
+ type: :development
52
+ version_requirements: *id002
53
+ description: Rails 3 engines plugin for VCard store and managment
54
+ email: pavel.chipiga@gmail.com
55
+ executables: []
56
+
57
+ extensions: []
58
+
59
+ extra_rdoc_files:
60
+ - LICENSE
61
+ - README.rdoc
62
+ files:
63
+ - .document
64
+ - .gitignore
65
+ - LICENSE
66
+ - README.rdoc
67
+ - Rakefile
68
+ - VERSION
69
+ - app/controllers/vcards_controller.rb
70
+ - app/helpers/vcards_helper.rb
71
+ - app/models/vcard.rb
72
+ - app/models/vcard_adr.rb
73
+ - app/models/vcard_categorization.rb
74
+ - app/models/vcard_dictionary.rb
75
+ - app/models/vcard_email.rb
76
+ - app/models/vcard_tel.rb
77
+ - app/views/visit_card/vcard_adrs/_form_fields.html.erb
78
+ - app/views/visit_card/vcard_emails/_form_fields.html.erb
79
+ - app/views/visit_card/vcard_tels/_form_fields.html.erb
80
+ - app/views/visit_card/vcards/_form.html.erb
81
+ - app/views/visit_card/vcards/_hcard.html.erb
82
+ - app/views/visit_card/vcards/_static.html
83
+ - app/views/visit_card/vcards/edit.html.erb
84
+ - app/views/visit_card/vcards/index.html.erb
85
+ - app/views/visit_card/vcards/new.html.erb
86
+ - app/views/visit_card/vcards/show.html.erb
87
+ - config/routes.rb
88
+ - lib/generators/visit_card/vcard/templates/migration.rb
89
+ - lib/generators/visit_card/vcard/templates/seeds.rb
90
+ - lib/generators/visit_card/vcard/vcard_generator.rb
91
+ - lib/generators/visit_card/views/views_generator.rb
92
+ - lib/visit_card.rb
93
+ - lib/visit_card/controllers/vcards_controller.rb
94
+ - lib/visit_card/helpers/vcards_helper.rb
95
+ - lib/visit_card/models/vcard.rb
96
+ - lib/visit_card/models/vcard_adr.rb
97
+ - lib/visit_card/models/vcard_categorization.rb
98
+ - lib/visit_card/models/vcard_dictionary.rb
99
+ - lib/visit_card/models/vcard_email.rb
100
+ - lib/visit_card/models/vcard_tel.rb
101
+ - spec/spec.opts
102
+ - spec/spec_helper.rb
103
+ - spec/visit_card_spec.rb
104
+ - visit_card.gemspec
105
+ has_rdoc: true
106
+ homepage: http://github.com/chipiga/visit_card
107
+ licenses: []
108
+
109
+ post_install_message:
110
+ rdoc_options:
111
+ - --charset=UTF-8
112
+ require_paths:
113
+ - lib
114
+ required_ruby_version: !ruby/object:Gem::Requirement
115
+ none: false
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ hash: 3
120
+ segments:
121
+ - 0
122
+ version: "0"
123
+ required_rubygems_version: !ruby/object:Gem::Requirement
124
+ none: false
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ hash: 3
129
+ segments:
130
+ - 0
131
+ version: "0"
132
+ requirements: []
133
+
134
+ rubyforge_project:
135
+ rubygems_version: 1.3.7
136
+ signing_key:
137
+ specification_version: 3
138
+ summary: VCard implementation for Rails 3
139
+ test_files:
140
+ - spec/spec_helper.rb
141
+ - spec/visit_card_spec.rb