muck-profiles 0.1.16 → 0.1.17
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/README.rdoc +104 -2
- data/Rakefile +2 -0
- data/VERSION +1 -1
- data/app/controllers/muck/profiles_controller.rb +1 -1
- data/app/helpers/muck_profiles_helper.rb +14 -0
- data/app/views/profiles/_form.html.erb +2 -1
- data/app/views/profiles/_location_suggestion.html.erb +12 -0
- data/db/migrate/20091124203137_add_location_to_profiles.rb +15 -0
- data/db/migrate/20091124205819_add_fields_to_profiles.rb +21 -0
- data/lib/active_record/acts/muck_profile.rb +53 -1
- data/lib/active_record/has/muck_profile.rb +0 -2
- data/locales/en.yml +16 -1
- data/muck-profiles.gemspec +144 -3
- data/test/rails_root/.gitignore +2 -1
- data/test/rails_root/config/database.yml +12 -12
- data/test/rails_root/config/environment.rb +1 -0
- data/test/rails_root/config/{global_config.yml → global_config.example.yml} +1 -1
- data/test/rails_root/config/initializers/geokit_config.rb +61 -0
- data/test/rails_root/db/migrate/20090402234137_create_languages.rb +18 -0
- data/test/rails_root/db/migrate/20090426041056_create_countries.rb +15 -0
- data/test/rails_root/db/migrate/20090426041103_create_states.rb +18 -0
- data/test/rails_root/db/migrate/20091124203137_add_location_to_profiles.rb +15 -0
- data/test/rails_root/db/migrate/20091124205819_add_fields_to_profiles.rb +21 -0
- data/test/rails_root/lib/tasks/muck.rake +7 -0
- data/test/rails_root/public/images/arrow_down.gif +0 -0
- data/test/rails_root/public/images/arrow_up.gif +0 -0
- data/test/rails_root/public/images/fancybox/fancy_closebox.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_left.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_progress.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_right.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_shadow_e.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_shadow_n.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_shadow_ne.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_shadow_nw.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_shadow_s.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_shadow_se.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_shadow_sw.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_shadow_w.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_title_left.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_title_main.png +0 -0
- data/test/rails_root/public/images/fancybox/fancy_title_right.png +0 -0
- data/test/rails_root/public/images/icons/blue_guy.png +0 -0
- data/test/rails_root/public/images/icons/button_background.png +0 -0
- data/test/rails_root/public/images/icons/cancel.png +0 -0
- data/test/rails_root/public/images/icons/close.png +0 -0
- data/test/rails_root/public/images/icons/comment.png +0 -0
- data/test/rails_root/public/images/icons/exclaim.png +0 -0
- data/test/rails_root/public/images/icons/external.png +0 -0
- data/test/rails_root/public/images/icons/feed.png +0 -0
- data/test/rails_root/public/images/icons/grey_guy.png +0 -0
- data/test/rails_root/public/images/icons/hide.png +0 -0
- data/test/rails_root/public/images/icons/information.png +0 -0
- data/test/rails_root/public/images/icons/minus.png +0 -0
- data/test/rails_root/public/images/icons/pending.png +0 -0
- data/test/rails_root/public/images/icons/question.png +0 -0
- data/test/rails_root/public/images/icons/search_box.png +0 -0
- data/test/rails_root/public/images/icons/star.png +0 -0
- data/test/rails_root/public/images/icons/stop.png +0 -0
- data/test/rails_root/public/images/icons/thumb_down.png +0 -0
- data/test/rails_root/public/images/icons/thumb_up.png +0 -0
- data/test/rails_root/public/images/nothing.png +0 -0
- data/test/rails_root/public/javascripts/jquery/colorpicker.js +450 -0
- data/test/rails_root/public/javascripts/jquery/jquery.autocomplete.js.readme +6 -0
- data/test/rails_root/public/javascripts/jquery/jquery.autocomplete.min.js +15 -0
- data/test/rails_root/public/javascripts/jquery/jquery.autocomplete.pack.js +767 -0
- data/test/rails_root/public/javascripts/jquery/jquery.easing.js +1 -0
- data/test/rails_root/public/javascripts/jquery/jquery.fancybox.js +9 -0
- data/test/rails_root/public/javascripts/jquery/jquery.metadata.min.js +13 -0
- data/test/rails_root/public/javascripts/jquery/jquery.queryString.js +33 -0
- data/test/rails_root/public/javascripts/jquery/jquery.swapimage.js +66 -0
- data/test/rails_root/public/javascripts/jquery/jquery.swapimage.min.js +11 -0
- data/test/rails_root/public/javascripts/jquery/jrails.js +1 -0
- data/test/rails_root/public/javascripts/muck.js +11 -6
- data/test/rails_root/public/javascripts/muck_time/en.js +53 -0
- data/test/rails_root/public/javascripts/tree.js +107 -0
- data/test/rails_root/public/stylesheets/jquery/jquery.autocomplete.css +15 -0
- data/test/rails_root/public/stylesheets/jquery/jquery.fancybox.css +44 -0
- data/test/rails_root/public/stylesheets/styles.css +10 -3
- data/test/rails_root/vendor/plugins/geokit-rails/CHANGELOG.rdoc +46 -0
- data/test/rails_root/vendor/plugins/geokit-rails/MIT-LICENSE +20 -0
- data/test/rails_root/vendor/plugins/geokit-rails/README.markdown +561 -0
- data/test/rails_root/vendor/plugins/geokit-rails/Rakefile +18 -0
- data/test/rails_root/vendor/plugins/geokit-rails/about.yml +9 -0
- data/test/rails_root/vendor/plugins/geokit-rails/assets/api_keys_template +61 -0
- data/test/rails_root/vendor/plugins/geokit-rails/init.rb +1 -0
- data/test/rails_root/vendor/plugins/geokit-rails/install.rb +14 -0
- data/test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails.rb +26 -0
- data/test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/acts_as_mappable.rb +456 -0
- data/test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/adapters/abstract.rb +31 -0
- data/test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/adapters/mysql.rb +22 -0
- data/test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/adapters/postgresql.rb +22 -0
- data/test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/adapters/sqlserver.rb +43 -0
- data/test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/defaults.rb +22 -0
- data/test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/geocoder_control.rb +16 -0
- data/test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/ip_geocode_lookup.rb +46 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/acts_as_mappable_test.rb +474 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/boot.rb +25 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/database.yml +20 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/fixtures/companies.yml +7 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/fixtures/custom_locations.yml +54 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/fixtures/locations.yml +54 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/fixtures/mock_addresses.yml +17 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/fixtures/mock_families.yml +2 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/fixtures/mock_houses.yml +9 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/fixtures/mock_organizations.yml +5 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/fixtures/mock_people.yml +5 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/fixtures/stores.yml +0 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/ip_geocode_lookup_test.rb +77 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/models/company.rb +3 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/models/custom_location.rb +12 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/models/location.rb +4 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/models/mock_address.rb +4 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/models/mock_family.rb +3 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/models/mock_house.rb +3 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/models/mock_organization.rb +4 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/models/mock_person.rb +4 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/models/store.rb +3 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/schema.rb +60 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/tasks.rake +31 -0
- data/test/rails_root/vendor/plugins/geokit-rails/test/test_helper.rb +23 -0
- metadata +158 -3
data/README.rdoc
CHANGED
|
@@ -6,16 +6,36 @@ Add profiles to muck users. This implements a photo for users as well as a prop
|
|
|
6
6
|
Muck profile relies upon the muck-engine and muck-users gems as well as paperclip. Add the following lines to your environment.rb file:
|
|
7
7
|
|
|
8
8
|
config.gem "authlogic"
|
|
9
|
-
config.gem "
|
|
9
|
+
config.gem "searchlogic"
|
|
10
10
|
config.gem "bcrypt-ruby", :lib => "bcrypt"
|
|
11
|
-
config.gem '
|
|
11
|
+
config.gem 'paperclip'
|
|
12
12
|
config.gem 'muck-engine', :lib => 'muck_engine'
|
|
13
13
|
config.gem 'muck-users', :lib => 'muck_users'
|
|
14
14
|
config.gem 'muck-profiles', :lib => 'muck_profiles'
|
|
15
|
+
config.gem 'geokit'
|
|
15
16
|
|
|
16
17
|
Next run rake gems:install
|
|
17
18
|
|
|
19
|
+
MuckProfiles uses geokit to determine a users location and to make it possible to find users that are within a given proximity.
|
|
18
20
|
|
|
21
|
+
Install the GeoKit Rails Plugin:
|
|
22
|
+
|
|
23
|
+
script/plugin install git://github.com/andre/geokit-rails.git
|
|
24
|
+
|
|
25
|
+
Be sure to get api keys from Google an Yahoo. Instructions for doing so can be found in config/initializers/geokit_config.rb after installing the plugin. We recommend moving the keys into
|
|
26
|
+
global_config.yml:
|
|
27
|
+
|
|
28
|
+
Change the lines in config/initializers/geokit_config.rb to:
|
|
29
|
+
Geokit::Geocoders::yahoo = GlobalConfig.yahoo_geo_key
|
|
30
|
+
Geokit::Geocoders::google = GlobalConfig.google_geo_key
|
|
31
|
+
|
|
32
|
+
Put this in global_config.yml:
|
|
33
|
+
google_geo_key: 'some key' # API key for Google. Get it here: http://www.google.com/apis/maps/signup.html
|
|
34
|
+
yahoo_geo_key: 'some key' # API key for Yahoo. Get it here: http://developer.yahoo.com/faq/index.html#appid
|
|
35
|
+
|
|
36
|
+
# Profile configuration
|
|
37
|
+
enable_guess_location: true # If true the profile system will attempt to determine the user's location via IP and populated with the location, lat and lon fields.
|
|
38
|
+
|
|
19
39
|
== Usage
|
|
20
40
|
Create a model called profile.rb and add 'acts_as_muck_profile'. This mixes in the muck profile functionality but also permits further customization of the profile in your application.
|
|
21
41
|
|
|
@@ -38,4 +58,86 @@ Your user model will now appear to have a 'photo' which is delegated to the prof
|
|
|
38
58
|
|
|
39
59
|
@user.photo # returns a photo object from paperclip
|
|
40
60
|
|
|
61
|
+
=== Profile Attributes
|
|
62
|
+
The profile comes preconfigured with a basic set of common profile options. It is easy to add new fields. Simply add the fields to the profile using a migration:
|
|
63
|
+
|
|
64
|
+
class AddMoreFieldsToProfiles < ActiveRecord::Migration
|
|
65
|
+
def self.up
|
|
66
|
+
add_column :profiles, :occupation, :string
|
|
67
|
+
add_column :profiles, :gender, :string
|
|
68
|
+
add_column :profiles, :birthday, :datetime
|
|
69
|
+
add_column :profiles, :company, :string
|
|
70
|
+
add_column :profiles, :zip, :string
|
|
71
|
+
add_column :profiles, :mobile_phone, :string
|
|
72
|
+
add_column :profiles, :home_phone, :string
|
|
73
|
+
add_column :profiles, :alumni_of, :string
|
|
74
|
+
add_column :profiles, :relationship_status, :string
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def self.down
|
|
78
|
+
add_column :profiles, :occupation
|
|
79
|
+
add_column :profiles, :gender
|
|
80
|
+
add_column :profiles, :birthday
|
|
81
|
+
add_column :profiles, :company
|
|
82
|
+
add_column :profiles, :zip
|
|
83
|
+
add_column :profiles, :mobile_phone
|
|
84
|
+
add_column :profiles, :home_phone
|
|
85
|
+
add_column :profiles, :alumni_of
|
|
86
|
+
add_column :profiles, :relationship_status
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
Next create a new views/profiles/edit.html.erb file. The built in file is very basic and makes it easy to add additional fields. The 'profile_form' method will
|
|
92
|
+
create form elements for the built in fields. Add extra fields after that.
|
|
93
|
+
|
|
94
|
+
<div id="edit_content" class="span-24 colborder column">
|
|
95
|
+
<%= output_errors(t('muck.profiles.problem_editing_profile'), {:class => 'help-box'}, @profile) %>
|
|
96
|
+
<% profile_form(@profile) do |f| -%>
|
|
97
|
+
<%# can add form fields as desired here -%>
|
|
98
|
+
<% end -%>
|
|
99
|
+
</div>
|
|
100
|
+
|
|
101
|
+
Last create view/profiles/show.html.erb. There is a built in show page however it is assumed that most applications will implement a custom show page to hightlight
|
|
102
|
+
the focus of the system.
|
|
103
|
+
|
|
104
|
+
<div class="span-24 colborder column">
|
|
105
|
+
<%= icon @user, :thumb %>
|
|
106
|
+
<p><%= @user.full_name %></p>
|
|
107
|
+
<p><%= link_to t('muck.profiles.edit_profile'), edit_user_profile_path(@user) if @profile.can_edit?(current_user) %></p>
|
|
108
|
+
<!-- Add more fields and customize the profile. -->
|
|
109
|
+
</div>
|
|
110
|
+
|
|
111
|
+
It's important to sanitize user input. If you add fields to the profile then be sure to prevent cross site scripting. Override the 'sanitize_attributes' method
|
|
112
|
+
in your model and add your new fields. Note that you can also override 'sanitize_level' to determine how sanitization occurs.
|
|
113
|
+
|
|
114
|
+
# Sanitize content before saving. This prevents XSS attacks and other malicious html.
|
|
115
|
+
def sanitize_attributes
|
|
116
|
+
if self.sanitize_level
|
|
117
|
+
self.about = Sanitize.clean(self.about, self.sanitize_level)
|
|
118
|
+
self.location = Sanitize.clean(self.location, self.sanitize_level)
|
|
119
|
+
# add your fields
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# Override this method to control sanitization levels.
|
|
124
|
+
# Currently a user who is an admin will not have their content sanitized. A user
|
|
125
|
+
# in any role 'editor', 'manager', or 'contributor' will be given the 'RELAXED' settings
|
|
126
|
+
# while all other users will get 'BASIC'.
|
|
127
|
+
#
|
|
128
|
+
# Options are from sanitze:
|
|
129
|
+
# nil - no sanitize
|
|
130
|
+
# Sanitize::Config::RELAXED
|
|
131
|
+
# Sanitize::Config::BASIC
|
|
132
|
+
# Sanitize::Config::RESTRICTED
|
|
133
|
+
# for more details see: http://rgrove.github.com/sanitize/
|
|
134
|
+
def sanitize_level
|
|
135
|
+
return Sanitize::Config::BASIC if self.user.nil?
|
|
136
|
+
return nil if self.user.admin?
|
|
137
|
+
return Sanitize::Config::RELAXED if self.user.any_role?('editor', 'manager', 'contributor')
|
|
138
|
+
Sanitize::Config::BASIC
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
|
|
41
143
|
Copyright (c) 2009 Tatemae, released under the MIT license
|
data/Rakefile
CHANGED
|
@@ -56,6 +56,8 @@ begin
|
|
|
56
56
|
gemspec.rubyforge_project = 'muck-profiles'
|
|
57
57
|
gemspec.add_dependency "muck-engine"
|
|
58
58
|
gemspec.add_dependency "muck-users"
|
|
59
|
+
gemspec.add_dependency "geokit"
|
|
60
|
+
gemspec.add_dependency "paperclip"
|
|
59
61
|
end
|
|
60
62
|
Jeweler::RubyforgeTasks.new do |rubyforge|
|
|
61
63
|
rubyforge.doc_task = "rdoc"
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.1.
|
|
1
|
+
0.1.17
|
|
@@ -9,4 +9,18 @@ module MuckProfilesHelper
|
|
|
9
9
|
raw_block_to_partial('profiles/form', options.merge(:profile => profile), &block)
|
|
10
10
|
end
|
|
11
11
|
|
|
12
|
+
# Outputs a link and text that guesses the user's location using their ip.
|
|
13
|
+
def location_suggestion(field_id)
|
|
14
|
+
geo = Geokit::Geocoders::MultiGeocoder.geocode(request.ip)
|
|
15
|
+
location = readable_location(geo)
|
|
16
|
+
return '' if location.blank?
|
|
17
|
+
render :partial => 'profiles/location_suggestion', :locals => { :field_id => field_id, :location => location }
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Turns a geokit location object into a location string with city, state country
|
|
21
|
+
def readable_location(location)
|
|
22
|
+
return '' if location.city.blank? && location.state.blank? && location.province.blank? && location.country_code.blank?
|
|
23
|
+
"#{location.city}, #{location.state || location.province} #{location.country_code}"
|
|
24
|
+
end
|
|
25
|
+
|
|
12
26
|
end
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
<div id="<%= "#{profile.dom_id}" %>" class="edit_profile">
|
|
2
2
|
<% custom_form_for(profile, :url => user_profile_path(profile.user), :html => html.merge(:id => "edit-profile-form", :name => 'edit-profile-form', :method => :put, :multipart => true ) ) do |f| -%>
|
|
3
3
|
<div id="edit_profile_image">
|
|
4
|
-
|
|
4
|
+
<%#= image_tag profile.photo.url(:thumb) %>
|
|
5
|
+
<%= icon profile.user, :thumb %>
|
|
5
6
|
<%= f.file_field :photo, { :label => t('muck.profiles.upload_photo') } %>
|
|
6
7
|
</div>
|
|
7
8
|
<%= capture(f, &block) %>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<div class="location-suggestion">
|
|
2
|
+
<%= I18n.t('muck.profiles.location_suggestion', :location => location) %>
|
|
3
|
+
<a href="#" id="set_<%=field_id%>"><%=I18n.t('muck.profiles.click_to_set')%></a>
|
|
4
|
+
</div>
|
|
5
|
+
<script type="text/javascript">
|
|
6
|
+
jQuery(document).ready(function() {
|
|
7
|
+
jQuery("#set_<%=field_id%>").click(function() {
|
|
8
|
+
jQuery("#<%=field_id%>").val("<%=location%>");
|
|
9
|
+
return false;
|
|
10
|
+
});
|
|
11
|
+
});
|
|
12
|
+
</script>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
class AddLocationToProfiles < ActiveRecord::Migration
|
|
2
|
+
def self.up
|
|
3
|
+
add_column :profiles, :location, :string
|
|
4
|
+
add_column :profiles, :lat, :decimal, :precision => 15, :scale => 10
|
|
5
|
+
add_column :profiles, :lng, :decimal, :precision => 15, :scale => 10
|
|
6
|
+
add_index :profiles, [:lat, :lng]
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def self.down
|
|
10
|
+
remove_index :profiles, [:lat, :lng]
|
|
11
|
+
remove_column :profiles, :location
|
|
12
|
+
remove_column :profiles, :lat
|
|
13
|
+
remove_column :profiles, :lng
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
class AddFieldsToProfiles < ActiveRecord::Migration
|
|
2
|
+
def self.up
|
|
3
|
+
add_column :profiles, :about, :text
|
|
4
|
+
add_column :profiles, :first_name, :string
|
|
5
|
+
add_column :profiles, :last_name, :string
|
|
6
|
+
add_column :profiles, :city, :string
|
|
7
|
+
add_column :profiles, :state_id, :integer
|
|
8
|
+
add_column :profiles, :country_id, :integer
|
|
9
|
+
add_column :profiles, :language_id, :integer
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def self.down
|
|
13
|
+
remove_column :profiles, :about
|
|
14
|
+
remove_column :profiles, :first_name
|
|
15
|
+
remove_column :profiles, :last_name
|
|
16
|
+
remove_column :profiles, :city
|
|
17
|
+
remove_column :profiles, :state_id
|
|
18
|
+
remove_column :profiles, :country_id
|
|
19
|
+
remove_column :profiles, :language_id
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -10,6 +10,11 @@ module ActiveRecord
|
|
|
10
10
|
def acts_as_muck_profile(options = {})
|
|
11
11
|
|
|
12
12
|
belongs_to :user
|
|
13
|
+
belongs_to :state
|
|
14
|
+
belongs_to :country
|
|
15
|
+
belongs_to :language
|
|
16
|
+
|
|
17
|
+
acts_as_mappable
|
|
13
18
|
|
|
14
19
|
has_attached_file :photo,
|
|
15
20
|
:styles => { :medium => "300x300>",
|
|
@@ -18,6 +23,7 @@ module ActiveRecord
|
|
|
18
23
|
:tiny => "24x24>" },
|
|
19
24
|
:default_url => "/images/profile_default.jpg"
|
|
20
25
|
|
|
26
|
+
before_save :sanitize_attributes
|
|
21
27
|
|
|
22
28
|
class_eval <<-EOV
|
|
23
29
|
attr_protected :created_at, :updated_at, :photo_file_name, :photo_content_type, :photo_file_size
|
|
@@ -31,7 +37,7 @@ module ActiveRecord
|
|
|
31
37
|
|
|
32
38
|
# class methods
|
|
33
39
|
module SingletonMethods
|
|
34
|
-
|
|
40
|
+
|
|
35
41
|
end
|
|
36
42
|
|
|
37
43
|
# All the methods available to a record that has had <tt>acts_as_muck_profile</tt> specified.
|
|
@@ -42,6 +48,52 @@ module ActiveRecord
|
|
|
42
48
|
self.user_id == user.id || user.admin?
|
|
43
49
|
end
|
|
44
50
|
|
|
51
|
+
def guess_and_assign_location_via_ip
|
|
52
|
+
if GlobalConfig.enable_guess_location && self.user.current_login_ip
|
|
53
|
+
location = Geokit::Geocoders::MultiGeocoder.geocode(self.user.current_login_ip)
|
|
54
|
+
state = State.find_by_abbreviation(location.state)
|
|
55
|
+
country = Country.find_by_abbreviation(location.country)
|
|
56
|
+
self.update_attributes(
|
|
57
|
+
:location => "#{location.city}, #{location.state || location.province} #{location.country_code}",
|
|
58
|
+
:lat => location.lat,
|
|
59
|
+
:lng => location.lng,
|
|
60
|
+
:city => location.city,
|
|
61
|
+
:state => state,
|
|
62
|
+
:country => country)
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def after_create
|
|
67
|
+
guess_and_assign_location_via_ip
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# Sanitize content before saving. This prevent XSS attacks and other malicious html.
|
|
71
|
+
def sanitize_attributes
|
|
72
|
+
if self.sanitize_level
|
|
73
|
+
self.about = Sanitize.clean(self.about, self.sanitize_level)
|
|
74
|
+
self.location = Sanitize.clean(self.location, self.sanitize_level)
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# Override this method to control sanitization levels.
|
|
79
|
+
# Currently a user who is an admin will not have their content sanitized. A user
|
|
80
|
+
# in any role 'editor', 'manager', or 'contributor' will be given the 'RELAXED' settings
|
|
81
|
+
# while all other users will get 'BASIC'.
|
|
82
|
+
#
|
|
83
|
+
# Options are from sanitze:
|
|
84
|
+
# nil - no sanitize
|
|
85
|
+
# Sanitize::Config::RELAXED
|
|
86
|
+
# Sanitize::Config::BASIC
|
|
87
|
+
# Sanitize::Config::RESTRICTED
|
|
88
|
+
# for more details see: http://rgrove.github.com/sanitize/
|
|
89
|
+
def sanitize_level
|
|
90
|
+
return Sanitize::Config::BASIC if self.user.nil?
|
|
91
|
+
return nil if self.user.admin?
|
|
92
|
+
return Sanitize::Config::RELAXED if self.user.any_role?('editor', 'manager', 'contributor')
|
|
93
|
+
Sanitize::Config::BASIC
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
|
|
45
97
|
end
|
|
46
98
|
|
|
47
99
|
end
|
data/locales/en.yml
CHANGED
|
@@ -10,4 +10,19 @@ en:
|
|
|
10
10
|
edit_success: "Successfully updated your profile"
|
|
11
11
|
edit_failure: "An error occured while updating your profile."
|
|
12
12
|
could_not_find_user: "Could not find the specified user."
|
|
13
|
-
|
|
13
|
+
location: "Location"
|
|
14
|
+
skills: "Skills"
|
|
15
|
+
interests: "Interests"
|
|
16
|
+
state: "State"
|
|
17
|
+
country: "Country"
|
|
18
|
+
language: "Language"
|
|
19
|
+
about: "About"
|
|
20
|
+
about_help: "Enter a biographical information to help others find out about your skills, interests, etc."
|
|
21
|
+
location_help: "Enter your location. For example: Logan, UT, New York City, NY, etc"
|
|
22
|
+
skills_help: "Enter a comma delimited list of your skills. For example: ruby on rails, php, mysql, physics, math"
|
|
23
|
+
interests_help: "Enter a comma delimited list of your interests. For example: cycling, mountain biking, chess, movies"
|
|
24
|
+
state_help: "Enter your state if this is relevant to your country."
|
|
25
|
+
country_help: "Enter your current current."
|
|
26
|
+
language_help: "Enter your primary language"
|
|
27
|
+
location_suggestion: "We think you're in {{location}}."
|
|
28
|
+
click_to_set: "Click to set this as your location."
|
data/muck-profiles.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = %q{muck-profiles}
|
|
8
|
-
s.version = "0.1.
|
|
8
|
+
s.version = "0.1.17"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["Justin Ball", "Joel Duffin"]
|
|
12
|
-
s.date = %q{2009-11-
|
|
12
|
+
s.date = %q{2009-11-30}
|
|
13
13
|
s.description = %q{Profile engine for the muck system.}
|
|
14
14
|
s.email = %q{justin@tatemae.com}
|
|
15
15
|
s.extra_rdoc_files = [
|
|
@@ -26,6 +26,7 @@ Gem::Specification.new do |s|
|
|
|
26
26
|
"app/helpers/muck_profiles_helper.rb",
|
|
27
27
|
"app/views/admin/profiles/edit.html.erb",
|
|
28
28
|
"app/views/profiles/_form.html.erb",
|
|
29
|
+
"app/views/profiles/_location_suggestion.html.erb",
|
|
29
30
|
"app/views/profiles/_profile.html.erb",
|
|
30
31
|
"app/views/profiles/_profile_icon.html.erb",
|
|
31
32
|
"app/views/profiles/edit.html.erb",
|
|
@@ -33,6 +34,8 @@ Gem::Specification.new do |s|
|
|
|
33
34
|
"app/views/profiles/show.html.erb",
|
|
34
35
|
"config/muck_profiles_routes.rb",
|
|
35
36
|
"db/migrate/20090512013727_create_profiles.rb",
|
|
37
|
+
"db/migrate/20091124203137_add_location_to_profiles.rb",
|
|
38
|
+
"db/migrate/20091124205819_add_fields_to_profiles.rb",
|
|
36
39
|
"install.rb",
|
|
37
40
|
"lib/active_record/acts/muck_profile.rb",
|
|
38
41
|
"lib/active_record/has/muck_profile.rb",
|
|
@@ -107,7 +110,8 @@ Gem::Specification.new do |s|
|
|
|
107
110
|
"test/rails_root/config/environments/development.rb",
|
|
108
111
|
"test/rails_root/config/environments/production.rb",
|
|
109
112
|
"test/rails_root/config/environments/test.rb",
|
|
110
|
-
"test/rails_root/config/global_config.yml",
|
|
113
|
+
"test/rails_root/config/global_config.example.yml",
|
|
114
|
+
"test/rails_root/config/initializers/geokit_config.rb",
|
|
111
115
|
"test/rails_root/config/initializers/inflections.rb",
|
|
112
116
|
"test/rails_root/config/initializers/mime_types.rb",
|
|
113
117
|
"test/rails_root/config/initializers/requires.rb",
|
|
@@ -115,24 +119,67 @@ Gem::Specification.new do |s|
|
|
|
115
119
|
"test/rails_root/config/routes.rb",
|
|
116
120
|
"test/rails_root/db/.keep",
|
|
117
121
|
"test/rails_root/db/migrate/20090320174818_create_muck_permissions_and_roles.rb",
|
|
122
|
+
"test/rails_root/db/migrate/20090402234137_create_languages.rb",
|
|
123
|
+
"test/rails_root/db/migrate/20090426041056_create_countries.rb",
|
|
124
|
+
"test/rails_root/db/migrate/20090426041103_create_states.rb",
|
|
118
125
|
"test/rails_root/db/migrate/20090512013727_create_profiles.rb",
|
|
119
126
|
"test/rails_root/db/migrate/20090602041838_create_users.rb",
|
|
127
|
+
"test/rails_root/db/migrate/20091124203137_add_location_to_profiles.rb",
|
|
128
|
+
"test/rails_root/db/migrate/20091124205819_add_fields_to_profiles.rb",
|
|
120
129
|
"test/rails_root/features/step_definitions/webrat_steps.rb",
|
|
121
130
|
"test/rails_root/features/support/env.rb",
|
|
131
|
+
"test/rails_root/lib/tasks/muck.rake",
|
|
122
132
|
"test/rails_root/public/.htaccess",
|
|
123
133
|
"test/rails_root/public/404.html",
|
|
124
134
|
"test/rails_root/public/422.html",
|
|
125
135
|
"test/rails_root/public/500.html",
|
|
126
136
|
"test/rails_root/public/dispatch.rb",
|
|
127
137
|
"test/rails_root/public/favicon.ico",
|
|
138
|
+
"test/rails_root/public/images/arrow_down.gif",
|
|
128
139
|
"test/rails_root/public/images/arrow_left.gif",
|
|
129
140
|
"test/rails_root/public/images/arrow_right.gif",
|
|
141
|
+
"test/rails_root/public/images/arrow_up.gif",
|
|
130
142
|
"test/rails_root/public/images/blue/preview.gif",
|
|
143
|
+
"test/rails_root/public/images/fancybox/fancy_closebox.png",
|
|
144
|
+
"test/rails_root/public/images/fancybox/fancy_left.png",
|
|
145
|
+
"test/rails_root/public/images/fancybox/fancy_progress.png",
|
|
146
|
+
"test/rails_root/public/images/fancybox/fancy_right.png",
|
|
147
|
+
"test/rails_root/public/images/fancybox/fancy_shadow_e.png",
|
|
148
|
+
"test/rails_root/public/images/fancybox/fancy_shadow_n.png",
|
|
149
|
+
"test/rails_root/public/images/fancybox/fancy_shadow_ne.png",
|
|
150
|
+
"test/rails_root/public/images/fancybox/fancy_shadow_nw.png",
|
|
151
|
+
"test/rails_root/public/images/fancybox/fancy_shadow_s.png",
|
|
152
|
+
"test/rails_root/public/images/fancybox/fancy_shadow_se.png",
|
|
153
|
+
"test/rails_root/public/images/fancybox/fancy_shadow_sw.png",
|
|
154
|
+
"test/rails_root/public/images/fancybox/fancy_shadow_w.png",
|
|
155
|
+
"test/rails_root/public/images/fancybox/fancy_title_left.png",
|
|
156
|
+
"test/rails_root/public/images/fancybox/fancy_title_main.png",
|
|
157
|
+
"test/rails_root/public/images/fancybox/fancy_title_right.png",
|
|
131
158
|
"test/rails_root/public/images/icons/accept.png",
|
|
132
159
|
"test/rails_root/public/images/icons/add.png",
|
|
160
|
+
"test/rails_root/public/images/icons/blue_guy.png",
|
|
161
|
+
"test/rails_root/public/images/icons/button_background.png",
|
|
162
|
+
"test/rails_root/public/images/icons/cancel.png",
|
|
163
|
+
"test/rails_root/public/images/icons/close.png",
|
|
164
|
+
"test/rails_root/public/images/icons/comment.png",
|
|
133
165
|
"test/rails_root/public/images/icons/delete.png",
|
|
166
|
+
"test/rails_root/public/images/icons/exclaim.png",
|
|
167
|
+
"test/rails_root/public/images/icons/external.png",
|
|
168
|
+
"test/rails_root/public/images/icons/feed.png",
|
|
169
|
+
"test/rails_root/public/images/icons/grey_guy.png",
|
|
170
|
+
"test/rails_root/public/images/icons/hide.png",
|
|
171
|
+
"test/rails_root/public/images/icons/information.png",
|
|
172
|
+
"test/rails_root/public/images/icons/minus.png",
|
|
173
|
+
"test/rails_root/public/images/icons/pending.png",
|
|
174
|
+
"test/rails_root/public/images/icons/question.png",
|
|
175
|
+
"test/rails_root/public/images/icons/search_box.png",
|
|
176
|
+
"test/rails_root/public/images/icons/star.png",
|
|
177
|
+
"test/rails_root/public/images/icons/stop.png",
|
|
178
|
+
"test/rails_root/public/images/icons/thumb_down.png",
|
|
179
|
+
"test/rails_root/public/images/icons/thumb_up.png",
|
|
134
180
|
"test/rails_root/public/images/icons/vote.png",
|
|
135
181
|
"test/rails_root/public/images/loading.gif",
|
|
182
|
+
"test/rails_root/public/images/nothing.png",
|
|
136
183
|
"test/rails_root/public/images/profile_default.jpg",
|
|
137
184
|
"test/rails_root/public/images/rails.png",
|
|
138
185
|
"test/rails_root/public/images/red/preview.gif",
|
|
@@ -144,17 +191,30 @@ Gem::Specification.new do |s|
|
|
|
144
191
|
"test/rails_root/public/javascripts/dragdrop.js",
|
|
145
192
|
"test/rails_root/public/javascripts/effects.js",
|
|
146
193
|
"test/rails_root/public/javascripts/fancyzoom.min.js",
|
|
194
|
+
"test/rails_root/public/javascripts/jquery/colorpicker.js",
|
|
147
195
|
"test/rails_root/public/javascripts/jquery/jquery-ui.js",
|
|
196
|
+
"test/rails_root/public/javascripts/jquery/jquery.autocomplete.js.readme",
|
|
197
|
+
"test/rails_root/public/javascripts/jquery/jquery.autocomplete.min.js",
|
|
198
|
+
"test/rails_root/public/javascripts/jquery/jquery.autocomplete.pack.js",
|
|
199
|
+
"test/rails_root/public/javascripts/jquery/jquery.easing.js",
|
|
200
|
+
"test/rails_root/public/javascripts/jquery/jquery.fancybox.js",
|
|
148
201
|
"test/rails_root/public/javascripts/jquery/jquery.form.js",
|
|
149
202
|
"test/rails_root/public/javascripts/jquery/jquery.jgrowl.js",
|
|
150
203
|
"test/rails_root/public/javascripts/jquery/jquery.js",
|
|
204
|
+
"test/rails_root/public/javascripts/jquery/jquery.metadata.min.js",
|
|
205
|
+
"test/rails_root/public/javascripts/jquery/jquery.queryString.js",
|
|
206
|
+
"test/rails_root/public/javascripts/jquery/jquery.swapimage.js",
|
|
207
|
+
"test/rails_root/public/javascripts/jquery/jquery.swapimage.min.js",
|
|
151
208
|
"test/rails_root/public/javascripts/jquery/jquery.tips.js",
|
|
209
|
+
"test/rails_root/public/javascripts/jquery/jrails.js",
|
|
152
210
|
"test/rails_root/public/javascripts/muck.js",
|
|
153
211
|
"test/rails_root/public/javascripts/muck_activities.js",
|
|
212
|
+
"test/rails_root/public/javascripts/muck_time/en.js",
|
|
154
213
|
"test/rails_root/public/javascripts/prototype.js",
|
|
155
214
|
"test/rails_root/public/javascripts/scriptaculous.js",
|
|
156
215
|
"test/rails_root/public/javascripts/slider.js",
|
|
157
216
|
"test/rails_root/public/javascripts/sound.js",
|
|
217
|
+
"test/rails_root/public/javascripts/tree.js",
|
|
158
218
|
"test/rails_root/public/robots.txt",
|
|
159
219
|
"test/rails_root/public/stylesheets/.keep",
|
|
160
220
|
"test/rails_root/public/stylesheets/admin.css",
|
|
@@ -208,6 +268,8 @@ Gem::Specification.new do |s|
|
|
|
208
268
|
"test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_cd0a0a_256x240.png",
|
|
209
269
|
"test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_ffffff_256x240.png",
|
|
210
270
|
"test/rails_root/public/stylesheets/jquery/cupertino/jquery-ui-1.7.1.custom.css",
|
|
271
|
+
"test/rails_root/public/stylesheets/jquery/jquery.autocomplete.css",
|
|
272
|
+
"test/rails_root/public/stylesheets/jquery/jquery.fancybox.css",
|
|
211
273
|
"test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png",
|
|
212
274
|
"test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_flat_55_fbec88_40x100.png",
|
|
213
275
|
"test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png",
|
|
@@ -282,6 +344,48 @@ Gem::Specification.new do |s|
|
|
|
282
344
|
"test/rails_root/test/unit/.keep",
|
|
283
345
|
"test/rails_root/test/unit/profile_test.rb",
|
|
284
346
|
"test/rails_root/test/unit/user_test.rb",
|
|
347
|
+
"test/rails_root/vendor/plugins/geokit-rails/CHANGELOG.rdoc",
|
|
348
|
+
"test/rails_root/vendor/plugins/geokit-rails/MIT-LICENSE",
|
|
349
|
+
"test/rails_root/vendor/plugins/geokit-rails/README.markdown",
|
|
350
|
+
"test/rails_root/vendor/plugins/geokit-rails/Rakefile",
|
|
351
|
+
"test/rails_root/vendor/plugins/geokit-rails/about.yml",
|
|
352
|
+
"test/rails_root/vendor/plugins/geokit-rails/assets/api_keys_template",
|
|
353
|
+
"test/rails_root/vendor/plugins/geokit-rails/init.rb",
|
|
354
|
+
"test/rails_root/vendor/plugins/geokit-rails/install.rb",
|
|
355
|
+
"test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails.rb",
|
|
356
|
+
"test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/acts_as_mappable.rb",
|
|
357
|
+
"test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/adapters/abstract.rb",
|
|
358
|
+
"test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/adapters/mysql.rb",
|
|
359
|
+
"test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/adapters/postgresql.rb",
|
|
360
|
+
"test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/adapters/sqlserver.rb",
|
|
361
|
+
"test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/defaults.rb",
|
|
362
|
+
"test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/geocoder_control.rb",
|
|
363
|
+
"test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/ip_geocode_lookup.rb",
|
|
364
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/acts_as_mappable_test.rb",
|
|
365
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/boot.rb",
|
|
366
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/database.yml",
|
|
367
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/fixtures/companies.yml",
|
|
368
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/fixtures/custom_locations.yml",
|
|
369
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/fixtures/locations.yml",
|
|
370
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/fixtures/mock_addresses.yml",
|
|
371
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/fixtures/mock_families.yml",
|
|
372
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/fixtures/mock_houses.yml",
|
|
373
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/fixtures/mock_organizations.yml",
|
|
374
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/fixtures/mock_people.yml",
|
|
375
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/fixtures/stores.yml",
|
|
376
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/ip_geocode_lookup_test.rb",
|
|
377
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/models/company.rb",
|
|
378
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/models/custom_location.rb",
|
|
379
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/models/location.rb",
|
|
380
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/models/mock_address.rb",
|
|
381
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/models/mock_family.rb",
|
|
382
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/models/mock_house.rb",
|
|
383
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/models/mock_organization.rb",
|
|
384
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/models/mock_person.rb",
|
|
385
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/models/store.rb",
|
|
386
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/schema.rb",
|
|
387
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/tasks.rake",
|
|
388
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/test_helper.rb",
|
|
285
389
|
"test/rails_root/vendor/plugins/ssl_requirement/README",
|
|
286
390
|
"test/rails_root/vendor/plugins/ssl_requirement/lib/ssl_requirement.rb",
|
|
287
391
|
"test/rails_root/vendor/plugins/ssl_requirement/test/ssl_requirement_test.rb",
|
|
@@ -307,14 +411,20 @@ Gem::Specification.new do |s|
|
|
|
307
411
|
"test/rails_root/config/environments/development.rb",
|
|
308
412
|
"test/rails_root/config/environments/production.rb",
|
|
309
413
|
"test/rails_root/config/environments/test.rb",
|
|
414
|
+
"test/rails_root/config/initializers/geokit_config.rb",
|
|
310
415
|
"test/rails_root/config/initializers/inflections.rb",
|
|
311
416
|
"test/rails_root/config/initializers/mime_types.rb",
|
|
312
417
|
"test/rails_root/config/initializers/requires.rb",
|
|
313
418
|
"test/rails_root/config/initializers/session_store.rb",
|
|
314
419
|
"test/rails_root/config/routes.rb",
|
|
315
420
|
"test/rails_root/db/migrate/20090320174818_create_muck_permissions_and_roles.rb",
|
|
421
|
+
"test/rails_root/db/migrate/20090402234137_create_languages.rb",
|
|
422
|
+
"test/rails_root/db/migrate/20090426041056_create_countries.rb",
|
|
423
|
+
"test/rails_root/db/migrate/20090426041103_create_states.rb",
|
|
316
424
|
"test/rails_root/db/migrate/20090512013727_create_profiles.rb",
|
|
317
425
|
"test/rails_root/db/migrate/20090602041838_create_users.rb",
|
|
426
|
+
"test/rails_root/db/migrate/20091124203137_add_location_to_profiles.rb",
|
|
427
|
+
"test/rails_root/db/migrate/20091124205819_add_fields_to_profiles.rb",
|
|
318
428
|
"test/rails_root/features/step_definitions/webrat_steps.rb",
|
|
319
429
|
"test/rails_root/features/support/env.rb",
|
|
320
430
|
"test/rails_root/public/dispatch.rb",
|
|
@@ -324,6 +434,31 @@ Gem::Specification.new do |s|
|
|
|
324
434
|
"test/rails_root/test/test_helper.rb",
|
|
325
435
|
"test/rails_root/test/unit/profile_test.rb",
|
|
326
436
|
"test/rails_root/test/unit/user_test.rb",
|
|
437
|
+
"test/rails_root/vendor/plugins/geokit-rails/init.rb",
|
|
438
|
+
"test/rails_root/vendor/plugins/geokit-rails/install.rb",
|
|
439
|
+
"test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/acts_as_mappable.rb",
|
|
440
|
+
"test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/adapters/abstract.rb",
|
|
441
|
+
"test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/adapters/mysql.rb",
|
|
442
|
+
"test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/adapters/postgresql.rb",
|
|
443
|
+
"test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/adapters/sqlserver.rb",
|
|
444
|
+
"test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/defaults.rb",
|
|
445
|
+
"test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/geocoder_control.rb",
|
|
446
|
+
"test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails/ip_geocode_lookup.rb",
|
|
447
|
+
"test/rails_root/vendor/plugins/geokit-rails/lib/geokit-rails.rb",
|
|
448
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/acts_as_mappable_test.rb",
|
|
449
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/boot.rb",
|
|
450
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/ip_geocode_lookup_test.rb",
|
|
451
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/models/company.rb",
|
|
452
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/models/custom_location.rb",
|
|
453
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/models/location.rb",
|
|
454
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/models/mock_address.rb",
|
|
455
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/models/mock_family.rb",
|
|
456
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/models/mock_house.rb",
|
|
457
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/models/mock_organization.rb",
|
|
458
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/models/mock_person.rb",
|
|
459
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/models/store.rb",
|
|
460
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/schema.rb",
|
|
461
|
+
"test/rails_root/vendor/plugins/geokit-rails/test/test_helper.rb",
|
|
327
462
|
"test/rails_root/vendor/plugins/ssl_requirement/lib/ssl_requirement.rb",
|
|
328
463
|
"test/rails_root/vendor/plugins/ssl_requirement/test/ssl_requirement_test.rb"
|
|
329
464
|
]
|
|
@@ -335,12 +470,18 @@ Gem::Specification.new do |s|
|
|
|
335
470
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
|
336
471
|
s.add_runtime_dependency(%q<muck-engine>, [">= 0"])
|
|
337
472
|
s.add_runtime_dependency(%q<muck-users>, [">= 0"])
|
|
473
|
+
s.add_runtime_dependency(%q<geokit>, [">= 0"])
|
|
474
|
+
s.add_runtime_dependency(%q<paperclip>, [">= 0"])
|
|
338
475
|
else
|
|
339
476
|
s.add_dependency(%q<muck-engine>, [">= 0"])
|
|
340
477
|
s.add_dependency(%q<muck-users>, [">= 0"])
|
|
478
|
+
s.add_dependency(%q<geokit>, [">= 0"])
|
|
479
|
+
s.add_dependency(%q<paperclip>, [">= 0"])
|
|
341
480
|
end
|
|
342
481
|
else
|
|
343
482
|
s.add_dependency(%q<muck-engine>, [">= 0"])
|
|
344
483
|
s.add_dependency(%q<muck-users>, [">= 0"])
|
|
484
|
+
s.add_dependency(%q<geokit>, [">= 0"])
|
|
485
|
+
s.add_dependency(%q<paperclip>, [">= 0"])
|
|
345
486
|
end
|
|
346
487
|
end
|