data_active 0.0.6 → 0.0.7

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.
@@ -0,0 +1,3 @@
1
+ require 'spec_helper'
2
+ describe DataActive::SaxDocument do
3
+ end
@@ -0,0 +1,39 @@
1
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
2
+ ENV["RAILS_ENV"] ||= 'test'
3
+ require File.expand_path("../../config/environment", __FILE__)
4
+ require 'rspec/rails'
5
+ require 'rspec/autorun'
6
+ require 'data_active'
7
+
8
+ # Requires supporting ruby files with custom matchers and macros, etc,
9
+ # in spec/support/ and its subdirectories.
10
+ Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
11
+
12
+ RSpec.configure do |config|
13
+ # ## Mock Framework
14
+ #
15
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
16
+ #
17
+ # config.mock_with :mocha
18
+ # config.mock_with :flexmock
19
+ # config.mock_with :rr
20
+
21
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
22
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
23
+
24
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
25
+ # examples within a transaction, remove the following line or assign false
26
+ # instead of true.
27
+ config.use_transactional_fixtures = true
28
+
29
+ # If true, the base class of anonymous controllers will be inferred
30
+ # automatically. This will be the default behavior in future versions of
31
+ # rspec-rails.
32
+ config.infer_base_class_for_anonymous_controllers = false
33
+
34
+ # Run specs in random order to surface order dependencies. If you find an
35
+ # order dependency and want to debug it, you can fix the order by providing
36
+ # the seed, which is printed after each run.
37
+ # --seed 1234
38
+ config.order = "random"
39
+ end
@@ -3,46 +3,14 @@ require File.expand_path('../boot', __FILE__)
3
3
  require 'rails/all'
4
4
 
5
5
  if defined?(Bundler)
6
- # If you precompile assets before deploying to production, use this line
7
6
  Bundler.require(*Rails.groups(:assets => %w(development test)))
8
- # If you want your assets lazily compiled in production, use this line
9
- # Bundler.require(:default, :assets, Rails.env)
10
7
  end
11
8
 
12
9
  module BookStore
13
10
  class Application < Rails::Application
14
- # Settings in config/environments/* take precedence over those specified here.
15
- # Application configuration should go into files in config/initializers
16
- # -- all .rb files in that directory are automatically loaded.
17
-
18
- # Custom directories with classes and modules you want to be autoloadable.
19
- # config.autoload_paths += %W(#{config.root}/extras)
20
-
21
- # Only load the plugins named here, in the order given (default is alphabetical).
22
- # :all can be used as a placeholder for all plugins not explicitly named.
23
- # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
24
-
25
- # Activate observers that should always be running.
26
- # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
27
-
28
- # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
29
- # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
30
- # config.time_zone = 'Central Time (US & Canada)'
31
-
32
- # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
33
- # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
34
- # config.i18n.default_locale = :de
35
-
36
- # Configure the default encoding used in templates for Ruby 1.9.
37
11
  config.encoding = "utf-8"
38
-
39
- # Configure sensitive parameters which will be filtered from the log file.
40
12
  config.filter_parameters += [:password]
41
-
42
- # Enable the asset pipeline
43
13
  config.assets.enabled = true
44
-
45
- # Version of your assets, change this if you want to expire all your assets
46
14
  config.assets.version = '1.0'
47
15
  end
48
16
  end
@@ -0,0 +1 @@
1
+ --color
@@ -1 +1 @@
1
- rvm ruby-1.9.3-p125@book_store_rails_32x --create
1
+ rvm ruby-1.9.3-p392@book_store_rails_32x --create
@@ -1,21 +1,29 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'rails', '3.2.6'
3
+ gem 'rails', '3.2.11'
4
4
 
5
5
  # Bundle edge Rails instead:
6
6
  # gem 'rails', :git => 'git://github.com/rails/rails.git'
7
7
 
8
8
  gem 'sqlite3'
