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.
- data/.document +5 -0
- data/.gitignore +21 -0
- data/LICENSE +20 -0
- data/README.rdoc +31 -0
- data/Rakefile +46 -0
- data/VERSION +1 -0
- data/app/controllers/vcards_controller.rb +3 -0
- data/app/helpers/vcards_helper.rb +3 -0
- data/app/models/vcard.rb +3 -0
- data/app/models/vcard_adr.rb +3 -0
- data/app/models/vcard_categorization.rb +3 -0
- data/app/models/vcard_dictionary.rb +3 -0
- data/app/models/vcard_email.rb +3 -0
- data/app/models/vcard_tel.rb +3 -0
- data/app/views/visit_card/vcard_adrs/_form_fields.html.erb +38 -0
- data/app/views/visit_card/vcard_emails/_form_fields.html.erb +14 -0
- data/app/views/visit_card/vcard_tels/_form_fields.html.erb +14 -0
- data/app/views/visit_card/vcards/_form.html.erb +115 -0
- data/app/views/visit_card/vcards/_hcard.html.erb +1 -0
- data/app/views/visit_card/vcards/_static.html +39 -0
- data/app/views/visit_card/vcards/edit.html.erb +7 -0
- data/app/views/visit_card/vcards/index.html.erb +20 -0
- data/app/views/visit_card/vcards/new.html.erb +7 -0
- data/app/views/visit_card/vcards/show.html.erb +7 -0
- data/config/routes.rb +3 -0
- data/lib/generators/visit_card/vcard/templates/migration.rb +94 -0
- data/lib/generators/visit_card/vcard/templates/seeds.rb +14 -0
- data/lib/generators/visit_card/vcard/vcard_generator.rb +83 -0
- data/lib/generators/visit_card/views/views_generator.rb +63 -0
- data/lib/visit_card/controllers/vcards_controller.rb +65 -0
- data/lib/visit_card/helpers/vcards_helper.rb +66 -0
- data/lib/visit_card/models/vcard.rb +57 -0
- data/lib/visit_card/models/vcard_adr.rb +20 -0
- data/lib/visit_card/models/vcard_categorization.rb +18 -0
- data/lib/visit_card/models/vcard_dictionary.rb +25 -0
- data/lib/visit_card/models/vcard_email.rb +21 -0
- data/lib/visit_card/models/vcard_tel.rb +21 -0
- data/lib/visit_card.rb +33 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +9 -0
- data/spec/visit_card_spec.rb +7 -0
- data/visit_card.gemspec +89 -0
- 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
|
data/spec/spec_helper.rb
ADDED
data/visit_card.gemspec
ADDED
@@ -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
|