phonelib 0.2.7 → 0.2.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +22 -22
  3. data/data/PhoneNumberMetaData.xml +486 -373
  4. data/data/phone_data.dat +0 -0
  5. data/lib/phonelib/phone.rb +7 -2
  6. data/lib/phonelib/phone_analyzer.rb +10 -7
  7. data/lib/phonelib/version.rb +1 -1
  8. data/lib/tasks/phonelib_tasks.rake +8 -0
  9. metadata +33 -166
  10. data/test/dummy/README.rdoc +0 -261
  11. data/test/dummy/Rakefile +0 -8
  12. data/test/dummy/app/assets/javascripts/application.js +0 -13
  13. data/test/dummy/app/assets/javascripts/phones.js +0 -2
  14. data/test/dummy/app/assets/stylesheets/application.css +0 -13
  15. data/test/dummy/app/assets/stylesheets/phones.css +0 -4
  16. data/test/dummy/app/assets/stylesheets/scaffold.css +0 -56
  17. data/test/dummy/app/controllers/application_controller.rb +0 -3
  18. data/test/dummy/app/controllers/phones_controller.rb +0 -83
  19. data/test/dummy/app/helpers/application_helper.rb +0 -2
  20. data/test/dummy/app/helpers/phones_helper.rb +0 -2
  21. data/test/dummy/app/models/phone.rb +0 -6
  22. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  23. data/test/dummy/app/views/phones/_form.html.erb +0 -25
  24. data/test/dummy/app/views/phones/edit.html.erb +0 -6
  25. data/test/dummy/app/views/phones/index.html.erb +0 -25
  26. data/test/dummy/app/views/phones/new.html.erb +0 -5
  27. data/test/dummy/app/views/phones/show.html.erb +0 -14
  28. data/test/dummy/config.ru +0 -4
  29. data/test/dummy/config/application.rb +0 -59
  30. data/test/dummy/config/boot.rb +0 -10
  31. data/test/dummy/config/database.yml +0 -25
  32. data/test/dummy/config/environment.rb +0 -5
  33. data/test/dummy/config/environments/development.rb +0 -37
  34. data/test/dummy/config/environments/production.rb +0 -67
  35. data/test/dummy/config/environments/test.rb +0 -37
  36. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  37. data/test/dummy/config/initializers/inflections.rb +0 -15
  38. data/test/dummy/config/initializers/mime_types.rb +0 -5
  39. data/test/dummy/config/initializers/secret_token.rb +0 -7
  40. data/test/dummy/config/initializers/session_store.rb +0 -8
  41. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  42. data/test/dummy/config/locales/en.yml +0 -5
  43. data/test/dummy/config/routes.rb +0 -60
  44. data/test/dummy/db/development.sqlite3 +0 -0
  45. data/test/dummy/db/migrate/20130121173847_create_phones.rb +0 -9
  46. data/test/dummy/db/migrate/20130122075331_add_possible_number_to_phone.rb +0 -5
  47. data/test/dummy/db/schema.rb +0 -23
  48. data/test/dummy/db/test.sqlite3 +0 -0
  49. data/test/dummy/log/development.log +0 -19
  50. data/test/dummy/log/test.log +0 -2667
  51. data/test/dummy/public/404.html +0 -26
  52. data/test/dummy/public/422.html +0 -26
  53. data/test/dummy/public/500.html +0 -25
  54. data/test/dummy/public/favicon.ico +0 -0
  55. data/test/dummy/script/rails +0 -6
  56. data/test/dummy/test/fixtures/phones.yml +0 -16
  57. data/test/dummy/test/functional/phones_controller_test.rb +0 -51
  58. data/test/dummy/test/unit/helpers/phones_helper_test.rb +0 -4
  59. data/test/dummy/test/unit/phone_test.rb +0 -47
  60. data/test/phonelib_test.rb +0 -314
  61. data/test/test_helper.rb +0 -18
data/data/phone_data.dat CHANGED
Binary file
@@ -21,7 +21,12 @@ module Phonelib
21
21
  if @sanitized.empty?