9
- gem 'data_active', '0.0.5'
9
+ gem 'data_active', '0.0.6'
10
+ gem 'nokogiri'
10
11
 
11
12
  group :test do
12
13
  gem 'cucumber'
13
- gem 'cucumber-rails'
14
14
  gem 'guard-cucumber'
15
15
  gem 'growl_notify'
16
16
  gem 'database_cleaner'
17
+ gem 'linecache19', '~> 0.5.13', :git => 'https://github.com/ucberkeley/linecache19.git'
18
+ gem 'ruby-debug-base19x', '0.11.30.pre11'
19
+ gem 'ruby-debug-ide', '0.4.17.beta16'
17
20
  end
18
21
 
22
+ gem 'rspec-rails', '~> 2.0', :groups => [:test, :development]
23
+ gem 'cucumber-rails', '>= 1.3.0', :group => :test, :require => false
24
+ gem 'factory_girl_rails'
25
+
26
+
19
27
 
20
28
  # Gems used only for assets and not required
21
29
  # in production environments by default.
@@ -44,4 +52,4 @@ gem 'jquery-rails'
44
52
  # gem 'capistrano'
45
53
 
46
54
  # To use debugger
47
- # gem 'ruby-debug19', :require => 'ruby-debug'
55
+ #gem 'ruby-debug19', :require => 'ruby-debug'
@@ -11,49 +11,9 @@ end
11
11
 
12
12
  module BookStore
13
13
  class Application < Rails::Application
14
- # Settings in config/environments/* take precedence over those specified here.
15
- # Application configuration should go into files in config/initializers
16
- # -- all .rb files in that directory are automatically loaded.
17
-
18
- # Custom directories with classes and modules you want to be autoloadable.
19
- # config.autoload_paths += %W(#{config.root}/extras)
20
-
21
- # Only load the plugins named here, in the order given (default is alphabetical).
22
- # :all can be used as a placeholder for all plugins not explicitly named.
23
- # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
24
-
25
- # Activate observers that should always be running.
26
- # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
27
-
28
- # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
29
- # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
30
- # config.time_zone = 'Central Time (US & Canada)'
31
-
32
- # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
33
- # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
34
- # config.i18n.default_locale = :de
35
-
36
- # Configure the default encoding used in templates for Ruby 1.9.
37
14
  config.encoding = "utf-8"
38
-
39
- # Configure sensitive parameters which will be filtered from the log file.
40
15
  config.filter_parameters += [:password]
41
-
42
- # Use SQL instead of Active Record's schema dumper when creating the database.
43
- # This is necessary if your schema can't be completely dumped by the schema dumper,
44
- # like if you have constraints or database-specific column types
45
- # config.active_record.schema_format = :sql
46
-
47
- # Enforce whitelist mode for mass assignment.
48
- # This will create an empty whitelist of attributes available for mass-assignment for all models
49
- # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
50
- # parameters by using an attr_accessible or attr_protected declaration.
51
- # config.active_record.whitelist_attributes = true
52
-
53
- # Enable the asset pipeline
54
16
  config.assets.enabled = true
55
-
56
- # Version of your assets, change this if you want to expire all your assets
57
17
  config.assets.version = '1.0'
58
18
  end
59
19
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: data_active
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-04 00:00:00.000000000 Z
12
+ date: 2013-04-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -59,6 +59,38 @@ dependencies:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rspec
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rspec-rails
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
62
94
  description: Data Active is an extension of ActiveRecord that provides features to
63
95
  synchronise an ActiveRecord Model with a supplied XML document
64
96
  email:
@@ -78,8 +110,12 @@ files:
78
110
  - features/step_definitions/step_helper.rb
79
111
  - features/step_definitions/sync_books_with_xml.rb
80
112
  - features/step_definitions/update_database_with_xml.rb
81
- - features/step_definitions/web_steps.rb
113
+ - features/support/book_generator.rb
82
114
  - features/support/env.rb
