saruman 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.
@@ -0,0 +1,181 @@
1
+ require 'thor/group'
2
+ require 'nokogiri'
3
+ module Saruman
4
+ module Generators
5
+ class Model < Thor::Group
6
+ include Thor::Actions
7
+ argument :arguments, :type => :hash
8
+
9
+ def self.source_root
10
+ File.dirname(__FILE__) + "/model/templates"
11
+ end
12
+
13
+ def validate_extension
14
+ unless File.directory?("#{extension_base_path}")
15
+ @error = "error"
16
+ end
17
+
18
+ unless File.exist?("#{extension_config_path}/config.xml")
19
+ @error = "error"
20
+ end
21
+ end
22
+
23
+ def create_model_directory
24
+ empty_directory(model_path) unless File.directory?(model_path)
25
+ end
26
+
27
+ def create_temp_directory
28
+ empty_directory("#{extension_temp_path}")
29
+ end
30
+
31
+ def read_extension_config
32
+
33
+ fp = "#{extension_config_path}/config.xml"
34
+ config = File.open(fp, "r+")
35
+
36
+ @config = Nokogiri::XML(config)
37
+ config.close
38
+
39
+ @extension_current_version = @config.css("version").first.content
40
+
41
+ global_node = @config.css("global")
42
+
43
+ models_node = global_node.css("models")
44
+
45
+ if models_node.empty?
46
+ models_node = Nokogiri::XML::Node.new('models', @config)
47
+ global_node.first.add_child(models_node)
48
+ end
49
+
50
+ model_declaration_node = @config.css("models #{name_lower}")
51
+
52
+ if model_declaration_node.empty?
53
+ @resource_model_config_temp_path = "#{extension_temp_path}_config.xml"
54
+ template("resource_model_config_block.xml", @resource_model_config_temp_path)
55
+ resource_model_config_file = File.open(@resource_model_config_temp_path)
56
+ resource_model_config_block = Nokogiri::XML(resource_model_config_file).root
57
+ resource_model_config_file.close
58
+
59
+ @model_config_temp_path = "#{extension_temp_path}model_config_block.xml"
60
+ template("model_config_block.xml", @model_config_temp_path)
61
+ model_config_file = File.open(@model_config_temp_path)
62
+ model_config_block = Nokogiri::XML(model_config_file).root
63
+ model_config_file.close
64
+
65
+ models_node = @config.css("models").first
66
+
67
+ models_node.add_child(model_config_block)
68
+ models_node.add_child(resource_model_config_block)
69
+
70
+ end
71
+
72
+ models_node_find = @config.css('models')
73
+
74
+ file = File.open(fp,'w')
75
+ file.puts @config.to_xml
76
+ file.close
77
+
78
+ end
79
+
80
+ def remove_temp_dir
81
+ FileUtils.rm_rf(extension_temp_path)
82
+ end
83
+
84
+ def create_installer_upgrade
85
+ template("mysql4-install.php", "#{setup_base_path}/mysql4-upgrade-#{@extension_current_version}-#{extension_upgrade_version}.php")
86
+ end
87
+
88
+ private
89
+
90
+ def namespace
91
+ arguments[:namespace]
92
+ end
93
+
94
+ def name
95
+ arguments[:name]
96
+ end
97
+
98
+ def combined_namespace
99
+ "#{arguments[:namespace]}_#{arguments[:name]}"
100
+ end
101
+
102
+ def namespace_lower
103
+ namespace.downcase
104
+ end
105
+
106
+ def name_lower
107
+ name.downcase
108
+ end
109
+
110
+ #alias for name
111
+ def extension_name_lower
112
+ name.downcase
113
+ end
114
+
115
+ def version
116
+ arguments[:version]
117
+ end
118
+
119
+ def global_config_basepath
120
+ "app/etc/modules/"
121
+ end
122
+
123
+ def extension_base_path
124
+ "app/code/local/#{namespace}/#{name}/"
125
+ end
126
+
127
+ def extension_temp_path
128
+ "#{extension_base_path}temp/"
129
+ end
130
+
131
+ def extension_config_path
132
+ "#{extension_base_path}etc/"
133
+ end
134
+
135
+ def model_path
136
+ "#{extension_base_path}Model/"
137
+ end
138
+
139
+ def resource_model_path
140
+ "#{model_path}Mysql4/"
141
+ end
142
+
143
+ def setup_base_path
144
+ "#{extension_base_path}sql/#{name_lower}_setup/"
145
+ end
146
+
147
+ def model_klass_name
148
+ "#{combined_namespace}_Model"
149
+ end
150
+
151
+ def resource_model_name
152
+ "#{extension_name_lower}_mysql4"
153
+ end
154
+
155
+ def resource_model_klass_name
156
+ "#{combined_namespace}_Model_Mysql4"
157
+ end
158
+
159
+ def global_config_file_path
160
+ "#{global_config_basepath}#{combined_namespace}.xml"
161
+ end
162
+
163
+ def extension_upgrade_version
164
+ @extension_current_version.to_f + 0.1
165
+ end
166
+
167
+ def model?
168
+ if arguments[:model] == true
169
+ return true
170
+ else
171
+ return false
172
+ end
173
+ end
174
+
175
+ def models
176
+ arguments[:models]
177
+ end
178
+
179
+ end
180
+ end
181
+ end
@@ -0,0 +1,314 @@
1
+ app/code/core/Mage/Admin/Model/Session.php,102,admin_session_user_login_success
2
+ app/code/core/Mage/Admin/Model/Session.php,112,admin_session_user_login_failed
3
+ app/code/core/Mage/Admin/Model/User.php,344,admin_user_authenticate_after
4
+ app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tabs.php,157,adminhtml_catalog_category_tabs
5
+ app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tree.php,284,adminhtml_catalog_category_tree_is_moveable
6
+ app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tree.php,322,adminhtml_catalog_category_tree_can_add_root_category
7
+ app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tree.php,342,adminhtml_catalog_category_tree_can_add_sub_category
8
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/Edit/Tab/Main.php,71,adminhtml_product_attribute_types
9
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/Edit/Tab/Main.php,242,adminhtml_catalog_product_attribute_edit_prepare_form
10
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/New/Product/Attributes.php,64,adminhtml_catalog_product_edit_prepare_form
11
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/New/Product/Attributes.php,80,adminhtml_catalog_product_edit_element_types
12
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/Set/Main.php,406,adminhtml_catalog_product_attribute_set_main_html_before
13
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/Set/Toolbar/Main.php,68,adminhtml_catalog_product_attribute_set_toolbar_main_html_before
14
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Action/Attribute/Tab/Attributes.php,48,adminhtml_catalog_product_form_prepare_excluded_field_list
15
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Attributes/Create.php,85,adminhtml_catalog_product_edit_tab_attributes_create_html_before
16
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Attributes.php,135,adminhtml_catalog_product_edit_prepare_form
17
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Attributes.php,153,adminhtml_catalog_product_edit_element_types
18
+ app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Price/Recurring.php,42,catalog_product_edit_form_render_recurring
19
+ app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Content.php,98,adminhtml_cms_page_edit_tab_content_prepare_form
20
+ app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Design.php,125,adminhtml_cms_page_edit_tab_design_prepare_form
21
+ app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Main.php,117,adminhtml_cms_page_edit_tab_main_prepare_form
22
+ app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Meta.php,76,adminhtml_cms_page_edit_tab_meta_prepare_form
23
+ app/code/core/Mage/Adminhtml/Block/Customer/Edit/Tab/Carts.php,61,adminhtml_block_html_before
24
+ app/code/core/Mage/Adminhtml/Block/Promo/Catalog/Edit/Tab/Main.php,197,adminhtml_promo_catalog_edit_tab_main_prepare_form
25
+ app/code/core/Mage/Adminhtml/Block/Promo/Quote/Edit/Tab/Actions.php,162,adminhtml_block_salesrule_actions_prepareform
26
+ app/code/core/Mage/Adminhtml/Block/Promo/Quote/Edit/Tab/Main.php,255,adminhtml_promo_quote_edit_tab_main_prepare_form
27
+ app/code/core/Mage/Adminhtml/Block/Report/Grid.php,186,adminhtml_widget_grid_filter_collection
28
+ app/code/core/Mage/Adminhtml/Block/Sales/Reorder/Renderer/Action.php,55,adminhtml_customer_orders_add_action_renderer
29
+ app/code/core/Mage/Adminhtml/Block/Template.php,80,adminhtml_block_html_before
30
+ app/code/core/Mage/Adminhtml/Block/Widget/Container.php,307,adminhtml_widget_container_html_before
31
+ app/code/core/Mage/Adminhtml/Controller/Action.php,151,adminhtml_controller_action_predispatch_start
32
+ app/code/core/Mage/Adminhtml/controllers/CacheController.php,56,adminhtml_cache_flush_all
33
+ app/code/core/Mage/Adminhtml/controllers/CacheController.php,68,adminhtml_cache_flush_system
34
+ app/code/core/Mage/Adminhtml/controllers/CacheController.php,128,adminhtml_cache_refresh_type
35
+ app/code/core/Mage/Adminhtml/controllers/CacheController.php,145,clean_media_cache_after
36
+ app/code/core/Mage/Adminhtml/controllers/CacheController.php,169,clean_catalog_images_cache_after
37
+ app/code/core/Mage/Adminhtml/controllers/Catalog/CategoryController.php,304,catalog_category_prepare_save
38
+ app/code/core/Mage/Adminhtml/controllers/Catalog/CategoryController.php,399,catalog_controller_category_delete
39
+ app/code/core/Mage/Adminhtml/controllers/Catalog/Product/Action/AttributeController.php,156,catalog_product_to_website_change
40
+ app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php,192,catalog_product_new_action
41
+ app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php,237,catalog_product_edit_action
42
+ app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php,665,catalog_product_prepare_save
43
+ app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php,868,catalog_controller_product_delete
44
+ app/code/core/Mage/Adminhtml/controllers/Cms/PageController.php,139,cms_page_prepare_save
45
+ app/code/core/Mage/Adminhtml/controllers/Cms/PageController.php,199,adminhtml_cmspage_on_delete
46
+ app/code/core/Mage/Adminhtml/controllers/Cms/PageController.php,204,adminhtml_cmspage_on_delete
47
+ app/code/core/Mage/Adminhtml/controllers/CustomerController.php,301,adminhtml_customer_prepare_save
48
+ app/code/core/Mage/Adminhtml/controllers/CustomerController.php,332,adminhtml_customer_save_after
49
+ app/code/core/Mage/Adminhtml/controllers/Permissions/RoleController.php,194,admin_permissions_role_prepare_save
50
+ app/code/core/Mage/Adminhtml/controllers/Promo/CatalogController.php,114,adminhtml_controller_catalogrule_prepare_save
51
+ app/code/core/Mage/Adminhtml/controllers/Promo/QuoteController.php,114,adminhtml_controller_salesrule_prepare_save
52
+ app/code/core/Mage/Adminhtml/controllers/ReportController.php,82,on_view_report
53
+ app/code/core/Mage/Adminhtml/controllers/Sales/Order/CreateController.php,245,adminhtml_sales_order_create_process_data
54
+ app/code/core/Mage/Adminhtml/controllers/Sales/Order/CreditmemoController.php,160,adminhtml_sales_order_creditmemo_register_before
55
+ app/code/core/Mage/Adminhtml/controllers/System/Config/System/StorageController.php,154,add_synchronize_message
56
+ app/code/core/Mage/Adminhtml/controllers/System/StoreController.php,200,store_group_save
57
+ app/code/core/Mage/Adminhtml/controllers/System/StoreController.php,431,store_delete
58
+ app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php,319,sales_convert_order_to_quote
59
+ app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php,412,sales_convert_order_item_to_quote_item
60
+ app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php,1486,checkout_submit_all_after
61
+ app/code/core/Mage/Api/Model/User.php,204,api_user_authenticated
62
+ app/code/core/Mage/Bundle/Block/Catalog/Product/View/Type/Bundle.php,157,bundle_product_view_config
63
+ app/code/core/Mage/Bundle/Model/Product/Price.php,95,catalog_product_get_final_price
64
+ app/code/core/Mage/Bundle/Model/Product/Price.php,105,prepare_catalog_product_collection_prices
65
+ app/code/core/Mage/Bundle/Model/Resource/Indexer/Price.php,263,catalog_product_prepare_index_select
66
+ app/code/core/Mage/Bundle/Model/Resource/Indexer/Price.php,489,prepare_catalog_product_price_index_table
67
+ app/code/core/Mage/Bundle/Model/Resource/Price/Index.php,378,catalog_product_prepare_index_select
68
+ app/code/core/Mage/Catalog/Block/Product/List/Upsell.php,79,catalog_product_upsell
69
+ app/code/core/Mage/Catalog/Block/Product/List.php,161,catalog_block_product_list_collection
70
+ app/code/core/Mage/Catalog/Block/Product/View/Type/Configurable.php,158,catalog_product_type_configurable_price
71
+ app/code/core/Mage/Catalog/Block/Product/View.php,181,catalog_product_view_config
72
+ app/code/core/Mage/Catalog/controllers/CategoryController.php,43,catalog_controller_category_init_before
73
+ app/code/core/Mage/Catalog/controllers/CategoryController.php,59,catalog_controller_category_init_after
74
+ app/code/core/Mage/Catalog/controllers/Product/CompareController.php,87,catalog_product_compare_add_product
75
+ app/code/core/Mage/Catalog/controllers/Product/CompareController.php,126,catalog_product_compare_remove_product
76
+ app/code/core/Mage/Catalog/Helper/Output.php,48,catalog_helper_output_construct
77
+ app/code/core/Mage/Catalog/Helper/Product/View.php,135,catalog_controller_product_view
78
+ app/code/core/Mage/Catalog/Helper/Product.php,283,catalog_controller_product_init_before
79
+ app/code/core/Mage/Catalog/Helper/Product.php,323,catalog_controller_product_init
80
+ app/code/core/Mage/Catalog/Helper/Product.php,324,catalog_controller_product_init_after
81
+ app/code/core/Mage/Catalog/Model/Category.php,229,catalog_category_tree_move_before
82
+ app/code/core/Mage/Catalog/Model/Category.php,235,catalog_category_tree_move_after
83
+ app/code/core/Mage/Catalog/Model/Category.php,247,category_move
84
+ app/code/core/Mage/Catalog/Model/Product/Action.php,66,catalog_product_attribute_update_before
85
+ app/code/core/Mage/Catalog/Model/Product/Action.php,99,catalog_product_website_update_before
86
+ app/code/core/Mage/Catalog/Model/Product/Action.php,123,catalog_product_website_update
87
+ app/code/core/Mage/Catalog/Model/Product/Attribute/Source/Inputtype.php,55,adminhtml_product_attribute_types
88
+ app/code/core/Mage/Catalog/Model/Product/Option/Api.php,166,catalog_product_prepare_save
89
+ app/code/core/Mage/Catalog/Model/Product/Status.php,217,catalog_product_status_update
90
+ app/code/core/Mage/Catalog/Model/Product/Type/Abstract.php,542,"Mage::dispatchEvent($eventName, array("
91
+ app/code/core/Mage/Catalog/Model/Product/Type/Configurable/Price.php,71,catalog_product_type_configurable_price
92
+ app/code/core/Mage/Catalog/Model/Product/Type/Grouped/Price.php,70,catalog_product_type_grouped_price
93
+ app/code/core/Mage/Catalog/Model/Product/Type/Price.php,68,catalog_product_get_final_price
94
+ app/code/core/Mage/Catalog/Model/Product.php,1039,catalog_model_product_duplicate
95
+ app/code/core/Mage/Catalog/Model/Product.php,1240,catalog_product_is_salable_before
96
+ app/code/core/Mage/Catalog/Model/Product.php,1250,catalog_product_is_salable_after
97
+ app/code/core/Mage/Catalog/Model/Resource/Category/Flat.php,205,catalog_category_tree_init_inactive_category_ids
98
+ app/code/core/Mage/Catalog/Model/Resource/Category/Tree.php,210,catalog_category_tree_init_inactive_category_ids
99
+ app/code/core/Mage/Catalog/Model/Resource/Category/Tree.php,406,catalog_category_tree_move_before
100
+ app/code/core/Mage/Catalog/Model/Resource/Category/Tree.php,443,catalog_category_tree_move_after
101
+ app/code/core/Mage/Catalog/Model/Resource/Category.php,364,catalog_category_change_products
102
+ app/code/core/Mage/Catalog/Model/Resource/Layer/Filter/Price.php,103,catalogindex_prepare_price_select
103
+ app/code/core/Mage/Catalog/Model/Resource/Layer/Filter/Price.php,108,catalog_prepare_price_select
104
+ app/code/core/Mage/Catalog/Model/Resource/Product/Collection.php,363,catalog_product_collection_load_before
105
+ app/code/core/Mage/Catalog/Model/Resource/Product/Collection.php,383,catalog_product_collection_load_after
106
+ app/code/core/Mage/Catalog/Model/Resource/Product/Collection.php,831,catalog_product_collection_before_add_count_to_categories
107
+ app/code/core/Mage/Catalog/Model/Resource/Product/Collection.php,1652,catalog_product_collection_apply_limitations_after
108
+ app/code/core/Mage/Catalog/Model/Resource/Product/Compare/Item/Collection.php,315,catalog_product_compare_item_collection_clear
109
+ app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php,437,catalog_product_flat_prepare_columns
110
+ app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php,497,catalog_product_flat_prepare_indexes
111
+ app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php,1038,catalog_product_flat_rebuild
112
+ app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php,1281,catalog_product_flat_update_product
113
+ app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Eav/Abstract.php,208,prepare_catalog_product_index_select
114
+ app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Eav/Decimal.php,98,prepare_catalog_product_index_select
115
+ app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Eav/Source.php,154,prepare_catalog_product_index_select
116
+ app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Eav/Source.php,228,prepare_catalog_product_index_select
117
+ app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Price/Default.php,270,prepare_catalog_product_index_select
118
+ app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Price/Default.php,287,prepare_catalog_product_price_index_table
119
+ app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Price/Grouped.php,124,catalog_product_prepare_index_select
120
+ app/code/core/Mage/CatalogIndex/Model/Data/Abstract.php,204,catalogindex_get_minimal_price
121
+ app/code/core/Mage/CatalogIndex/Model/Indexer.php,372,catalogindex_plain_reindex_after
122
+ app/code/core/Mage/CatalogIndex/Model/Indexer.php,632,catalogindex_prepare_price_select
123
+ app/code/core/Mage/CatalogIndex/Model/Resource/Price.php,138,catalogindex_prepare_price_select
124
+ app/code/core/Mage/CatalogIndex/Model/Resource/Price.php,177,catalogindex_prepare_price_select
125
+ app/code/core/Mage/CatalogIndex/Model/Resource/Price.php,231,catalogindex_prepare_price_select
126
+ app/code/core/Mage/CatalogIndex/Model/Resource/Price.php,281,catalogindex_prepare_price_select
127
+ app/code/core/Mage/CatalogRule/Model/Resource/Rule.php,345,catalogrule_before_apply
128
+ app/code/core/Mage/CatalogRule/Model/Resource/Rule.php,481,catalogrule_after_apply
129
+ app/code/core/Mage/CatalogSearch/Model/Fulltext.php,78,catalogsearch_index_process_start
130
+ app/code/core/Mage/CatalogSearch/Model/Fulltext.php,85,catalogsearch_index_process_complete
131
+ app/code/core/Mage/CatalogSearch/Model/Resource/Advanced.php,67,catalog_prepare_price_select
132
+ app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php,307,catalogsearch_reset_search_result
133
+ app/code/core/Mage/Checkout/controllers/CartController.php,195,checkout_cart_add_product_complete
134
+ app/code/core/Mage/Checkout/controllers/CartController.php,336,checkout_cart_update_item_complete
135
+ app/code/core/Mage/Checkout/controllers/MultishippingController.php,344,checkout_controller_multishipping_shipping_post
136
+ app/code/core/Mage/Checkout/controllers/MultishippingController.php,545,checkout_multishipping_controller_success_action
137
+ app/code/core/Mage/Checkout/controllers/OnepageController.php,230,checkout_onepage_controller_success_action
138
+ app/code/core/Mage/Checkout/controllers/OnepageController.php,374,checkout_controller_onepage_save_shipping_method
139
+ app/code/core/Mage/Checkout/Helper/Data.php,276,checkout_allow_guest
140
+ app/code/core/Mage/Checkout/Model/Cart/Api.php,174,checkout_type_onepage_save_order_after
141
+ app/code/core/Mage/Checkout/Model/Cart/Api.php,184,checkout_submit_all_after
142
+ app/code/core/Mage/Checkout/Model/Cart.php,264,checkout_cart_product_add_after
143
+ app/code/core/Mage/Checkout/Model/Cart.php,364,checkout_cart_update_items_before
144
+ app/code/core/Mage/Checkout/Model/Cart.php,402,checkout_cart_update_items_after
145
+ app/code/core/Mage/Checkout/Model/Cart.php,425,checkout_cart_save_before
146
+ app/code/core/Mage/Checkout/Model/Cart.php,435,checkout_cart_save_after
147
+ app/code/core/Mage/Checkout/Model/Cart.php,558,checkout_cart_product_update_after
148
+ app/code/core/Mage/Checkout/Model/Session.php,105,custom_quote_process
149
+ app/code/core/Mage/Checkout/Model/Session.php,148,checkout_quote_init
150
+ app/code/core/Mage/Checkout/Model/Session.php,197,load_customer_quote_before
151
+ app/code/core/Mage/Checkout/Model/Session.php,358,checkout_quote_destroy
152
+ app/code/core/Mage/Checkout/Model/Type/Multishipping.php,278,checkout_type_multishipping_set_shipping_items
153
+ app/code/core/Mage/Checkout/Model/Type/Multishipping.php,519,checkout_type_multishipping_create_orders_single
154
+ app/code/core/Mage/Checkout/Model/Type/Multishipping.php,541,checkout_submit_all_after
155
+ app/code/core/Mage/Checkout/Model/Type/Multishipping.php,545,checkout_multishipping_refund_all
156
+ app/code/core/Mage/Checkout/Model/Type/Onepage.php,783,checkout_type_onepage_save_order_after
157
+ app/code/core/Mage/Checkout/Model/Type/Onepage.php,825,checkout_submit_all_after
158
+ app/code/core/Mage/Checkout/Model/Type/Onepage.php,1042,checkout_type_onepage_save_order
159
+ app/code/core/Mage/Checkout/Model/Type/Onepage.php,1094,checkout_type_onepage_save_order_after
160
+ app/code/core/Mage/Cms/Controller/Router.php,71,cms_controller_router_match_before
161
+ app/code/core/Mage/Cms/Helper/Page.php,106,cms_page_render
162
+ app/code/core/Mage/Cms/Helper/Wysiwyg/Images.php,158,cms_wysiwyg_images_static_urls_allowed
163
+ app/code/core/Mage/Cms/Model/Page.php,152,cms_page_get_available_statuses
164
+ app/code/core/Mage/Cms/Model/Wysiwyg/Config.php,97,cms_wysiwyg_config_prepare
165
+ app/code/core/Mage/Core/Block/Abstract.php,237,core_block_abstract_prepare_layout_before
166
+ app/code/core/Mage/Core/Block/Abstract.php,239,core_block_abstract_prepare_layout_after
167
+ app/code/core/Mage/Core/Block/Abstract.php,850,core_block_abstract_to_html_before
168
+ app/code/core/Mage/Core/Block/Abstract.php,886,core_block_abstract_to_html_after
169
+ app/code/core/Mage/Core/Controller/Response/Http.php,81,http_response_send_before
170
+ app/code/core/Mage/Core/Controller/Response/Http.php,102,controller_response_redirect
171
+ app/code/core/Mage/Core/Controller/Varien/Action.php,300,controller_action_layout_load_before
172
+ app/code/core/Mage/Core/Controller/Varien/Action.php,318,controller_action_layout_generate_xml_before
173
+ app/code/core/Mage/Core/Controller/Varien/Action.php,337,controller_action_layout_generate_blocks_before
174
+ app/code/core/Mage/Core/Controller/Varien/Action.php,349,controller_action_layout_generate_blocks_after
175
+ app/code/core/Mage/Core/Controller/Varien/Action.php,385,controller_action_layout_render_before
176
+ app/code/core/Mage/Core/Controller/Varien/Action.php,505,controller_action_predispatch
177
+ app/code/core/Mage/Core/Controller/Varien/Action.php,534,controller_action_postdispatch
178
+ app/code/core/Mage/Core/Controller/Varien/Action.php,543,controller_action_noroute
179
+ app/code/core/Mage/Core/Controller/Varien/Action.php,563,controller_action_nocookies
180
+ app/code/core/Mage/Core/Controller/Varien/Front.php,128,controller_front_init_before
181
+ app/code/core/Mage/Core/Controller/Varien/Front.php,159,controller_front_init_routers
182
+ app/code/core/Mage/Core/Controller/Varien/Front.php,199,controller_front_send_response_before
183
+ app/code/core/Mage/Core/Controller/Varien/Front.php,203,controller_front_send_response_after
184
+ app/code/core/Mage/Core/Model/Abstract.php,253,model_load_before
185
+ app/code/core/Mage/Core/Model/Abstract.php,266,model_load_after
186
+ app/code/core/Mage/Core/Model/Abstract.php,343,model_save_commit_after
187
+ app/code/core/Mage/Core/Model/Abstract.php,390,model_save_before
188
+ app/code/core/Mage/Core/Model/Abstract.php,465,model_save_after
189
+ app/code/core/Mage/Core/Model/Abstract.php,500,model_delete_before
190
+ app/code/core/Mage/Core/Model/Abstract.php,528,model_delete_after
191
+ app/code/core/Mage/Core/Model/Abstract.php,540,model_delete_commit_after
192
+ app/code/core/Mage/Core/Model/App.php,1177,application_clean_cache
193
+ app/code/core/Mage/Core/Model/Layout/Update.php,406,core_layout_update_updates_get_after
194
+ app/code/core/Mage/Core/Model/Layout.php,433,core_layout_block_create_after
195
+ app/code/core/Mage/Core/Model/Locale.php,139,core_locale_set_locale
196
+ app/code/core/Mage/Core/Model/Resource/Db/Collection/Abstract.php,585,core_collection_abstract_load_before
197
+ app/code/core/Mage/Core/Model/Resource/Db/Collection/Abstract.php,634,core_collection_abstract_load_after
198
+ app/code/core/Mage/Core/Model/Resource.php,278,resource_get_tablename
199
+ app/code/core/Mage/Core/Model/Session/Abstract.php,216,core_session_abstract_clear_messages
200
+ app/code/core/Mage/Core/Model/Session/Abstract.php,252,core_session_abstract_add_message
201
+ app/code/core/Mage/Customer/controllers/AccountController.php,334,customer_register_success
202
+ app/code/core/Mage/Customer/Helper/Data.php,281,customer_registration_is_allowed
203
+ app/code/core/Mage/Customer/Model/Address/Abstract.php,305,customer_address_format
204
+ app/code/core/Mage/Customer/Model/Customer.php,166,customer_customer_authenticated
205
+ app/code/core/Mage/Customer/Model/Session.php,75,customer_session_init
206
+ app/code/core/Mage/Customer/Model/Session.php,224,customer_login
207
+ app/code/core/Mage/Customer/Model/Session.php,252,customer_logout
208
+ app/code/core/Mage/Eav/Block/Adminhtml/Attribute/Edit/Main/Abstract.php,177,adminhtml_block_eav_attribute_edit_form_init
209
+ app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php,862,eav_collection_abstract_load_before
210
+ app/code/core/Mage/GiftMessage/Block/Message/Inline.php,177,gift_options_prepare_items
211
+ app/code/core/Mage/GiftMessage/Model/Api/V2.php,94,checkout_controller_onepage_save_shipping_method
212
+ app/code/core/Mage/GiftMessage/Model/Api.php,67,checkout_controller_onepage_save_shipping_method
213
+ app/code/core/Mage/GoogleBase/controllers/Adminhtml/Googlebase/TypesController.php,46,controller_action_postdispatch_adminhtml
214
+ app/code/core/Mage/GoogleCheckout/Block/Link.php,90,googlecheckout_block_link_html_before
215
+ app/code/core/Mage/GoogleCheckout/controllers/RedirectController.php,98,googlecheckout_checkout_before
216
+ app/code/core/Mage/GoogleCheckout/Model/Api/Xml/Callback.php,355,googlecheckout_create_order_before
217
+ app/code/core/Mage/GoogleCheckout/Model/Api/Xml/Callback.php,449,googlecheckout_save_order_after
218
+ app/code/core/Mage/GoogleCheckout/Model/Api/Xml/Callback.php,463,checkout_submit_all_after
219
+ app/code/core/Mage/GoogleCheckout/Model/Api/Xml/Checkout.php,165,google_checkout_discount_item_price
220
+ app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php,343,catalog_product_import_finish_before
221
+ app/code/core/Mage/Log/Model/Resource/Log.php,56,log_log_clean_before
222
+ app/code/core/Mage/Log/Model/Resource/Log.php,64,log_log_clean_after
223
+ app/code/core/Mage/Log/Model/Resource/Visitor/Collection.php,240,log_visitor_collection_load_before
224
+ app/code/core/Mage/Payment/Block/Form/Cc.php,154,payment_form_block_to_html_before
225
+ app/code/core/Mage/Payment/Block/Info.php,166,payment_info_block_prepare_specific_information
226
+ app/code/core/Mage/Payment/Model/Method/Abstract.php,629,payment_method_is_active
227
+ app/code/core/Mage/Paypal/Model/Cart.php,318,paypal_prepare_line_items
228
+ app/code/core/Mage/Persistent/controllers/IndexController.php,84,persistent_session_expired
229
+ app/code/core/Mage/Persistent/Model/Observer.php,483,persistent_session_expired
230
+ app/code/core/Mage/Poll/controllers/VoteController.php,67,poll_vote_add
231
+ app/code/core/Mage/Review/controllers/ProductController.php,73,review_controller_product_init_before
232
+ app/code/core/Mage/Review/controllers/ProductController.php,85,review_controller_product_init
233
+ app/code/core/Mage/Review/controllers/ProductController.php,86,review_controller_product_init_after
234
+ app/code/core/Mage/Review/Model/Resource/Review/Collection.php,269,review_review_collection_load_before
235
+ app/code/core/Mage/Rss/Block/Catalog/Category.php,119,rss_catalog_category_xml_callback
236
+ app/code/core/Mage/Rss/Block/Catalog/New.php,122,rss_catalog_new_xml_callback
237
+ app/code/core/Mage/Rss/Block/Catalog/NotifyStock.php,110,rss_catalog_notify_stock_collection_select
238
+ app/code/core/Mage/Rss/Block/Catalog/Review.php,88,rss_catalog_review_collection_select
239
+ app/code/core/Mage/Rss/Block/Catalog/Special.php,165,rss_catalog_special_xml_callback
240
+ app/code/core/Mage/Rss/Block/Catalog/Tag.php,92,rss_catalog_tagged_item_xml_callback
241
+ app/code/core/Mage/Rss/Block/Order/New.php,77,rss_order_new_collection_select
242
+ app/code/core/Mage/Rss/Block/Wishlist.php,124,rss_wishlist_xml_callback
243
+ app/code/core/Mage/Rule/Model/Environment.php,40,rule_environment_collect
244
+ app/code/core/Mage/Sales/Model/Convert/Order.php,53,sales_convert_order_to_quote
245
+ app/code/core/Mage/Sales/Model/Convert/Quote.php,57,sales_convert_quote_to_order
246
+ app/code/core/Mage/Sales/Model/Convert/Quote.php,75,sales_convert_quote_address_to_order
247
+ app/code/core/Mage/Sales/Model/Convert/Quote.php,95,sales_convert_quote_address_to_order_address
248
+ app/code/core/Mage/Sales/Model/Convert/Quote.php,114,sales_convert_quote_payment_to_order_payment
249
+ app/code/core/Mage/Sales/Model/Convert/Quote.php,154,sales_convert_quote_item_to_order_item
250
+ app/code/core/Mage/Sales/Model/Observer.php,52,clear_expired_quotes_before
251
+ app/code/core/Mage/Sales/Model/Order/Creditmemo.php,421,sales_order_creditmemo_refund
252
+ app/code/core/Mage/Sales/Model/Order/Creditmemo.php,468,sales_order_creditmemo_cancel
253
+ app/code/core/Mage/Sales/Model/Order/Invoice.php,411,sales_order_invoice_pay
254
+ app/code/core/Mage/Sales/Model/Order/Invoice.php,481,sales_order_invoice_cancel
255
+ app/code/core/Mage/Sales/Model/Order/Invoice.php,658,sales_order_invoice_register
256
+ app/code/core/Mage/Sales/Model/Order/Item.php,506,sales_order_item_cancel
257
+ app/code/core/Mage/Sales/Model/Order/Payment.php,277,sales_order_payment_place_start
258
+ app/code/core/Mage/Sales/Model/Order/Payment.php,356,sales_order_payment_place_end
259
+ app/code/core/Mage/Sales/Model/Order/Payment.php,394,sales_order_payment_capture
260
+ app/code/core/Mage/Sales/Model/Order/Payment.php,535,sales_order_payment_pay
261
+ app/code/core/Mage/Sales/Model/Order/Payment.php,553,sales_order_payment_cancel_invoice
262
+ app/code/core/Mage/Sales/Model/Order/Payment.php,603,sales_order_payment_void
263
+ app/code/core/Mage/Sales/Model/Order/Payment.php,691,sales_order_payment_refund
264
+ app/code/core/Mage/Sales/Model/Order/Payment.php,797,sales_order_payment_cancel_creditmemo
265
+ app/code/core/Mage/Sales/Model/Order/Payment.php,825,sales_order_payment_cancel
266
+ app/code/core/Mage/Sales/Model/Order.php,1073,sales_order_place_before
267
+ app/code/core/Mage/Sales/Model/Order.php,1075,sales_order_place_after
268
+ app/code/core/Mage/Sales/Model/Order.php,1118,order_cancel_after
269
+ app/code/core/Mage/Sales/Model/Quote/Address/Total/Discount.php,80,sales_quote_address_discount_item
270
+ app/code/core/Mage/Sales/Model/Quote/Address/Total/Discount.php,111,sales_quote_address_discount_item
271
+ app/code/core/Mage/Sales/Model/Quote/Config.php,36,sales_quote_config_get_product_attributes
272
+ app/code/core/Mage/Sales/Model/Quote/Item.php,300,sales_quote_item_qty_set_after
273
+ app/code/core/Mage/Sales/Model/Quote/Item.php,402,sales_quote_item_set_product
274
+ app/code/core/Mage/Sales/Model/Quote.php,813,sales_quote_remove_item
275
+ app/code/core/Mage/Sales/Model/Quote.php,844,sales_quote_add_item
276
+ app/code/core/Mage/Sales/Model/Quote.php,924,sales_quote_product_add_after
277
+ app/code/core/Mage/Sales/Model/Resource/Quote/Item/Collection.php,187,prepare_catalog_product_collection_prices
278
+ app/code/core/Mage/Sales/Model/Resource/Quote/Item/Collection.php,191,sales_quote_item_collection_products_after_load
279
+ app/code/core/Mage/Sales/Model/Resource/Sale/Collection.php,154,sales_sale_collection_query_before
280
+ app/code/core/Mage/Sales/Model/Service/Quote.php,186,checkout_type_onepage_save_order
281
+ app/code/core/Mage/Sales/Model/Service/Quote.php,187,sales_model_service_quote_submit_before
282
+ app/code/core/Mage/Sales/Model/Service/Quote.php,191,sales_model_service_quote_submit_success
283
+ app/code/core/Mage/Sales/Model/Service/Quote.php,207,sales_model_service_quote_submit_failure
284
+ app/code/core/Mage/Sales/Model/Service/Quote.php,210,sales_model_service_quote_submit_after
285
+ app/code/core/Mage/SalesRule/Model/Quote/Discount.php,86,sales_quote_address_discount_item
286
+ app/code/core/Mage/SalesRule/Model/Quote/Discount.php,92,sales_quote_address_discount_item
287
+ app/code/core/Mage/SalesRule/Model/Rule/Condition/Combine.php,54,salesrule_rule_condition_combine
288
+ app/code/core/Mage/SalesRule/Model/Rule.php,384,salesrule_rule_get_coupon_types
289
+ app/code/core/Mage/SalesRule/Model/Validator.php,424,salesrule_validator_process
290
+ app/code/core/Mage/Sendfriend/controllers/ProductController.php,131,sendfriend_product
291
+ app/code/core/Mage/Tag/Model/Resource/Indexer/Summary.php,214,prepare_catalog_product_index_select
292
+ app/code/core/Mage/Tag/Model/Resource/Product/Collection.php,416,tag_tag_product_collection_load_after
293
+ app/code/core/Mage/Tax/Model/Calculation/Rate.php,111,tax_settings_change_after
294
+ app/code/core/Mage/Tax/Model/Calculation/Rate.php,137,tax_settings_change_after
295
+ app/code/core/Mage/Tax/Model/Calculation/Rate.php,181,tax_settings_change_after
296
+ app/code/core/Mage/Tax/Model/Calculation/Rule.php,73,tax_settings_change_after
297
+ app/code/core/Mage/Tax/Model/Calculation/Rule.php,85,tax_settings_change_after
298
+ app/code/core/Mage/Tax/Model/Calculation.php,191,tax_rate_data_fetch
299
+ app/code/core/Mage/Wishlist/controllers/IndexController.php,173,wishlist_add_product
300
+ app/code/core/Mage/Wishlist/controllers/IndexController.php,288,wishlist_update_item
301
+ app/code/core/Mage/Wishlist/controllers/IndexController.php,580,wishlist_share
302
+ app/code/core/Mage/Wishlist/Helper/Data.php,487,wishlist_items_renewed
303
+ app/code/core/Mage/Wishlist/Model/Resource/Item/Collection.php,190,wishlist_item_collection_products_after_load
304
+ app/code/core/Mage/Wishlist/Model/Wishlist.php,256,wishlist_add_item
305
+ app/code/core/Mage/Wishlist/Model/Wishlist.php,341,wishlist_product_add_after
306
+ app/code/core/Mage/XmlConnect/controllers/CartController.php,225,checkout_cart_add_product_complete
307
+ app/code/core/Mage/XmlConnect/controllers/CartController.php,355,enterprise_giftcardaccount_add
308
+ app/code/core/Mage/XmlConnect/controllers/CheckoutController.php,334,checkout_controller_onepage_save_shipping_method
309
+ app/code/core/Mage/XmlConnect/controllers/CheckoutController.php,344,checkout_controller_onepage_save_shipping_method
310
+ app/code/core/Mage/XmlConnect/controllers/ReviewController.php,43,review_controller_product_init_before
311
+ app/code/core/Mage/XmlConnect/controllers/ReviewController.php,49,review_controller_product_init
312
+ app/code/core/Mage/XmlConnect/controllers/ReviewController.php,50,review_controller_product_init_after
313
+ app/code/core/Mage/XmlConnect/controllers/WishlistController.php,139,wishlist_add_product
314
+ app/code/core/Mage/XmlConnect/Model/Queue.php,292,before_save_message_queue
@@ -0,0 +1,5 @@
1
+ require 'thor/group'
2
+
3
+ require "saruman/generators/extension"
4
+ require "saruman/generators/model"
5
+ require "saruman"
@@ -0,0 +1,3 @@
1
+ module Saruman
2
+ VERSION = "0.0.1"
3
+ end
data/lib/saruman.rb ADDED
@@ -0,0 +1,58 @@
1
+ require "saruman/version"
2
+ require "highline"
3
+ module Saruman
4
+
5
+ class ModelBuilder
6
+ def initialize
7
+ ask_question
8
+ end
9
+
10
+ def ask_question
11
+ model_name = ask("Enter Name of model") { |q| q.default = "Post" }
12
+ model_table_name = ask("Enter Table Name of model") { |q| q.default = "blog_post" }
13
+ model_fields_input = ask("Enter Model Fields") { |q| q.default = "title:string active:boolean blog_id:integer:index" }
14
+ model_sql = parse_model_fields(model_fields_input)
15
+ @question_answer = {:model_name => model_name, :model_name_lower => model_name.downcase, :model_table_name => model_table_name, :sql => model_sql}
16
+ @question_answer
17
+ end
18
+
19
+ def output
20
+ return @question_answer
21
+ end
22
+
23
+ def parse_model_fields(model_fields)
24
+ sql = ""
25
+ model_fields.split(" ").each do |field|
26
+ field = Saruman::ModelBuilderField.new(field)
27
+ sql << field.sql + ",\n"
28
+ end
29
+ sql
30
+ end
31
+
32
+ end
33
+
34
+ class ModelBuilderField
35
+
36
+ SQL_TYPE_MAPPINGS = {:string => "varchar(255)", :text => "text NOT NULL", :boolean => "tinyint(1) NOT NULL default 0", :date => "DATETIME default NULL", :int => "int(10)" }
37
+ attr_accessor :sql, :sql_type, :index
38
+
39
+ def initialize(field)
40
+ segs = field.split(":")
41
+
42
+ case segs.length
43
+ when 1
44
+ @sql_type = :string
45
+ when 2
46
+ @sql_type = segs[1].to_sym
47
+ when 3
48
+ @sql_type = segs[1].to_sym
49
+ end
50
+
51
+ @sql = "`#{segs[0]}` #{SQL_TYPE_MAPPINGS[sql_type]}"
52
+ @index = true if(segs.length == 3)
53
+
54
+ end
55
+
56
+ end
57
+
58
+ end
data/saruman.gemspec ADDED
@@ -0,0 +1,34 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "saruman/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "saruman"
7
+ s.version = Saruman::VERSION
8
+ s.authors = ["Jason Ayre"]
9
+ s.email = ["jasonayre@gmail.com"]
10
+ s.homepage = "https://github.com/jasonayre/saruman.git"
11
+ s.summary = %q{Magento Extension command line generator}
12
+ s.description = %q{Lets you create magento extensions, add models, etc}
13
+
14
+ s.rubyforge_project = "saruman"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ # specify any dependencies here; for example:
22
+ # s.add_development_dependency "rspec"
23
+ # s.add_runtime_dependency "rest-client"
24
+
25
+ s.add_dependency "activesupport", "~> 3.0.0"
26
+ s.add_dependency "thor"
27
+ s.add_dependency "highline"
28
+ s.add_dependency "nokogiri"
29
+ s.add_dependency "roxml"
30
+ s.add_development_dependency "rspec", "~> 2.6"
31
+ s.add_development_dependency "cucumber"
32
+ s.add_development_dependency "aruba"
33
+
34
+ end
@@ -0,0 +1,5 @@
1
+ require 'saruman'
2
+
3
+ describe Saruman::Generators::Extension do
4
+
5
+ end