22
22
  @analyzed_data = {}
23
23
  else
24
- @national_number, @analyzed_data = analyze(@sanitized, country_data)
24
+ @analyzed_data = analyze(@sanitized, country_data)
25
+ if country
26
+ @national_number,= @analyzed_data[country][:national]
27
+ else
28
+ @national_number = @sanitized
29
+ end
25
30
  end
26
31
  end
27
32
 
@@ -62,7 +67,7 @@ module Phonelib
62
67
  @country ||= begin
63
68
  valid_countries.find do |iso2|
64
69
  @analyzed_data[iso2][Core::MAIN_COUNTRY_FOR_CODE] == 'true'
65
- end || valid_countries.first
70
+ end || valid_countries.first || countries.first
66
71
  end
67
72
  end
68
73
 
@@ -7,12 +7,14 @@ module Phonelib
7
7
  # analyze provided phone if it matches country data ang returns result of
8
8
  # analyze
9
9
  def analyze(phone, country_data)
10
+ all_data = {}
10
11
  country_data.each do |data|
11
12
  if country_match = phone_match_data?(phone, data)
12
- return get_national_and_data(phone, data, country_match)
13
+
14
+ all_data.merge! get_national_and_data(phone, data, country_match)
13
15
  end
14
16
  end
15
- [ '', {} ]
17
+ all_data
16
18
  end
17
19
 
18
20
  private
@@ -22,17 +24,18 @@ module Phonelib
22
24
  def get_national_and_data(phone, data, country_match)
23
25
  prefix_length = data[Core::COUNTRY_CODE].length
24
26
  prefix_length += country_match[1].length unless country_match[1].nil?
25
- national = phone[prefix_length..-1]
26
- data[:format] = get_number_format(national, data[Core::FORMATS])
27
- data.merge! all_number_types(national, data[Core::TYPES])
28
- [ national, { data[:id] => data } ]
27
+ result = data.select { |k, v| ![:types, :formats].include?(k) }
28
+ result[:national] = phone[prefix_length..-1]
29
+ result[:format] = get_number_format(result[:national], data[Core::FORMATS])
30
+ result.merge! all_number_types(result[:national], data[Core::TYPES])
31
+ { result[:id] => result }
29
32
  end
30
33
 
31
34
  # Check if sanitized phone match country data
32
35
  def phone_match_data?(phone, data)
33
36
  country_code = "#{data[Core::COUNTRY_CODE]}"
34
37
  inter_prefix = "(#{data[Core::INTERNATIONAL_PREFIX]})?"