115
+ - features/support/factories/book.rb
116
+ - features/support/factories/book_price.rb
117
+ - features/support/factories/chapter.rb
118
+ - features/support/factories/page.rb
83
119
  - features/support/fixtures/fresh/book_prices.yml
84
120
  - features/support/fixtures/fresh/books.yml
85
121
  - features/support/fixtures/fresh/chapters.yml
@@ -135,7 +171,17 @@ files:
135
171
  - features/sync_one_to_one.feature
136
172
  - features/update_database_with_xml.feature
137
173
  - lib/data_active.rb
174
+ - lib/data_active/attribute.rb
175
+ - lib/data_active/entity.rb
176
+ - lib/data_active/parser.rb
177
+ - lib/data_active/sax_document.rb
138
178
  - lib/data_active/version.rb
179
+ - spec/entity_spec.rb
180
+ - spec/fixtures/xml/ms_xml/books_fresh.xml
181
+ - spec/fixtures/xml/rails_xml/books_fresh.xml
182
+ - spec/parser_spec.rb
183
+ - spec/sax_document_spec.rb
184
+ - spec/spec_helper.rb
139
185
  - test_apps/book_store_rails_31x/.gitignore
140
186
  - test_apps/book_store_rails_31x/.rvmrc
141
187
  - test_apps/book_store_rails_31x/Gemfile
@@ -197,6 +243,7 @@ files:
197
243
  - test_apps/book_store_rails_31x/vendor/assets/stylesheets/.gitkeep
198
244
  - test_apps/book_store_rails_31x/vendor/plugins/.gitkeep
199
245
  - test_apps/book_store_rails_32x/.gitignore
246
+ - test_apps/book_store_rails_32x/.rspec
200
247
  - test_apps/book_store_rails_32x/.rvmrc
201
248
  - test_apps/book_store_rails_32x/Gemfile
202
249
  - test_apps/book_store_rails_32x/README.rdoc
@@ -280,15 +327,19 @@ rubyforge_project: data_active
280
327
  rubygems_version: 1.8.22
281
328
  signing_key:
282
329
  specification_version: 3
283
- summary: data_active 0.0.6
330
+ summary: data_active 0.0.7
284
331
  test_files:
285
332
  - features/remove_records_missing_in_xml.feature
286
333
  - features/step_definitions/remove_records_missing_in_xml.rb
287
334
  - features/step_definitions/step_helper.rb
288
335
  - features/step_definitions/sync_books_with_xml.rb
289
336
  - features/step_definitions/update_database_with_xml.rb
290
- - features/step_definitions/web_steps.rb
337
+ - features/support/book_generator.rb
291
338
  - features/support/env.rb
339
+ - features/support/factories/book.rb
340
+ - features/support/factories/book_price.rb
341
+ - features/support/factories/chapter.rb
342
+ - features/support/factories/page.rb
292
343
  - features/support/fixtures/fresh/book_prices.yml
293
344
  - features/support/fixtures/fresh/books.yml
294
345
  - features/support/fixtures/fresh/chapters.yml
@@ -343,6 +394,12 @@ test_files:
343
394
  - features/sync_one_to_many.feature
344
395
  - features/sync_one_to_one.feature
345
396
  - features/update_database_with_xml.feature
397
+ - spec/entity_spec.rb
398
+ - spec/fixtures/xml/ms_xml/books_fresh.xml
399
+ - spec/fixtures/xml/rails_xml/books_fresh.xml
400
+ - spec/parser_spec.rb
401
+ - spec/sax_document_spec.rb
402
+ - spec/spec_helper.rb
346
403
  - test_apps/book_store_rails_31x/.gitignore
347
404
  - test_apps/book_store_rails_31x/.rvmrc
348
405
  - test_apps/book_store_rails_31x/Gemfile
@@ -404,6 +461,7 @@ test_files:
404
461
  - test_apps/book_store_rails_31x/vendor/assets/stylesheets/.gitkeep
405
462
  - test_apps/book_store_rails_31x/vendor/plugins/.gitkeep
406
463
  - test_apps/book_store_rails_32x/.gitignore
464
+ - test_apps/book_store_rails_32x/.rspec
407
465
  - test_apps/book_store_rails_32x/.rvmrc
408
466
  - test_apps/book_store_rails_32x/Gemfile
409
467
  - test_apps/book_store_rails_32x/README.rdoc
@@ -1,211 +0,0 @@
1
- # TL;DR: YOU SHOULD DELETE THIS FILE
2
- #
3
- # This file was generated by Cucumber-Rails and is only here to get you a head start
4
- # These step definitions are thin wrappers around the Capybara/Webrat API that lets you
5
- # visit pages, interact with widgets and make assertions about page content.
6
- #
7
- # If you use these step definitions as basis for your features you will quickly end up
8
- # with features that are:
9
- #
10
- # * Hard to maintain
11
- # * Verbose to read
12
- #
13
- # A much better approach is to write your own higher level step definitions, following
14
- # the advice in the following blog posts:
15
- #
16
- # * http://benmabey.com/2008/05/19/imperative-vs-declarative-scenarios-in-user-stories.html
17
- # * http://dannorth.net/2011/01/31/whose-domain-is-it-anyway/
18
- # * http://elabs.se/blog/15-you-re-cuking-it-wrong
19
- #
20
-
21
-
22
- require 'uri'
23
- require 'cgi'
24
- require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths"))
25
- require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "selectors"))
26
-
27
- module WithinHelpers
28
- def with_scope(locator)
29
- locator ? within(*selector_for(locator)) { yield } : yield
30
- end
31
- end
32
- World(WithinHelpers)
33
-
34
- # Single-line step scoper
35
- When /^(.*) within (.*[^:])$/ do |step, parent|
36
- with_scope(parent) { When step }
37
- end
38
-
39
- # Multi-line step scoper
40
- When /^(.*) within (.*[^:]):$/ do |step, parent, table_or_string|
41
- with_scope(parent) { When "#{step}:", table_or_string }
42
- end
43
-
44
- Given /^(?:|I )am on (.+)$/ do |page_name|
45
- visit path_to(page_name)
46
- end
47
-
48
- When /^(?:|I )go to (.+)$/ do |page_name|
49
- visit path_to(page_name)
50
- end
51
-
52
- When /^(?:|I )press "([^"]*)"$/ do |button|
53
- click_button(button)
54
- end
55
-
56
- When /^(?:|I )follow "([^"]*)"$/ do |link|
57
- click_link(link)
58
- end
59
-
60
- When /^(?:|I )fill in "([^"]*)" with "([^"]*)"$/ do |field, value|
61
- fill_in(field, :with => value)
62
- end
63
-
64
- When /^(?:|I )fill in "([^"]*)" for "([^"]*)"$/ do |value, field|
65
- fill_in(field, :with => value)
66
- end
67
-
68
- # Use this to fill in an entire form with data from a table. Example:
69
- #
70
- # When I fill in the following:
71
- # | Account Number | 5002 |
72
- # | Expiry date | 2009-11-01 |
73
- # | Note | Nice guy |
74
- # | Wants Email? | |
75
- #
76
- # TODO: Add support for checkbox, select og option
77
- # based on naming conventions.
78
- #
79
- When /^(?:|I )fill in the following:$/ do |fields|
80
- fields.rows_hash.each do |name, value|
81
- When %{I fill in "#{name}" with "#{value}"}
82
- end
83
- end
84
-
85
- When /^(?:|I )select "([^"]*)" from "([^"]*)"$/ do |value, field|
86
- select(value, :from => field)
87
- end
88
-
89
- When /^(?:|I )check "([^"]*)"$/ do |field|
90
- check(field)
91
- end
92
-
93
- When /^(?:|I )uncheck "([^"]*)"$/ do |field|
94
- uncheck(field)
95
- end
96
-
97
- When /^(?:|I )choose "([^"]*)"$/ do |field|
98
- choose(field)
99
- end
100
-
101
- When /^(?:|I )attach the file "([^"]*)" to "([^"]*)"$/ do |path, field|
102
- attach_file(field, File.expand_path(path))
103
- end
104
-
105
- Then /^(?:|I )should see "([^"]*)"$/ do |text|
106
- if page.respond_to? :should
107
- page.should have_content(text)
108
- else
109
- assert page.has_content?(text)
110
- end
111
- end
112
-
113
- Then /^(?:|I )should see \/([^\/]*)\/$/ do |regexp|
114
- regexp = Regexp.new(regexp)
115
-
116
- if page.respond_to? :should
117
- page.should have_xpath('//*', :text => regexp)
118
- else
119
- assert page.has_xpath?('//*', :text => regexp)
120
- end
121
- end
122
-
123
- Then /^(?:|I )should not see "([^"]*)"$/ do |text|
124
- if page.respond_to? :should
125
- page.should have_no_content(text)
126
- else
127
- assert page.has_no_content?(text)
128
- end
129
- end
130
-
131
- Then /^(?:|I )should not see \/([^\/]*)\/$/ do |regexp|
132
- regexp = Regexp.new(regexp)
133
-
134
- if page.respond_to? :should
135
- page.should have_no_xpath('//*', :text => regexp)
136
- else
137
- assert page.has_no_xpath?('//*', :text => regexp)
138
- end
139
- end
140
-
141
- Then /^the "([^"]*)" field(?: within (.*))? should contain "([^"]*)"$/ do |field, parent, value|
142
- with_scope(parent) do
143
- field = find_field(field)
144
- field_value = (field.tag_name == 'textarea') ? field.text : field.value
145
- if field_value.respond_to? :should
146
- field_value.should =~ /#{value}/
147
- else
148
- assert_match(/#{value}/, field_value)
149
- end
150
- end
151
- end
152
-
153
- Then /^the "([^"]*)" field(?: within (.*))? should not contain "([^"]*)"$/ do |field, parent, value|
154
- with_scope(parent) do
155
- field = find_field(field)
156
- field_value = (field.tag_name == 'textarea') ? field.text : field.value
157
- if field_value.respond_to? :should_not
158
- field_value.should_not =~ /#{value}/
159
- else
160
- assert_no_match(/#{value}/, field_value)
161
- end
162
- end
163
- end
164
-
165
- Then /^the "([^"]*)" checkbox(?: within (.*))? should be checked$/ do |label, parent|
166
- with_scope(parent) do
167
- field_checked = find_field(label)['checked']
168
- if field_checked.respond_to? :should
169
- field_checked.should be_true
170
- else
171
- assert field_checked
172
- end
173
- end
174
- end
175
-
176
- Then /^the "([^"]*)" checkbox(?: within (.*))? should not be checked$/ do |label, parent|
177
- with_scope(parent) do
178
- field_checked = find_field(label)['checked']
179
- if field_checked.respond_to? :should
180
- field_checked.should be_false
181
- else
182
- assert !field_checked
183
- end
184
- end
185
- end
186
-
187
- Then /^(?:|I )should be on (.+)$/ do |page_name|
188
- current_path = URI.parse(current_url).path
189
- if current_path.respond_to? :should
190
- current_path.should == path_to(page_name)
191
- else
192
- assert_equal path_to(page_name), current_path
193
- end
194
- end
195
-
196
- Then /^(?:|I )should have the following query string:$/ do |expected_pairs|
197
- query = URI.parse(current_url).query
198
- actual_params = query ? CGI.parse(query) : {}
199
- expected_params = {}
200
- expected_pairs.rows_hash.each_pair{|k,v| expected_params[k] = v.split(',')}
201
-
202
- if actual_params.respond_to? :should
203
- actual_params.should == expected_params
204
- else
205
- assert_equal expected_params, actual_params
206
- end
207
- end
208
-
209
- Then /^show me the page$/ do
210
- save_and_open_page
211
- end