35
- if phone.match(/^#{inter_prefix}#{country_code}/)
38
+ if phone =~ /^#{inter_prefix}#{country_code}/
36
39
  _possible, valid = get_patterns(data[Core::TYPES], Core::GENERAL)
37
40
  phone.match /^#{inter_prefix}#{country_code}#{valid}$/
38
41
  end
@@ -1,5 +1,5 @@
1
1
  # :nodoc:
2
2
  module Phonelib
3
3
  # :nodoc:
4
- VERSION = '0.2.7'
4
+ VERSION = '0.2.8'
5
5
  end
@@ -1,5 +1,13 @@
1
1
  namespace :phonelib do
2
2
 
3
+ desc 'Create database for tests in Rails dummy application'
4
+ task :create_test_db do
5
+ exit unless defined? Rails
6
+ Rails.env = 'test'
7
+ load 'spec/dummy/Rakefile'
8
+ Rake::Task['db:setup'].invoke
9
+ end
10
+
3
11
  desc 'Import and reparse original data file from Google libphonenumber'
4
12
  task :import_data do
5
13
  require 'net/http'
metadata CHANGED
@@ -1,98 +1,74 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phonelib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7
5
- prerelease:
4
+ version: 0.2.8
6
5
  platform: ruby
7
6
  authors:
8
7
  - Vadim Senderovich
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-01-09 00:00:00.000000000 Z
11
+ date: 2014-01-22 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: rails
14
+ name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: 3.1.0
22
- type: :development
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: 3.1.0
30
- - !ruby/object:Gem::Dependency
31
- name: sqlite3
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ! '>='
17
+ - - '>='
36
18
  - !ruby/object:Gem::Version
37
19
  version: '0'
38
20
  type: :development
39
21
  prerelease: false
40
22
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
23
  requirements:
43
- - - ! '>='
24
+ - - '>='
44
25
  - !ruby/object:Gem::Version
45
26
  version: '0'
46
27
  - !ruby/object:Gem::Dependency
47
28
  name: nokogiri
48
29
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
30
  requirements:
51
- - - ! '>='
31
+ - - '>='
52
32
  - !ruby/object:Gem::Version
53
33
  version: '0'
54
34
  type: :development
55
35
  prerelease: false
56
36
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
37
  requirements:
59
- - - ! '>='
38
+ - - '>='
60
39
  - !ruby/object:Gem::Version
61
40
  version: '0'
62
41
  - !ruby/object:Gem::Dependency
63
42
  name: pry
64
43
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
44
  requirements:
67
- - - ! '>='
45
+ - - '>='
68
46
  - !ruby/object:Gem::Version
69
47
  version: '0'
70
48
  type: :development
71
49
  prerelease: false
72
50
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
51
  requirements:
75
- - - ! '>='
52
+ - - '>='
76
53
  - !ruby/object:Gem::Version
77
54
  version: '0'
78
55
  - !ruby/object:Gem::Dependency
79
- name: shoulda-context
56
+ name: rspec
80
57
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
58
  requirements:
83
- - - '='
59
+ - - '>='
84
60
  - !ruby/object:Gem::Version
85
- version: 1.1.2
61
+ version: '0'
86
62
  type: :development
87
63
  prerelease: false
88
64
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
65
  requirements:
91
- - - '='
66
+ - - '>='
92
67
  - !ruby/object:Gem::Version
93
- version: 1.1.2
94
- description: ! " Google libphonenumber library was taken as a basis for\n this
95
- gem. Gem uses its data file for validations and number formatting.\n"
68
+ version: '0'
69
+ description: |2
70
+ Google libphonenumber library was taken as a basis for
71
+ this gem. Gem uses its data file for validations and number formatting.
96
72
  email:
97
73
  - daddyzgm@gmail.com
98
74
  executables: []
@@ -101,151 +77,42 @@ extra_rdoc_files: []
101
77
  files:
102
78
  - data/phone_data.dat
103
79
  - data/PhoneNumberMetaData.xml
104
- - lib/validators/phone_validator.rb
105
- - lib/tasks/phonelib_tasks.rake
106
- - lib/phonelib/phone.rb
107
- - lib/phonelib/core.rb
80
+ - lib/phonelib.rb
108
81
  - lib/phonelib/version.rb
109
82
  - lib/phonelib/phone_analyzer.rb
110
- - lib/phonelib.rb
83
+ - lib/phonelib/phone.rb
84
+ - lib/phonelib/core.rb
85
+ - lib/validators/phone_validator.rb
86
+ - lib/tasks/phonelib_tasks.rake
111
87
  - MIT-LICENSE
112
88
  - Rakefile
113
89
  - README.rdoc
114
- - test/phonelib_test.rb
115
- - test/dummy/config/database.yml
116
- - test/dummy/config/boot.rb
117
- - test/dummy/config/locales/en.yml
118
- - test/dummy/config/routes.rb
119
- - test/dummy/config/application.rb
120
- - test/dummy/config/environment.rb
121
- - test/dummy/config/initializers/backtrace_silencers.rb
122
- - test/dummy/config/initializers/mime_types.rb
123
- - test/dummy/config/initializers/session_store.rb
124
- - test/dummy/config/initializers/wrap_parameters.rb
125
- - test/dummy/config/initializers/secret_token.rb
126
- - test/dummy/config/initializers/inflections.rb
127
- - test/dummy/config/environments/production.rb
128
- - test/dummy/config/environments/development.rb
129
- - test/dummy/config/environments/test.rb
130
- - test/dummy/README.rdoc
131
- - test/dummy/Rakefile
132
- - test/dummy/db/schema.rb
133
- - test/dummy/db/development.sqlite3
134
- - test/dummy/db/test.sqlite3
135
- - test/dummy/db/migrate/20130121173847_create_phones.rb
136
- - test/dummy/db/migrate/20130122075331_add_possible_number_to_phone.rb
137
- - test/dummy/log/test.log
138
- - test/dummy/log/development.log
139
- - test/dummy/script/rails
140
- - test/dummy/config.ru
141
- - test/dummy/public/500.html
142
- - test/dummy/public/422.html
143
- - test/dummy/public/favicon.ico
144
- - test/dummy/public/404.html
145
- - test/dummy/test/functional/phones_controller_test.rb
146
- - test/dummy/test/unit/phone_test.rb
147
- - test/dummy/test/unit/helpers/phones_helper_test.rb
148
- - test/dummy/test/fixtures/phones.yml
149
- - test/dummy/app/assets/javascripts/application.js
150
- - test/dummy/app/assets/javascripts/phones.js
151
- - test/dummy/app/assets/stylesheets/phones.css
152
- - test/dummy/app/assets/stylesheets/application.css
153
- - test/dummy/app/assets/stylesheets/scaffold.css
154
- - test/dummy/app/models/phone.rb
155
- - test/dummy/app/controllers/phones_controller.rb
156
- - test/dummy/app/controllers/application_controller.rb
157
- - test/dummy/app/views/phones/show.html.erb
158
- - test/dummy/app/views/phones/edit.html.erb
159
- - test/dummy/app/views/phones/index.html.erb
160
- - test/dummy/app/views/phones/new.html.erb
161
- - test/dummy/app/views/phones/_form.html.erb
162
- - test/dummy/app/views/layouts/application.html.erb
163
- - test/dummy/app/helpers/phones_helper.rb
164
- - test/dummy/app/helpers/application_helper.rb
165
- - test/test_helper.rb
166
90
  homepage: https://github.com/daddyz/phonelib
167
91
  licenses:
168
92
  - MIT
169
- post_install_message: ! " IMPORTANT NOTICE!\n Phone types were changed from
170
- camel case to snake case!\n Example: \":tollFree\" changed to \":toll_free\".\n
171
- \ Please update your app in case your are checking types!\n"
93
+ metadata: {}
94
+ post_install_message: |2
95
+ IMPORTANT NOTICE!
96
+ Phone types were changed from camel case to snake case!
97
+ Example: ":tollFree" changed to ":toll_free".
98
+ Please update your app in case your are checking types!
172
99
  rdoc_options: []
173
100
  require_paths:
174
101
  - lib
175
102
  required_ruby_version: !ruby/object:Gem::Requirement
176
- none: false
177
103
  requirements:
178
- - - ! '>='
104
+ - - '>='
179
105
  - !ruby/object:Gem::Version
180
106
  version: '0'
181
- segments:
182
- - 0
183
- hash: -918241281939594392
184
107
  required_rubygems_version: !ruby/object:Gem::Requirement
185
- none: false
186
108
  requirements:
187
- - - ! '>='
109
+ - - '>='
188
110
  - !ruby/object:Gem::Version
189
111
  version: '0'
190
- segments:
191
- - 0
192
- hash: -918241281939594392
193
112
  requirements: []
194
113
  rubyforge_project:
195
- rubygems_version: 1.8.23
114
+ rubygems_version: 2.0.3
196
115
  signing_key:
197
- specification_version: 3
116
+ specification_version: 4
198
117
  summary: Gem validates phone numbers with Google libphonenumber database
199
- test_files:
200
- - test/phonelib_test.rb
201
- - test/dummy/config/database.yml
202
- - test/dummy/config/boot.rb
203
- - test/dummy/config/locales/en.yml
204
- - test/dummy/config/routes.rb
205
- - test/dummy/config/application.rb
206
- - test/dummy/config/environment.rb
207
- - test/dummy/config/initializers/backtrace_silencers.rb
208
- - test/dummy/config/initializers/mime_types.rb
209
- - test/dummy/config/initializers/session_store.rb
210
- - test/dummy/config/initializers/wrap_parameters.rb
211
- - test/dummy/config/initializers/secret_token.rb
212
- - test/dummy/config/initializers/inflections.rb
213
- - test/dummy/config/environments/production.rb
214
- - test/dummy/config/environments/development.rb
215
- - test/dummy/config/environments/test.rb
216
- - test/dummy/README.rdoc
217
- - test/dummy/Rakefile
218
- - test/dummy/db/schema.rb
219
- - test/dummy/db/development.sqlite3
220
- - test/dummy/db/test.sqlite3
221
- - test/dummy/db/migrate/20130121173847_create_phones.rb
222
- - test/dummy/db/migrate/20130122075331_add_possible_number_to_phone.rb
223
- - test/dummy/log/test.log
224
- - test/dummy/log/development.log
225
- - test/dummy/script/rails
226
- - test/dummy/config.ru
227
- - test/dummy/public/500.html
228
- - test/dummy/public/422.html
229
- - test/dummy/public/favicon.ico
230
- - test/dummy/public/404.html
231
- - test/dummy/test/functional/phones_controller_test.rb
232
- - test/dummy/test/unit/phone_test.rb
233
- - test/dummy/test/unit/helpers/phones_helper_test.rb
234
- - test/dummy/test/fixtures/phones.yml
235
- - test/dummy/app/assets/javascripts/application.js
236
- - test/dummy/app/assets/javascripts/phones.js
237
- - test/dummy/app/assets/stylesheets/phones.css
238
- - test/dummy/app/assets/stylesheets/application.css
239
- - test/dummy/app/assets/stylesheets/scaffold.css
240
- - test/dummy/app/models/phone.rb
241
- - test/dummy/app/controllers/phones_controller.rb
242
- - test/dummy/app/controllers/application_controller.rb
243
- - test/dummy/app/views/phones/show.html.erb
244
- - test/dummy/app/views/phones/edit.html.erb
245
- - test/dummy/app/views/phones/index.html.erb
246
- - test/dummy/app/views/phones/new.html.erb
247
- - test/dummy/app/views/phones/_form.html.erb
248
- - test/dummy/app/views/layouts/application.html.erb
249
- - test/dummy/app/helpers/phones_helper.rb
250
- - test/dummy/app/helpers/application_helper.rb
251
- - test/test_helper.rb
118
+ test_files: []
@@ -1,261 +0,0 @@
1
- == Welcome to Rails
2
-
3
- Rails is a web-application framework that includes everything needed to create
4
- database-backed web applications according to the Model-View-Control pattern.
5
-
6
- This pattern splits the view (also called the presentation) into "dumb"
7
- templates that are primarily responsible for inserting pre-built data in between
8
- HTML tags. The model contains the "smart" domain objects (such as Account,
9
- Product, Person, Post) that holds all the business logic and knows how to
10
- persist themselves to a database. The controller handles the incoming requests
11
- (such as Save New Account, Update Product, Show Post) by manipulating the model
12
- and directing data to the view.
13
-
14
- In Rails, the model is handled by what's called an object-relational mapping
15
- layer entitled Active Record. This layer allows you to present the data from
16
- database rows as objects and embellish these data objects with business logic
17
- methods. You can read more about Active Record in
18
- link:files/vendor/rails/activerecord/README.html.
19
-
20
- The controller and view are handled by the Action Pack, which handles both
21
- layers by its two parts: Action View and Action Controller. These two layers
22
- are bundled in a single package due to their heavy interdependence. This is
23
- unlike the relationship between the Active Record and Action Pack that is much
24
- more separate. Each of these packages can be used independently outside of
25
- Rails. You can read more about Action Pack in
26
- link:files/vendor/rails/actionpack/README.html.
27
-
28
-
29
- == Getting Started
30
-
31
- 1. At the command prompt, create a new Rails application:
32
- <tt>rails new myapp</tt> (where <tt>myapp</tt> is the application name)
33
-
34
- 2. Change directory to <tt>myapp</tt> and start the web server:
35
- <tt>cd myapp; rails server</tt> (run with --help for options)
36
-
37
- 3. Go to http://localhost:3000/ and you'll see:
38
- "Welcome aboard: You're riding Ruby on Rails!"
39
-
40
- 4. Follow the guidelines to start developing your application. You can find
41
- the following resources handy:
42
-
43
- * The Getting Started Guide: http://guides.rubyonrails.org/getting_started.html
44
- * Ruby on Rails Tutorial Book: http://www.railstutorial.org/
45
-
46
-
47
- == Debugging Rails
48
-
49
- Sometimes your application goes wrong. Fortunately there are a lot of tools that
50
- will help you debug it and get it back on the rails.
51
-
52
- First area to check is the application log files. Have "tail -f" commands
53
- running on the server.log and development.log. Rails will automatically display
54
- debugging and runtime information to these files. Debugging info will also be
55
- shown in the browser on requests from 127.0.0.1.
56
-
57
- You can also log your own messages directly into the log file from your code
58
- using the Ruby logger class from inside your controllers. Example:
59
-
60
- class WeblogController < ActionController::Base
61
- def destroy
62
- @weblog = Weblog.find(params[:id])
63
- @weblog.destroy
64
- logger.info("#{Time.now} Destroyed Weblog ID ##{@weblog.id}!")
65
- end
66
- end
67
-
68
- The result will be a message in your log file along the lines of:
69
-
70
- Mon Oct 08 14:22:29 +1000 2007 Destroyed Weblog ID #1!
71
-
72
- More information on how to use the logger is at http://www.ruby-doc.org/core/
73
-
74
- Also, Ruby documentation can be found at http://www.ruby-lang.org/. There are
75
- several books available online as well:
76
-
77
- * Programming Ruby: http://www.ruby-doc.org/docs/ProgrammingRuby/ (Pickaxe)
78
- * Learn to Program: http://pine.fm/LearnToProgram/ (a beginners guide)
79
-
80
- These two books will bring you up to speed on the Ruby language and also on
81
- programming in general.
82
-
83
-
84
- == Debugger
85
-
86
- Debugger support is available through the debugger command when you start your
87
- Mongrel or WEBrick server with --debugger. This means that you can break out of
88
- execution at any point in the code, investigate and change the model, and then,
89
- resume execution! You need to install ruby-debug to run the server in debugging
90
- mode. With gems, use <tt>sudo gem install ruby-debug</tt>. Example:
91
-
92
- class WeblogController < ActionController::Base
93
- def index
94
- @posts = Post.all
95
- debugger
96
- end
97
- end
98
-
99
- So the controller will accept the action, run the first line, then present you
100
- with a IRB prompt in the server window. Here you can do things like:
101
-
102
- >> @posts.inspect
103
- => "[#<Post:0x14a6be8
104
- @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}>,
105
- #<Post:0x14a6620
106
- @attributes={"title"=>"Rails", "body"=>"Only ten..", "id"=>"2"}>]"
107
- >> @posts.first.title = "hello from a debugger"
108
- => "hello from a debugger"
109
-
110
- ...and even better, you can examine how your runtime objects actually work:
111
-
112
- >> f = @posts.first
113
- => #<Post:0x13630c4 @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}>
114
- >> f.
115
- Display all 152 possibilities? (y or n)
116
-
117
- Finally, when you're ready to resume execution, you can enter "cont".
118
-
119
-
120
- == Console
121
-
122
- The console is a Ruby shell, which allows you to interact with your
123
- application's domain model. Here you'll have all parts of the application
124
- configured, just like it is when the application is running. You can inspect
125
- domain models, change values, and save to the database. Starting the script
126
- without arguments will launch it in the development environment.
127
-
128
- To start the console, run <tt>rails console</tt> from the application
129
- directory.
130
-
131
- Options:
132
-
133
- * Passing the <tt>-s, --sandbox</tt> argument will rollback any modifications
134
- made to the database.
135
- * Passing an environment name as an argument will load the corresponding
136
- environment. Example: <tt>rails console production</tt>.
137
-
138
- To reload your controllers and models after launching the console run
139
- <tt>reload!</tt>
140
-
141
- More information about irb can be found at:
142
- link:http://www.rubycentral.org/pickaxe/irb.html
143
-
144
-
145
- == dbconsole
146
-
147
- You can go to the command line of your database directly through <tt>rails
148
- dbconsole</tt>. You would be connected to the database with the credentials
149
- defined in database.yml. Starting the script without arguments will connect you
150
- to the development database. Passing an argument will connect you to a different
151
- database, like <tt>rails dbconsole production</tt>. Currently works for MySQL,
152
- PostgreSQL and SQLite 3.
153
-
154
- == Description of Contents
155
-
156
- The default directory structure of a generated Ruby on Rails application:
157
-
158
- |-- app
159
- | |-- assets
160
- | |-- images
161
- | |-- javascripts
162
- | `-- stylesheets
163
- | |-- controllers
164
- | |-- helpers
165
- | |-- mailers
166
- | |-- models
167
- | `-- views
168
- | `-- layouts
169
- |-- config
170
- | |-- environments
171
- | |-- initializers
172
- | `-- locales
173
- |-- db
174
- |-- doc
175
- |-- lib
176
- | `-- tasks
177
- |-- log
178
- |-- public
179
- |-- script
180
- |-- test
181
- | |-- fixtures
182
- | |-- functional
183
- | |-- integration
184
- | |-- performance
185
- | `-- unit
186
- |-- tmp
187
- | |-- cache
188
- | |-- pids
189
- | |-- sessions
190
- | `-- sockets
191
- `-- vendor
192
- |-- assets
193
- `-- stylesheets
194
- `-- plugins
195
-
196
- app
197
- Holds all the code that's specific to this particular application.
198
-
199
- app/assets
200
- Contains subdirectories for images, stylesheets, and JavaScript files.
201
-
202
- app/controllers
203
- Holds controllers that should be named like weblogs_controller.rb for
204
- automated URL mapping. All controllers should descend from
205
- ApplicationController which itself descends from ActionController::Base.
206
-
207
- app/models
208
- Holds models that should be named like post.rb. Models descend from
209
- ActiveRecord::Base by default.
210
-
211
- app/views
212
- Holds the template files for the view that should be named like
213
- weblogs/index.html.erb for the WeblogsController#index action. All views use
214
- eRuby syntax by default.
215
-
216
- app/views/layouts
217
- Holds the template files for layouts to be used with views. This models the
218
- common header/footer method of wrapping views. In your views, define a layout
219
- using the <tt>layout :default</tt> and create a file named default.html.erb.
220
- Inside default.html.erb, call <% yield %> to render the view using this
221
- layout.
222
-
223
- app/helpers
224
- Holds view helpers that should be named like weblogs_helper.rb. These are
225
- generated for you automatically when using generators for controllers.
226
- Helpers can be used to wrap functionality for your views into methods.
227
-
228
- config
229
- Configuration files for the Rails environment, the routing map, the database,
230
- and other dependencies.
231
-
232
- db
233
- Contains the database schema in schema.rb. db/migrate contains all the
234
- sequence of Migrations for your schema.
235
-
236
- doc
237
- This directory is where your application documentation will be stored when
238
- generated using <tt>rake doc:app</tt>
239
-
240
- lib
241
- Application specific libraries. Basically, any kind of custom code that
242
- doesn't belong under controllers, models, or helpers. This directory is in
243
- the load path.
244
-
245
- public
246
- The directory available for the web server. Also contains the dispatchers and the
247
- default HTML files. This should be set as the DOCUMENT_ROOT of your web
248
- server.
249
-
250
- script
251
- Helper scripts for automation and generation.
252
-
253
- test
254
- Unit and functional tests along with fixtures. When using the rails generate
255
- command, template test files will be generated for you and placed in this
256
- directory.
257
-
258
- vendor
259
- External libraries that the application depends on. Also includes the plugins
260
- subdirectory. If the app has frozen rails, those gems also go here, under
261
- vendor/rails/. This directory is in the load path.